บทความ

กำลังแสดงโพสต์จาก พฤษภาคม, 2025

EP5 : ความรู้เบื้องต้นเพื่อใช้ในการควบคุมหุ่นยนต์ในงานอัตโนมัติ

รูปภาพ
ความรู้เบื้องต้นเพื่อใช้ในการควบคุมหุ่นยนต์ในงานอัตโนมัติ EP5: ความรู้เบื้องต้นเพื่อใช้ในการควบคุมหุ่นยนต์ในงานอัตโนมัติ ในการควบคุมหุ่นยนต์ให้สามารถทำงานแบบอัตโนมัติได้ ไม่ว่าจะเป็นการเดินตามเส้น การหลบสิ่งกีดขวาง หรือการเคลื่อนที่ในแผนที่ เราจำเป็นต้องมีพื้นฐานด้านระบบหุ่นยนต์ที่สำคัญหลายหัวข้อ โดยเฉพาะเมื่อทำงานกับ ROS 2 ซึ่งเป็นระบบพัฒนาหุ่นยนต์ที่ได้รับความนิยมสูง 1. Coordinate Frame และ TF การเคลื่อนที่ของหุ่นยนต์ต้องอิงกับระบบพิกัด เช่น พิกัดของล้อ ตัวหุ่นยนต์ หรือตำแหน่ง LiDAR การจัดการพิกัดเหล่านี้เรียกว่า TF (Transform) TF ใช้เชื่อมโยงพิกัดของ sensor ต่าง ๆ เข้ากับตัวหุ่นยนต์ เฟรมที่พบบ่อย: map , odom , base_link , laser 2. Odometry (Odom) Odometry คือข้อมูลตำแหน่งและการเคลื่อนที่ของหุ่นยนต์ โดยได้จากล้อ (encoder) และ/หรือ IMU ใช้ในการคำนวณตำแหน่งปัจจุบันของหุ่นยนต์ ข้อมูล Odom จะถูกแสดงใน TF และใช้ใน Navigation 3. SLAM (Simultaneous Localization and Mapping) หากหุ่นยนต์ต้องทำงานในพื้นที่ที่ไม่มีแ...

EP6 : เริ่มต้นใช้งาน TF ใน ROS 2

รูปภาพ
รู้จักกับ TF ใน ROS 2 รู้จักกับ TF ใน ROS 2 ระบบ TF ใน ROS 2 เป็นระบบที่ใช้จัดการการแปลงพิกัด (coordinate transform) ระหว่างเฟรม (frame) ต่าง ๆ ของหุ่นยนต์ เช่น จาก map ไปยัง odom หรือจาก base_link ไปยัง camera_link เป็นต้น TF คืออะไร? TF ย่อมาจาก “Transform” คือระบบที่ช่วยให้ ROS ทราบว่าแต่ละเฟรมอยู่ตรงไหนของโลกในช่วงเวลาต่าง ๆ การใช้ TF ทำให้สามารถติดตามตำแหน่งของหุ่นยนต์หรืออุปกรณ์เซ็นเซอร์ได้อย่างแม่นยำ ตัวอย่าง TF Tree ตัวอย่างโครงสร้าง TF ของหุ่นยนต์เคลื่อนที่พื้นจะมีลักษณะคล้ายต้นไม้: map → odom odom → base_link base_link → lidar_link , camera_link การ Broadcast TF ใน ROS 2 การส่งข้อมูล TF ใช้ tf2_ros::TransformBroadcaster เช่น: geometry_msgs::msg::TransformStamped t; t.header.stamp = node->now(); t.header.frame_id = "base_link"; t.child_frame_id = "camera_link"; t.transform.translation.x = 0.1; t.transform.rotation = tf2::toMsg(tf2::Quaternion(0, 0, 0, 1)); broadcaster->sendTransform(t); กา...

EP4 : ทดลองสร้าง Workspace และสื่อสารระหว่าง 2 Node ใน ROS 2

รูปภาพ
ทดลองสร้าง Workspace และสื่อสารระหว่าง 2 Node ใน ROS 2 หลังจากติดตั้ง ROS 2 Humble เสร็จเรียบร้อยแล้ว ขั้นตอนต่อไปคือการสร้าง workspace ของเราเอง และทดลองสร้าง Node สำหรับส่งและรับข้อความใน ROS 2 🔹 1. สร้าง Workspace และโครงสร้าง Project mkdir -p ~/ros2_ws/src cd ~/ros2_ws colcon build source install/setup.bash 📌 หมายเหตุ: คำสั่ง colcon build จะสร้างโฟลเดอร์ install และ build ซึ่งใช้ในการคอมไพล์และรัน Node ต่างๆ --- 🔹 2. ทดลองใช้งาน Node พื้นฐาน (Talker / Listener) ros2 run demo_nodes_cpp talker ใน Terminal อีกหน้าต่าง ให้รัน ros2 run demo_nodes_cpp listener 🌐 ผลลัพธ์: talker จะทำการส่งข้อความ (publish) ไปยัง topic ชื่อ /chatter ส่วน listener จะรับข้อความ (subscribe) แล้วแสดงผล --- 🔍 อธิบายการทำงานของ Node Node : คือหน่วยการทำงานย่อยใน ROS 2 เช่น talker และ listener Publisher : คือ Node ที่ส่งข้อมูลไปยัง topic Subscriber : คือ Node ที่รับข้อมูลจาก topic ในตัวอย่างนี้: talker คือ Node ประเภท Publisher listener คือ Node ประเภ...

EP3 : การติดตั้ง ROS 2 Humble บน Ubuntu 22.04 (ฉบับละเอียด)

รูปภาพ
🌟 การติดตั้ง ROS 2 Humble บน Ubuntu 22.04 (ฉบับละเอียด) 🔧 เหมาะสำหรับผู้ที่ต้องการเริ่มต้นเรียนรู้ ROS2 โดยเฉพาะเวอร์ชัน Humble Hawksbill บนระบบปฏิบัติการ Ubuntu 22.04 LTS 🧰 สิ่งที่ต้องเตรียมก่อนติดตั้ง ติดตั้ง Ubuntu 22.04 เรียบร้อยแล้ว เชื่อมต่ออินเทอร์เน็ต เปิด Terminal สำหรับพิมพ์คำสั่งต่าง ๆ 🔹 ขั้นตอนที่ 1: ตั้งค่าความพร้อมของระบบ sudo apt update && sudo apt upgrade -y sudo apt install locales sudo locale-gen en_US en_US.UTF-8 sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 export LANG=en_US.UTF-8 🔹 ขั้นตอนที่ 2: ตั้งค่า Source Repository sudo apt install software-properties-common sudo add-apt-repository universe 🔹 ขั้นตอนที่ 3: เพิ่ม ROS 2 GPG Key และ Repository sudo apt install curl -y sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add - sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(lsb_rel...

EP2 : ติดตั้ง Ubuntu บน Oracle VM VirtualBox (สำหรับผู้เริ่มต้น)

รูปภาพ
ติดตั้ง Ubuntu บน Oracle VM VirtualBox 📦 ติดตั้ง Ubuntu บน Oracle VM VirtualBox (ฉบับผู้เริ่มต้น) 💡 ทำไมถึงควรใช้ Oracle VM VirtualBox? สำหรับคนที่ใช้ Windows แล้วอยากเรียนรู้ ROS2 ซึ่งต้องติดตั้งบน Ubuntu ทางออกที่ง่ายและปลอดภัยคือ "ติดตั้ง Ubuntu ผ่านเครื่องเสมือน" โดยใช้ Oracle VM VirtualBox ✅ ใช้งาน Ubuntu ได้โดยไม่ล้าง Windows ✅ ปลอดภัย ลองผิดลองถูกได้ ✅ ใช้เรียน ROS2, เขียนโค้ด, ทดสอบได้ ✅ ฟรีและใช้งานง่าย 🔧 สิ่งที่ต้องเตรียม Oracle VM VirtualBox → ดาวน์โหลด Ubuntu ISO (หา version 22.04) → ดาวน์โหลด 🛠️ ขั้นตอนการติดตั้ง Ubuntu 1. สร้าง Virtual Machine ใหม่ เปิด VirtualBox → คลิก “New” → ตั้งชื่อ เช่น Ubuntu-ROS2 เลือก Type: Linux และ Version: Ubuntu (64-bit) 2. ตั้งค่าหน่วยความจำ (RAM) เลือกขนาดอย่างน้อย 4096 MB (หรือ 4 GB) 3. สร้างฮาร์ดดิสก์เสมือน เลือก VDI Dynamically allocated ขนาด 30 GB ขึ้นไป 4....

EP1 : ROS คืออะไร? / ROS2 คืออะไร?

รูปภาพ
  ROS คืออะไร? / ROS 2 คืออะไร? 🤖 บทนำ ลองจินตนาการว่าคุณกำลังสร้างหุ่นยนต์หนึ่งตัว ไม่ว่าจะเป็นรถยนต์ไร้คนขับ, แขนกลในโรงงาน, หรือหุ่นยนต์ส่งของในห้างสรรพสินค้า… หุ่นยนต์เหล่านี้ล้วนต้องมีระบบควบคุมซับซ้อนที่ต้องรับข้อมูลจากเซนเซอร์ต่างๆ และสั่งการไปยังมอเตอร์หรืออุปกรณ์ควบคุมอื่นๆ เพื่อไม่ให้ต้องสร้างซอฟต์แวร์ควบคุมใหม่ตั้งแต่ศูนย์ทุกครั้ง – จึงมีสิ่งหนึ่งที่เรียกว่า “ROS” หรือ Robot Operating System เกิดขึ้นมาครับ ROS คืออะไร? ROS (Robot Operating System) ไม่ใช่ระบบปฏิบัติการอย่าง Windows หรือ Linux แต่เป็น ชุดของเครื่องมือและเฟรมเวิร์ก ที่ช่วยให้การพัฒนาโปรแกรมสำหรับหุ่นยนต์เป็นเรื่องง่ายขึ้นมาก โดย ROS จะจัดการกับ: การส่งข้อมูลระหว่างโปรแกรม (เช่น node ที่อ่านเซนเซอร์ กับ node ที่คำนวณเส้นทาง) การแยกโปรแกรมย่อยให้ทำงานแยกกันเป็นโมดูล การจำลอง, แสดงผล, และจัดการกับเวลาของหุ่นยนต์ การบันทึกและเล่นข้อมูลย้อนหลัง (bag files) 📌 ROS ไม่ได้ควบคุมหุ่นยนต์โดยตรง แต่เป็น “แพลตฟอร์ม” ที่ช่วยให้นักพัฒนาสร้างระบบหุ่นยนต์ได้เร็วและมีมาตรฐานมากขึ้น แล้ว ROS 2 ค...