4. ROS 2 Architecture & Core Concepts (สถาปัตยกรรมและหลักการทำงาน)
หลังจากติดตั้งระบบเสร็จสิ้น ในบทนี้เราจะเจาะลึกถึง "ไส้ใน" ของ ROS 2 เพื่อทำความเข้าใจว่าระบบทำงานอย่างไร ทำไมจึงเสถียรกว่าเวอร์ชันแรก และเทคโนโลยีเบื้องหลังที่ขับเคลื่อนหุ่นยนต์ระดับอุตสาหกรรมคืออะไร
4.1. What is ROS really? (นิยามเชิงลึก)
แม้จะชื่อว่า Robot Operating System แต่แท้จริงแล้ว ROS คือ Meta-Operating System หรือ Middleware Framework ที่ทำงานอยู่บนระบบปฏิบัติการหลัก (เช่น Ubuntu, Windows) อีกทีหนึ่ง
4.1.1. หน้าที่หลักของ ROS (The 4 Pillars)
Plumbing (ระบบท่อส่งข้อมูล): จัดการการสื่อสารระหว่างชิ้นส่วนต่างๆ (Process Management) เช่น กล้องส่งภาพไปหา AI, AI ส่งคำสั่งไปที่ล้อ โดยที่เราไม่ต้องเขียน Socket หรือ TCP/IP เอง
Tools (เครื่องมือ): มีโปรแกรมสำหรับดีบักและวิเคราะห์ข้อมูลที่ทรงพลัง เช่น Rviz2 (3D Visualization), RQT (Graph & Plot), Rosbag (Data Recording)
Capabilities (ความสามารถ): มีฟังก์ชันสำเร็จรูปที่ซับซ้อนให้ใช้ฟรี เช่น Nav2 (ระบบนำทาง), MoveIt2 (ระบบแขนกล), SLAM (การสร้างแผนที่)
Ecosystem (ระบบนิเวศ): มีชุมชนนักพัฒนาที่ใหญ่ที่สุดในโลก ทำให้มี Driver สำหรับเซนเซอร์แทบทุกรุ่นในท้องตลาด
4.2. ROS 2 Architecture (สถาปัตยกรรมระบบ)
โครงสร้างของ ROS 2 ถูกออกแบบมาเป็นชั้นๆ (Layered Architecture) เพื่อให้ยืดหยุ่นและรองรับ Real-time Application
4.2.1. รายละเอียดแต่ละเลเยอร์ (Layers Breakdown)
Layer Name |
Description |
|---|---|
1. User Application |
โค้ดที่เราเขียน (Python/C++) เช่น |
2. RCL (ROS Client Library) |
ไลบรารีมาตรฐานที่ทำหน้าที่เป็น API ให้ผู้ใช้เรียกงาน เช่น |
3. RMW (ROS Middleware Interface) |
หัวใจสำคัญ: เป็นตัวกลาง (Abstraction Layer) ที่ทำให้ ROS 2 สามารถเปลี่ยนยี่ห้อของระบบสื่อสาร (DDS) ได้โดยไม่ต้องแก้โค้ดโปรแกรมหลัก |
4. DDS (Data Distribution Service) |
มาตรฐานการสื่อสารระดับอุตสาหกรรม ทำหน้าที่รับ-ส่งข้อมูลจริงๆ ผ่านระบบเครือข่าย (UDP/IP) |
5. OS Layer |
ระบบปฏิบัติการพื้นฐาน เช่น Linux, Windows, macOS หรือ RTOS (Real-time OS) |
4.3. The Heart of ROS 2: DDS
ความเปลี่ยนแปลงที่ใหญ่ที่สุดจาก ROS 1 สู่ ROS 2 คือการนำ DDS (Data Distribution Service) มาใช้เป็นมาตรฐานการสื่อสาร
4.3.1. DDS คืออะไร?
DDS คือมาตรฐานสากล (Open Standard) สำหรับการสื่อสารข้อมูลแบบ Real-time ที่มีความน่าเชื่อถือสูง นิยมใช้ในระบบการบิน, การทหาร, และโรงงานอุตสาหกรรม
4.3.2. กลไกการทำงาน (Discovery & Transport)
Distributed System: ไม่จำเป็นต้องมี Master Node (เหมือน ROS 1) คอมพิวเตอร์ทุกเครื่องในวงแลนสามารถ "ค้นหา" (Discovery) กันเองได้อัตโนมัติผ่านโปรโตคอล Multicast
Real-time Transport: ส่งข้อมูลผ่าน UDP เป็นหลัก เพื่อความรวดเร็วและรองรับ Quality of Service (QoS)
4.3.3. ตารางเปรียบเทียบ DDS Vendors (ผู้ให้บริการ)
ROS 2 อนุญาตให้เราเลือกใช้ DDS เจ้าไหนก็ได้ (ผ่าน RMW) โดยแต่ละเจ้ามีจุดเด่นต่างกัน:
Vendor / RMW |
Performance |
Note |
|---|---|---|
Cyclone DDS (Eclipse) |
High / Low Latency |
Default for ROS 2 Jazzy. เหมาะสำหรับงานทั่วไปและหุ่นยนต์ขนาดเล็ก-กลาง กินทรัพยากรน้อย |
Fast DDS (eProsima) |
High Throughput |
มีฟีเจอร์ปรับแต่งเยอะ เหมาะสำหรับระบบขนาดใหญ่ หรือส่งข้อมูลภาพความละเอียดสูง |
RTI Connext (Commercial) |
Enterprise Grade |
เสถียรที่สุดและรองรับมาตรฐานความปลอดภัยสูง (ใช้ในงานอวกาศ/การแพทย์) แต่มีค่าใช้จ่ายลิขสิทธิ์ |
4.4. Quality of Service (QoS)
ในระบบเครือข่ายไร้สาย (WiFi) สัญญาณอาจขาดหายได้ QoS คือเครื่องมือที่ให้เรา "จูน" พฤติกรรมการส่งข้อมูลให้เหมาะกับสถานการณ์
ตารางสรุป QoS Policy ที่สำคัญ
Policy |
Options |
Use Case |
|---|---|---|
Reliability |
Reliable: ส่งให้ถึงแน่นอน (มี ACK) |
Reliable: ใช้กับคำสั่งควบคุม (ห้ามหาย) |
Durability |
Volatile: มาไม่ทันก็อด (ไม่เก็บค่าเก่า) |
Volatile: ข้อมูล Sensor ทั่วไป |
History |
Keep Last (N): เก็บ N ค่าล่าสุด |
Keep Last (10): ค่ามาตรฐาน ป้องกัน RAM เต็ม |
4.5. Security (SROS2)
ความปลอดภัยเป็นเรื่องใหญ่ใน ROS 2 โดยใช้มาตรฐาน DDS-Security ซึ่งประกอบด้วย 3 เสาหลัก (CIA Triad):
Authentication (ระบุตัวตน):
ใช้ระบบ PKI (Public Key Infrastructure) และใบรับรอง X.509
หุ่นยนต์ทุกตัวต้องมี "บัตรประจำตัว" (Certificate) ที่ออกโดย CA (Certificate Authority) เท่านั้นจึงจะเข้าร่วมวงสนทนาได้
Access Control (กำหนดสิทธิ์):
ใช้ไฟล์ Permissions และ Governance
กำหนดได้ละเอียดว่า Node A มีสิทธิ์แค่ "อ่าน" Topic นี้ แต่ห้าม "เขียน"
Cryptography (การเข้ารหัส):
ใช้มาตรฐาน AES-GCM ในการเข้ารหัสข้อมูล
แม้จะมีคนดักจับข้อมูล (Sniffing) ในวง WiFi ก็จะอ่านไม่รู้เรื่อง
Note
สถานะเริ่มต้น: ตามปกติ ROS 2 จะปิดระบบ Security ไว้เพื่อความสะดวกในการเรียนรู้ (ใครก็เชื่อมต่อได้) หากต้องการใช้งานจริงในโปรดักส์ ต้องเปิดใช้งานฟีเจอร์ SROS2 เพื่อสร้าง Key และ Certificate