OVERVIEW:
โปรเจกต์นี้มีจุดมุ่งหมายเพื่อทำความเข้าใจพื้นฐานของ ROS1 รวมถึงหลักการทำงานของ publishers และ subscribers แม้ว่า line follower จะไม่ได้ทำงานได้รวดเร็วเป็นพิเศษ แต่ก็เป็นตัวอย่างที่ใช้งานได้จริงของการนำ rosserial มาใช้บนบอร์ด Arduino ในการทำโปรเจกต์นี้ จำเป็นต้องมีความเข้าใจพื้นฐานเกี่ยวกับ ROS ซึ่งรวมถึงแนวคิดเช่น **การสร้าง workspaces, packages, และ scripts**
WORKING:
Arduino จะรวบรวมข้อมูลจาก IR sensors (เช่น 0000, 10000 ฯลฯ) และ publish ข้อมูลนั้นไปยัง ROS node ซึ่ง ROS node จะ subscribe ข้อมูลนี้และรัน script โดยอิงตามข้อมูล IR sensor ที่ได้รับ script จะออกคำสั่งไปยัง line follower (เช่น เดินหน้า, เลี้ยวขวา, หยุด) จากนั้น Arduino จะ subscribe คำสั่งเหล่านี้และเปลี่ยนแปลงการเคลื่อนที่ของ line follower ให้เป็นไปตามนั้น
STEPS:
1] สร้าง Workspace
2] สร้าง package ภายในโฟลเดอร์ src ของ workspace ของคุณ
3] สร้างโฟลเดอร์ script ภายในโฟลเดอร์ src ของ package ของคุณ
4] คัดลอกและวาง script ที่แนบมา (ในส่วน code) และบันทึก
5] จากนั้น catkin_make workspace ของคุณ
หลังจากทำตามขั้นตอนเหล่านี้ ให้ทำตามไฟล์ "line_follower_steps.txt" ที่แนบมาในส่วน downloads
และคุณก็ทำเสร็จแล้ว!!
PHOTOS:

WORKING VIDEO:
EXPANDED TECHNICAL DETAILS
การบูรณาการ Robot Operating System (ROS)
line follower ขั้นสูงนี้เชื่อมต่อฮาร์ดแวร์ Arduino แบบง่ายเข้ากับระบบนิเวศ ROS1 (Robot Operating System) อันทรงพลังสำหรับการวางแผนเส้นทางที่ซับซ้อน
- rosserial Protocol: Arduino ทำหน้าที่เป็น ROS Hardware Node โดยจะรวบรวมข้อมูลจาก 5-channel Infrared (IR) sensor array และ publish ไปยัง ROS master (โดยทั่วไปจะรันอยู่บน Raspberry Pi หรือ PC) ในรูปแบบของ
/sensor_datatopic - Distributed Computing: คำสั่ง "Velocity" ระดับสูงจะถูกคำนวณใน ROS โดยใช้ PID หรือ path-following node และส่งกลับไปยัง Arduino ผ่าน
/cmd_veltopic ซึ่งจะขับเคลื่อนมอเตอร์ต่อไป
ผลกระทบด้านการศึกษา
- Architecture Visualization: นักเรียนสามารถใช้ RViz เพื่อแสดงข้อมูลเซ็นเซอร์และสถานะของหุ่นยนต์ในรูปแบบ 3 มิติแบบเรียลไทม์ ซึ่งนำเสนอเวิร์กโฟลว์มาตรฐานระดับมืออาชีพในอุตสาหกรรมสำหรับการพัฒนา embedded robotics