Kit


ROS.education Kit เป็นหุ่นยนต์เคลื่อนที่อัตโมนัติอย่างง่ายเพื่อการศึกษาเรียนรู้ โดยพัฒนาด้วย ROS (Robot Operating System) และ Arduino_STM32

Opensource

https://github.com/ROS-education/linorobot


รายการอุปกรณ์ในการสร้าง (งบประมาณ ~9, XXX บาท)

http://www.ros.education/2018/06/ros-education-kit.html


การเตรียมความพร้อมก่อนลงมือสร้างหุ่นยนต์ 


ในส่วนของตัวบุคคล


ในส่วนของฮาร์ดแวร์และซอฟต์แวร์

  • เตรียมอุปกรณ์ในการสร้างหุ่นยนต์ [link]
  • ติดตั้ง Ubuntu ลงบนเครื่อง workstation (PC/Notebook) และเครื่อง remote บน SBC (Orange Pi/Rapsberry Pi)
  • ติดตั้ง ROS แบบ desktop-full ลงบนเครื่อง workstation และ remote ดังนี้ [link
  • ตั้งค่าระบบ SSH [link
  • ตั้งค่าระบบ Networking ของ ROS [link

1. การสร้างหุ่นยนต์เคลื่อนที่ 2WD

สร้างหุ่นยนต์แบบ 2WD differential drive ดังสาธิตในภาพด้านล่าง ซึ่งเราสามารถสร้างหุ่นยนต์ในรูปแบบตามที่ต้องการได้อิสระ โดยมีข้อเสนอแนะสำหรับอุปกรณ์ในการสร้างหุ่นยนต์ตามนี้ [link]


2. Schematics สำหรับชุดควบคุมฐานหุ่นยนต์ 2WD



ไฟล์ PDF

3. การติดตั้ง ROS package

ทำการติดตั้ง ROS package  และซอฟต์แวร์ต่างๆ ที่จำเป็นลงคอมพิวเตอร์ทั้งเครื่อง workstation และ remote ที่ติดไปกับหุ่นยนต์ (SBC เช่น Orange Pi/Raspberry Pi)

wget https://raw.githubusercontent.com/ROS-education/linorobot/master/installer/ros_education_install.sh
chmod 755 ros_education_install.sh
./ros_education_install.sh

ติดตั้ง udev rules (root) ดังนี้
wget https://raw.githubusercontent.com/ROS-education/linorobot/master/installer/udev.sh
chmod 755 udev.sh
sudo ./udev.sh

4. การติดตั้ง Firmware

อัพโหลด firmware ลงบนบอร์ดควบคุมฐานหุ่นยนต์ (Maple Mini)
  1. ติดตั้ง Arduino_STM32 และ ros_lib [link]
  2. copy ไฟล์ใน ~/ros_education_ws/src/linorobot/arduino_firmware/lib/ ไปไว้ที่   ~/Arduino/libraries/
  3. เปิดไฟล์ ~/ros_education_ws/src/linorobot/arduino_firmware/firmware_stm32f1/firmware_stm32f1.ino ด้วย Arduino IDE แล้วปรับแต่งค่า config ในไฟล์ lino_base_config.h แล้วอัพโหลดโปรแกรมลงบอร์ด

5. ทดสอบการเคลื่อนที่ของหุ่นยนต์ และ ปรับค่า PID

เชื่อมต่อบอร์ดไมโครคอนโทรลเลอร์ (Maple Mini) กับบอร์ด SBC (Orange Pi/Raspberry) ด้วยสาย USB

เปิด terminal ใหม่แล้ว login เข้าเครื่อง remote ด้วย ssh รันคำสั่งดังนี้

roslaunch linorobot minimal.launch


เปิด terminal ใหม่แล้ว login เข้าเครื่อง remote ด้วย ssh รันคำสั่งดังนี้

roslaunch linorobot keyboard_teleop.launch

ให้ทดลองบังคับหุ่นยนต์ด้วยคีย์บอร์ด และสังเกตค่า encoder count หากเคลื่อนที่ไปด้านหน้า (กดปุ่ม i) ค่า encoder count ต้องเพิ่มขึ้นทั้งสองล้อ หากการเคลื่อนที่และ encoder count ของหุ่นยนต์ไม่ถูกต้องให้แก้ไขค่า pin ในไฟล์ lino_base_config.h แล้วอัพโหลดเฟิร์มแวร์ใหม่

เปิด terminal ใหม่แล้ว login เข้าเครื่อง remote ด้วย ssh รันคำสั่งดังนี้

rosrun lino_pid pid_configure

ที่เครื่อง workstation เปิด terminal ใหม่ รันคำสั่งดังนี้

rqt



เมื่อปรากฏหน้าต่างดังภาพคลิก Perspective -> Import เลือกไฟล์ ~/ros_education_ws/src/lino_pid/lino_pid.perspective ที่มุมล่างซ้ายใต้ Dynamic Reconfigure คลิก pid_configure ปรับแต่งค่า PID ที่ปุ่มเลื่อนทางด้านขวา สำหรับการปรับค่า PID นั้นจะมีเทคนิคที่แตกต่างกันออกไป เช่น Ziegler–Nichols เมื่อได้ค่า PID ที่เหมาะสมแล้ว ให้อัพโหลด firmware อีกครั้งโดยแก้ไขค่า PID ในไฟล์ lino_base_config.h ยกตัวอย่างเช่น

#define K_P 0.6 // P constant
#define K_I 0.3 // I constant
#define K_D 0.5 // D constant


คำสั่งที่ใช้งาน

สร้างแผนที่ (SLAM)

เปิด terminal ใหม่แล้ว login เข้าเครื่อง remote ด้วย ssh รันคำสั่งดังนี้

roslaunch linorobot bringup.launch


เปิด terminal ใหม่แล้ว login เข้าเครื่อง remote ด้วย ssh รันคำสั่งดังนี้

roslaunch linorobot keyboard_teleop.launch


เปิด terminal ใหม่แล้ว login เข้าเครื่อง remote ด้วย ssh รันคำสั่งดังนี้

roslaunch linorobot slam.launch


ที่เครื่อง workstation เปิด terminal ใหม่ รันคำสั่งดังนี้

roscd lino_visualize/rviz
rviz -d slam.rviz


การบันทึกแผนที่

เปิด terminal ใหม่แล้ว login เข้าเครื่อง remote ด้วย ssh รันคำสั่งดังนี้

rosrun map_server map_saver -f ~/ros_education_ws/src/linorobot/maps/map


การสำรวจอัตโนมัติ (Autonomous navigation)
เปิด terminal ใหม่แล้ว login เข้าเครื่อง remote ด้วย ssh รันคำสั่งดังนี้

roslaunch linorobot bringup.launch


เปิด terminal ใหม่แล้ว login เข้าเครื่อง remote ด้วย ssh รันคำสั่งดังนี้

roslaunch linorobot navigate.launch


ที่เครื่อง workstation เปิด terminal ใหม่ รันคำสั่งดังนี้

roscd lino_visualize/rviz
rviz -d navigate.rviz



เอกสารแนะนำการใช้งาน

หลังจากได้สร้างหุ่นยนต์และติดตั้งซอฟต์แวร์ตามข้างต้นเรียบร้อยแล้ว ก็สามารถใช้งานหุ่นยนต์ตามเอกสารคู่มือของ linorobot ได้ ดังต่อไปนี้

ข้อมูลเพิ่มเติม: กลุ่ม Facebook หุ่นยนต์ไทยใช้ ROS [link]
Disclaimer: ซอฟต์แวร์อาจมีข้อผิดพลาด ผู้ใช้ควรศึกษาข้อมูลให้เข้าใจ และผู้จัดทำไม่มีการรับประกันใดๆ ทั้งสิ้น

1 comment:

  1. firmware คอมไพล์ผ่าน แต่ upload ไม่ได้ ครับ

    /lib/ld-linux.so.2: No such file or directory

    *** autoreset failed; you need to use RESET button
    warning: TCG doesn't support requested feature: CPUID.01H:ECX.vmx [bit 5]
    /lib64/ld-linux-x86-64.so.2: No such file or directory

    ReplyDelete