โมดูล 5/5 · สัปดาห์ 13–15 · 27 ชม.

หุ่นยนต์กับโดรน

DRT 344 ระบบอัตโนมัติ หุ่นยนต์ และการควบคุมอัจฉริยะ

เวลาเรียนประมาณ 90 นาทีร่าง รอตรวจปรับปรุงล่าสุด 26 กันยายน 2569

บทเรียน

เมื่อเรียนจบโมดูลนี้ ผู้เรียนจะสามารถ

  1. อธิบายแนวคิดหลักของ ROS 2 ได้แก่ node, topic, service, action และ QoS
  2. อธิบายการเชื่อม ROS 2 กับ PX4 ผ่าน uXRCE-DDS และการใช้ MAVROS
  3. แปลงพิกัดระหว่างกรอบ NED และ ENU
  4. คำนวณงบเวลาหน่วงของสายข้อมูลจากเซนเซอร์ถึงตัวควบคุมการบิน
  5. ออกแบบสถาปัตยกรรมบูรณาการโดรน หุ่นยนต์ และระบบอัตโนมัติ

ความรู้พื้นฐานที่ควรมี: DRT 344 โมดูล 1–4

ทำไมต้องรู้

โดรนที่ทำภารกิจซับซ้อน เช่น ตรวจจับวัตถุด้วย AI แล้วบินตามอัตโนมัติ มักแยกงานเป็นสองส่วน คือ flight controller ที่ดูแลการบินให้ปลอดภัย (PX4 หรือ ArduPilot) และ คอมพิวเตอร์ภารกิจ (companion computer) ที่รันงานหนัก เช่น AI แผนที่ และการวางแผน ซอฟต์แวร์กลางที่เชื่อมงานเหล่านี้เข้าด้วยกันและเชื่อมกับหุ่นยนต์ภาคพื้นได้คือ ROS 2 ส่วนการส่งข้อมูลขึ้นศูนย์ควบคุมหรือระบบอุตสาหกรรมใช้ MQTT หรือ OPC UA (โมดูล 1)

ROS 2 เปรียบได้กับระบบประสาทของหุ่นยนต์ แต่ละอวัยวะ (node) ส่งสัญญาณผ่านเส้นประสาท (topic) โดยไม่ต้องรู้ว่าใครเป็นผู้รับ ทำให้เพิ่มหรือเปลี่ยนอวัยวะได้โดยไม่ต้องรื้อทั้งระบบ

แนวคิดหลักของ ROS 2

แนวคิดความหมายตัวอย่างในงานโดรน
nodeโปรแกรมหนึ่งหน่วยที่ทำงานเฉพาะnode กล้อง node ตรวจจับวัตถุ node วางแผน
topicช่องส่งข้อมูลต่อเนื่องแบบ publish/subscribeภาพจากกล้อง ตำแหน่งโดรน
serviceถาม–ตอบครั้งเดียวขอให้เปลี่ยนโหมดการบิน
actionงานใช้เวลานาน มีสถานะระหว่างทางและยกเลิกได้บินไปยังตำแหน่งแล้วรายงานความคืบหน้า
QoSนโยบายการส่ง เช่น เชื่อถือได้หรือเร็ว เก็บข้อความย้อนหลังกี่ข้อความข้อมูลเซนเซอร์ใช้ QoS แบบ sensor data

ROS 2 ออกรุ่นใหม่ทุกเดือนพฤษภาคม ณ วันที่ตรวจ (26 ก.ย. 2569) รุ่นที่ยังได้รับการดูแล ได้แก่ Humble Hawksbill (ถึง พ.ค. 2027) Jazzy Jalisco (ถึง พ.ค. 2029) Kilted Kaiju (ถึง ธ.ค. 2026) และ Lyrical Luth ที่ออกเมื่อ 22 พ.ค. 2026 (ถึง พ.ค. 2031) งานที่ต้องใช้ยาวควรเลือกรุ่นที่มีระยะดูแลยาว และตรึงรุ่นให้ตรงกับเอกสารของ flight stack

เชื่อม ROS 2 กับ flight controller

node กล้อง node ตรวจจับวัตถุด้วย AI และ node วางแผนภารกิจ ส่งข้อมูลผ่าน topic service และ action ของ ROS 2 บน DDS ไปยัง uXRCE-DDS agent ซึ่งเชื่อมกับ PX4 ผ่าน serial หรือ UDP โดยต้องแปลงกรอบพิกัด ENU FLU กับ NED FRD
ภาพที่ 1 ROS 2 เชื่อมกับ PX4 ผ่าน uXRCE-DDS
  • PX4 ใช้ middleware uXRCE-DDS มี client ทำงานบน PX4 และ agent บนคอมพิวเตอร์ภารกิจ แลกข้อมูลสองทางผ่าน serial, UDP หรือ TCP ทำให้ topic ภายในของ PX4 ปรากฏเป็น topic ของ ROS 2 โดยตรง คู่มือ PX4 แนะนำ ROS 2 Jazzy บน Ubuntu 24.04 หรือ Humble บน Ubuntu 22.04
  • MAVROS เป็นสะพานระหว่างโพรโทคอล MAVLink กับ ROS 2 ใช้ได้กับ flight controller ที่พูด MAVLink รองรับ ROS 2 ตั้งแต่ Humble ขึ้นไป
  • ArduPilot มีเอกสารสำหรับเชื่อมกับ ROS 2 ของตนเอง ผู้ใช้ต้องอ่านวิธีที่ตรงกับรุ่นซอฟต์แวร์

กรอบพิกัดที่ต่างกัน

คู่มือ PX4 ระบุว่า PX4 ใช้กรอบโลกแบบ NED (x ชี้เหนือ y ชี้ตะวันออก z ชี้ลง) และกรอบลำตัว FRD (หน้า ขวา ลง) ส่วน ROS ใช้ ENU (x ชี้ตะวันออก y ชี้เหนือ z ชี้ขึ้น) และ FLU (หน้า ซ้าย ขึ้น) ตาม REP 105 node ที่คุยกับ PX4 จึงต้องแปลงกรอบทุกครั้ง ถ้าลืม โดรนอาจบินผิดทิศหรือดิ่งลงแทนที่จะไต่ขึ้น

ตัวอย่างที่ 1 แปลงตำแหน่งจาก NED เป็น ENU

PX4 รายงานตำแหน่งในกรอบ NED ว่า m หมายถึงเหนือ 10 m ตะวันออก 5 m และ สูง 3 m (เพราะ D เป็นลบ)

ในกรอบ ENU: m

ถ้า node ใน ROS 2 ต้องการสั่งให้โดรนไปที่ตำแหน่ง ENU แต่ส่งค่านี้ให้ PX4 ตรง ๆ โดยไม่แปลง PX4 จะอ่านเป็น N = 5, E = 10 และ D = 3 คือ ต่ำกว่าจุดขึ้นบิน 3 m ทั้งทิศแนวราบสลับกันและทิศแนวดิ่งกลับด้าน โดรนจะพยายามบินลงพื้น ความผิดพลาดแบบนี้พบบ่อยมาก จึงควรใช้ไลบรารีแปลงกรอบของ px4_ros_com และทดสอบใน SITL ก่อนเสมอ

งบเวลาหน่วง

ระบบที่ใช้ AI ตรวจจับแล้วสั่งโดรน ต้องรวมเวลาหน่วงของทุกช่วงในสายข้อมูล ระหว่างนั้นโดรนยังเคลื่อนที่อยู่

ตัวอย่างที่ 2 โดรนเคลื่อนไปเท่าไรก่อนคำสั่งถึง

สายข้อมูลมีเวลาหน่วง ส่งภาพเข้า node 5 ms ตรวจจับด้วย AI 12 ms ส่งผ่าน topic ถึง node วางแผน 3 ms และส่งผ่าน uXRCE-DDS ทาง serial ถึง PX4 8 ms โดรนบิน 10 m/s

  1. ms
  2. m

ระยะ 0.28 m ต้องรวมอยู่ในระยะเผื่อการหลบหลีก ถ้าเปลี่ยนไปใช้โมเดล AI ที่ช้ากว่าเดิมมาก ระยะนี้จะเพิ่มตาม และคิวข้อความที่ค้างใน MQTT หรือ ROS 2 ก็ทำให้ข้อมูลเก่าได้ (อ่านหน่วยความรู้เจาะลึก MQTT เรื่องอายุข้อมูลและคิว)

สถาปัตยกรรมบูรณาการ

สี่ชั้นจากบนลงล่าง ศูนย์ควบคุม คลาวด์ แดชบอร์ด เชื่อมด้วย MQTT หรือ OPC UA คอมพิวเตอร์ภารกิจ ROS 2 เชื่อมด้วย DDS flight controller PLC และตัวควบคุมหุ่นยนต์ เชื่อมด้วย MAVLink uXRCE-DDS หรือ fieldbus และชั้นล่างสุดคือโดรน สายพานและสถานีชาร์จ และหุ่นยนต์ภาคพื้น
ภาพที่ 2 สถาปัตยกรรมการประสานโดรน หุ่นยนต์ และระบบอัตโนมัติ

หลักการออกแบบ

  1. แยกงานที่ต้องปลอดภัยออกจากงานภารกิจ ให้ flight controller และ PLC ทำงานปลอดภัยได้เองแม้คอมพิวเตอร์ภารกิจหรือเครือข่ายล่ม
  2. เลือกโพรโทคอลตามชั้น DDS/ROS 2 ภายในหุ่นยนต์ MQTT หรือ OPC UA ขึ้นระบบองค์กร MAVLink หรือ uXRCE-DDS กับ flight controller
  3. รักษาความปลอดภัยไซเบอร์ทุกชั้น เข้ารหัสและยืนยันตัวตน โดยเฉพาะช่องทางที่สั่งอุปกรณ์จริงได้
  4. ออกแบบให้ทดสอบได้ ใช้ SITL และการจำลองก่อนเชื่อมอุปกรณ์จริง
กรณีใช้งานชิ้นส่วนที่ประสานกัน
คลังสินค้าอัจฉริยะโดรนอ่านบาร์โค้ด หุ่นยนต์ขนของ ระบบจัดการคลัง (ISA-95 ระดับ 3)
สถานีจอดอัตโนมัติPLC เปิดฝาและชาร์จ โดรนบินตามตาราง ศูนย์ควบคุมผ่าน MQTT
ตรวจโครงสร้างพื้นฐานโดรนถ่ายภาพจากด้านบน หุ่นยนต์ภาคพื้นตรวจระยะใกล้ แผนที่รวมผ่าน ROS 2
ฝูงโดรนโดรนหลายลำประสานตำแหน่งผ่านเครือข่ายสื่อสาร (อ่านหน่วยความรู้เจาะลึกฝูงโดรน LoRa Mesh)

กิจกรรมในชั้นเรียน

กิจกรรม: ออกแบบระบบคลังสินค้าที่มีโดรนและหุ่นยนต์

อ่านหน่วยความรู้เจาะลึก “จาก Embedded System สู่ AI Robot และ ROS” จากคลังความรู้โดรนก่อน

  1. วาดกราฟ ROS 2 ของระบบ ระบุ node, topic, service และ action
  2. เลือกวิธีเชื่อมกับ flight controller และระบุจุดที่ต้องแปลงกรอบพิกัด
  3. คำนวณงบเวลาหน่วงของสายตรวจจับสิ่งกีดขวาง และระยะที่โดรนเคลื่อนไประหว่างนั้น
  4. จัดชิ้นส่วนทั้งหมดลงในสถาปัตยกรรมภาพที่ 2 และระบุว่าถ้าเครือข่ายล่ม แต่ละชิ้นทำอะไรเพื่อให้ปลอดภัย

ข้อผิดพลาดที่พบบ่อย

ระวัง

  • ลืมแปลงกรอบพิกัด NED/ENU ระหว่าง ROS 2 กับ PX4
  • ใช้ ROS 2 รุ่นที่หมดระยะดูแล หรือคนละรุ่นกับที่เอกสาร flight stack รองรับ
  • ให้คอมพิวเตอร์ภารกิจเป็นผู้รับผิดชอบความปลอดภัยหลัก แทน flight controller
  • ไม่คิดเวลาหน่วง ของ AI และเครือข่ายในระยะเผื่อ
  • เปิดช่องทางสั่งงานโดยไม่เข้ารหัส บนเครือข่ายที่คนอื่นเข้าถึงได้

สรุป

  • ROS 2 เชื่อม node ผ่าน topic, service และ action บน DDS พร้อมนโยบาย QoS
  • PX4 เชื่อมกับ ROS 2 ผ่าน uXRCE-DDS ส่วน MAVROS เป็นสะพาน MAVLink กับ ROS 2
  • PX4 ใช้ NED/FRD ส่วน ROS ใช้ ENU/FLU แปลงตำแหน่งได้ว่า
  • งบเวลาหน่วงรวมทุกช่วงของสายข้อมูล และระยะที่เคลื่อนไปคือ
  • สถาปัตยกรรมที่ดีแยกงานความปลอดภัยออกจากงานภารกิจ และเลือกโพรโทคอลตามชั้น

แบบฝึกตรวจความเข้าใจ

  1. ถ้าต้องสั่งโดรนบินไปยังจุดหนึ่งและต้องการรายงานความคืบหน้าระหว่างทาง ควรใช้ topic, service หรือ action
  2. PX4 รายงานตำแหน่ง NED m ในกรอบ ENU คือเท่าใด
  3. สายข้อมูลมีเวลาหน่วงรวม 40 ms โดรนบิน 15 m/s เคลื่อนไปกี่เมตร
  4. ROS 2 รุ่นใดออกในเดือนพฤษภาคม 2026
  5. ทำไมจึงไม่ควรให้คอมพิวเตอร์ภารกิจเป็นผู้รับผิดชอบความปลอดภัยหลัก
เฉลย
  1. action เพราะเป็นงานใช้เวลานาน มีสถานะระหว่างทางและยกเลิกได้
  2. m
  3. m
  4. Lyrical Luth (22 พ.ค. 2026)
  5. คอมพิวเตอร์ภารกิจรันซอฟต์แวร์ซับซ้อนที่อาจค้างหรือล่ม flight controller ต้องรักษาความปลอดภัยได้เองด้วย failsafe แม้คอมพิวเตอร์ภารกิจหยุดทำงาน

สรุปสูตรสำคัญ

แปลงเวกเตอร์ NED เป็น ENU
งบเวลาหน่วงของสายข้อมูล

แหล่งอ้างอิงหลัก

  1. Open Robotics. ROS 2 documentation. link
  2. PX4 Autopilot. ROS 2 user guide (uXRCE-DDS bridge and frame conventions). PX4 user guide (main). link
  3. MAVLink Development Team. MAVROS: MAVLink to ROS gateway (ROS 2). link
  4. MAVLink Development Team. MAVLink developer guide. link
  5. OASIS. (2019). MQTT version 5.0 (OASIS Standard, 7 March 2019). link
  6. International Electrotechnical Commission. (2025). OPC unified architecture – Part 1: Overview and concepts (IEC 62541-1:2025). link
  7. International Society of Automation. ISA-95 standard: Enterprise-control system integration (ANSI/ISA-95, IEC 62264). link
  8. Chung, S.-J., Paranjape, A. A., Dames, P., Shen, S., & Kumar, V. (2018). A survey on aerial swarm robotics. IEEE Transactions on Robotics, 34(4), 837–855.

อ่านเพิ่มเติม

ศึกษาหน่วยความรู้ที่กำหนดล่วงหน้า ดูสื่อประกอบ และทำ quiz ประจำโมดูล

พร้อมใช้D12D07

หัวข้อที่ 3: Robotics & Autonomous Systems

สรุปเนื้อหาหัวข้อที่ 3: ระบบปฏิบัติการหุ่นยนต์และการควบคุมฝูงโดรน (Swarm) อินเทอร์เน็ตของสรรพสิ่งทางทหาร (IoMT) เครือข่าย LoRa/Mesh สำหรับพื้นที่ไร้สัญญาณ และการเขียนโปรแกรม SOS Beacon–Receiver
อยู่ระหว่างพัฒนาD12D02

ROS 2 และการเชื่อมต่อกับ flight stack

node topic service action, uXRCE-DDS/MAVROS และการจำลอง
พร้อมใช้D04D12

เนื้อหาเจาะลึก: จาก Embedded System สู่ AI Robot และ ROS

จาก Embedded System สู่ AI Robot: เหตุผลที่ระบบฝังตัวต้องมี AI ฮาร์ดแวร์ Edge AI (Jetson, Kria, Raspberry Pi) กล้องและ Sensor Fusion แนวคิด ROS Node/Topic และสถาปัตยกรรมครบวงจรที่เชื่อมกลับสู่ MQTT
พร้อมใช้D12D07

เนื้อหาเจาะลึก: การประสานฝูงโดรน (Swarm Drone) ผ่านโครงข่ายสื่อสาร LoRa Mesh Network

เจาะลึกการประสานฝูงโดรน (Swarm Coordination) ผ่านโครงข่าย LoRa Mesh: ข้อจำกัดของ Wi-Fi Mesh สถาปัตยกรรมไฮบริด LoRa + IEEE 802.11s ระบบเฝ้าระวังฉุกเฉินด้วย LoRaWAN/GNSS และความปลอดภัยของโครงข่าย
พร้อมใช้D07

การสื่อสารโดรนและ MAVLink

แยก message, transport และ datalink แล้วทดลอง telemetry กับ SITL อย่างเป็นลำดับ

ในชั้นเรียน / ภาคสนาม

บรรยาย อภิปรายกรณีศึกษา และแก้โจทย์ในชั้นเรียน

หลักฐานการเรียนรู้: ผล quiz และแบบฝึกหัดที่ส่ง

แบบทดสอบประจำโมดูล

แบบทดสอบนี้ใช้ตรวจความเข้าใจ (formative) ไม่ใช่การสอบเก็บคะแนน

โดเมนความรู้: ระบบอัตโนมัติ หุ่นยนต์ และฝูงโดรน · การสื่อสาร เครือข่าย และ IoT · การเขียนโปรแกรมและเทคโนโลยีดิจิทัล · เซนเซอร์และระบบสมองกลฝังตัว · ปัญญาประดิษฐ์และคอมพิวเตอร์วิทัศน์