19. การใช้งานหุ่นยนต์ Batly R1 (Mapping & Navigation)

ในหัวข้อนี้ เราจะเรียนรู้วิธีการใช้งานหุ่นยนต์ Batly R1 เพื่อสร้างแผนที่จำลองสภาพแวดล้อม (SLAM) และการสั่งงานให้หุ่นยนต์เดินไปยังเป้าหมายโดยอัตโนมัติ (Navigation)

19.1. การสร้างแผนที่ (SLAM - Mapping)

ขั้นตอนแรกคือการนำหุ่นยนต์เดินสำรวจพื้นที่เพื่อสร้างแผนที่ โดยใช้ Lidar Sensor และ Odometry

ขั้นตอนที่ 1: เปิดระบบ Mapping และโปรแกรม Visualization เปิด Terminal แล้วรันคำสั่งเพื่อเริ่มระบบ SLAM และเปิดโปรแกรม RViz

ros2 launch roboverii_nav mapping.launch.py rviz:=true

ขั้นตอนที่ 2: บังคับหุ่นยนต์เดินสำรวจ เปิด Terminal ใหม่ (New Tab) และรันคำสั่ง Teleop เพื่อควบคุมหุ่นยนต์ด้วยคีย์บอร์ด ให้เดินให้ทั่วพื้นที่จนได้แผนที่ที่สมบูรณ์

ros2 run roboverii_bringup teleop_keyboard

(รูปที่ 1: หน้าจอ RViz ขณะเริ่มสร้างแผนที่ แสดงเส้น Lidar)

_images/19.1.png

(รูปที่ 2: การบังคับหุ่นยนต์เดินจริงในพื้นที่)

_images/19.2.png

(รูปที่ 3: แผนที่ที่สร้างเสร็จสมบูรณ์ใน RViz)

_images/19.3.png

ขั้นตอนที่ 3: บันทึกไฟล์แผนที่ (Save Map) เมื่อได้แผนที่ที่ต้องการแล้ว ให้รันคำสั่งนี้เพื่อบันทึกไฟล์แผนที่ลงในเครื่อง (ควรตรวจสอบ path ให้ถูกต้อง)

ros2 run nav2_map_server map_saver_cli -f /home/batly-r1/roboverii_ws/src/ROBOVERII-R1/roboverii_params/maps/mara01 --ros-args -p save_map_timeout:=10000

หมายเหตุ: คำสั่งนี้จะสร้างไฟล์ออกมา 2 ไฟล์คือ mara01.pgm (รูปภาพแผนที่) และ mara01.yaml (ไฟล์ตั้งค่า)