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)

  1. Plumbing (ระบบท่อส่งข้อมูล): จัดการการสื่อสารระหว่างชิ้นส่วนต่างๆ (Process Management) เช่น กล้องส่งภาพไปหา AI, AI ส่งคำสั่งไปที่ล้อ โดยที่เราไม่ต้องเขียน Socket หรือ TCP/IP เอง

  2. Tools (เครื่องมือ): มีโปรแกรมสำหรับดีบักและวิเคราะห์ข้อมูลที่ทรงพลัง เช่น Rviz2 (3D Visualization), RQT (Graph & Plot), Rosbag (Data Recording)

  3. Capabilities (ความสามารถ): มีฟังก์ชันสำเร็จรูปที่ซับซ้อนให้ใช้ฟรี เช่น Nav2 (ระบบนำทาง), MoveIt2 (ระบบแขนกล), SLAM (การสร้างแผนที่)

  4. 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++) เช่น my_robot_node.py หรือระบบนำทาง

2. RCL (ROS Client Library)

ไลบรารีมาตรฐานที่ทำหน้าที่เป็น API ให้ผู้ใช้เรียกงาน เช่น rclpy (สำหรับ Python) และ rclcpp (สำหรับ C++) ทำหน้าที่แปลงคำสั่งของเราให้ระบบเข้าใจ

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)
Best Effort: ส่งแล้วส่งเลย (เร็วแต่ข้อมูลอาจหาย)

Reliable: ใช้กับคำสั่งควบคุม (ห้ามหาย)
Best Effort: ใช้กับภาพจากกล้อง (หายเฟรมเดียวไม่เป็นไร)

Durability

Volatile: มาไม่ทันก็อด (ไม่เก็บค่าเก่า)
Transient Local: เก็บค่าล่าสุดไว้ให้คนมาทีหลัง

Volatile: ข้อมูล Sensor ทั่วไป
Transient Local: ใช้กับค่า Config หรือ Map (แผนที่) ที่ต้องโหลดให้ Node ที่เพิ่งตื่น

History

Keep Last (N): เก็บ N ค่าล่าสุด
Keep All: เก็บทุกค่า

Keep Last (10): ค่ามาตรฐาน ป้องกัน RAM เต็ม

4.5. Security (SROS2)

ความปลอดภัยเป็นเรื่องใหญ่ใน ROS 2 โดยใช้มาตรฐาน DDS-Security ซึ่งประกอบด้วย 3 เสาหลัก (CIA Triad):

  1. Authentication (ระบุตัวตน):

    • ใช้ระบบ PKI (Public Key Infrastructure) และใบรับรอง X.509

    • หุ่นยนต์ทุกตัวต้องมี "บัตรประจำตัว" (Certificate) ที่ออกโดย CA (Certificate Authority) เท่านั้นจึงจะเข้าร่วมวงสนทนาได้

  2. Access Control (กำหนดสิทธิ์):

    • ใช้ไฟล์ Permissions และ Governance

    • กำหนดได้ละเอียดว่า Node A มีสิทธิ์แค่ "อ่าน" Topic นี้ แต่ห้าม "เขียน"

  3. Cryptography (การเข้ารหัส):

    • ใช้มาตรฐาน AES-GCM ในการเข้ารหัสข้อมูล

    • แม้จะมีคนดักจับข้อมูล (Sniffing) ในวง WiFi ก็จะอ่านไม่รู้เรื่อง

Note

สถานะเริ่มต้น: ตามปกติ ROS 2 จะปิดระบบ Security ไว้เพื่อความสะดวกในการเรียนรู้ (ใครก็เชื่อมต่อได้) หากต้องการใช้งานจริงในโปรดักส์ ต้องเปิดใช้งานฟีเจอร์ SROS2 เพื่อสร้าง Key และ Certificate