โปรเจ็กต์ Webots

หน้านี้มีรายละเอียดของโครงการการเขียนเชิงเทคนิคที่ยอมรับสำหรับ Google Season of Docs

ข้อมูลสรุปของโปรเจ็กต์

องค์กรโอเพนซอร์ส:
Webots
ผู้เขียนด้านเทคนิค:
Soft illusion Channel
ชื่อโปรเจ็กต์:
ซีรีส์วิดีโอบทแนะนำสำหรับ Webot (การผสานรวมกับ ROS2)
ระยะเวลาของโปรเจ็กต์:
ระยะเวลามาตรฐาน (3 เดือน)

คำอธิบายโปรเจ็กต์

สิ่งที่ได้เรียนรู้:

วิดีโอบทแนะนำชุดนี้จะช่วยให้ผู้ใช้ใหม่สามารถเริ่มต้นใช้งาน Webots ได้อย่างดีที่สุด และมอบโซลูชันทีละขั้นตอนที่ชัดเจนให้กับผู้ชมเพื่อสร้างการจำลองที่เฉพาะเจาะจง

เป้าหมาย:

เมื่อสิ้นสุดซีรีส์นี้ ผู้ชมจะสามารถสร้างโหนด ROS2 พื้นฐานและโต้ตอบกับ Webots ได้ ตลอดจนสร้างความมั่นใจในการทำงานในโปรเจ็กต์ขั้นสูงต่างๆ ด้วยโรบ็อตอุปกรณ์เคลื่อนที่ วิดีโอซีรีส์นี้จะให้คำอธิบายเชิงทฤษฎีที่ดีเกี่ยวกับแนวคิดสำคัญต่างๆ ในสาขาวิทยาการหุ่นยนต์

รายละเอียดซีรีส์วิดีโอ

  1. การติดตั้ง ROS 2 และการตั้งค่าที่เก็บในโค้ด Visual Studio ซึ่งรวมถึงการติดตั้ง ROS2 ตามคำสั่งและข้อมูลพื้นฐานเกี่ยวกับการทำงาน ฉบับที่ 2 จะรวมถึงการตั้งค่าพื้นที่ทำงาน ROS ในโค้ด VS และฟังก์ชันของแท็บพื้นฐานในโค้ด VS ด้วย

  2. ตัวอย่าง ROS2 และ Webots พื้นฐาน ตัวอย่างบางส่วนของ Webots ROS2 จะนำมาใช้เพื่อดึงดูดผู้ชมให้เข้าใจว่าเขาสามารถทำอะไรได้บ้างหากเราใช้ ROS2 กับ Webots ในการจำลอง ซึ่งรวมไปถึงทฤษฎีพื้นฐานของการสื่อสารระหว่าง ROS2 และ Webots ด้วย

  3. การใช้บริการ ROS2 เพื่อโต้ตอบกับ Webots พื้นฐานการสอนของบริการ ROS ด้วยการอธิบายความแตกต่างระหว่างบริการใน ROS กับ ROS2 อย่างที่สองคือแสดงบทแนะนำอย่างเป็นขั้นตอนเพื่อเรียกบริการต่างๆ และเปิดใช้หัวข้อเซ็นเซอร์สำหรับการอ่านและแอคเตอร์สำหรับการเคลื่อนไหว

  4. ควบคุมโรบ็อตที่กำหนดเองด้วย ROS2 Publisher ดูวิธีเผยแพร่ข้อความโดยใช้ผู้เผยแพร่โฆษณา ROS2 ไปยัง Webot เราสามารถใช้ตัวอย่างการควบคุมการเคลื่อนไหวของโรบ็อตด้วยการเผยแพร่เอาต์พุตแป้นพิมพ์ไปยังหัวข้อซึ่งบริการ ROS จะนำไปใช้สำหรับการเคลื่อนไหวใน Webots ได้

  5. รับความคิดเห็นจากหุ่นยนต์ที่มีสมาชิก ROS2 ในวิดีโอนี้ เราจะสมัครรับข้อมูลที่เซ็นเซอร์อ่านได้จากเซ็นเซอร์ระยะทาง และหยุดหุ่นยนต์ถ้าคุณกำลังจะชนกัน กล่าวง่ายๆ ก็คือนี่เป็นโหนดหลีกเลี่ยงสิ่งกีดขวางที่มีการเผยแพร่ข้อความโต้ตอบ

  6. โรบ็อต(ผู้สมัครใช้บริการ) ของ Slave ระดับ Master(ผู้เผยแพร่โฆษณา) ที่ใช้ ROS2 ในวิดีโอนี้ เราจะควบคุมหุ่นยนต์ 1 ตัวด้วยแป้นพิมพ์ และทำให้หุ่นยนต์อีกตัววิ่งออกห่างจากหุ่นยนต์ที่ใช้มือ คล้ายกับสถานการณ์ Thief และ Cops :) [ซึ่งจะเล่นวิดีโอต่อ 3,4,5 รายการ] ซึ่งจะช่วยให้ผู้ชมสามารถทดสอบการสื่อสารและพบข้อบกพร่องในการจำลองหากมีปัญหาใน ROS

  7. การตั้งค่า Rviz (แสดงเอาต์พุตเซ็นเซอร์แบบต่างๆ ) ในวิดีโอนี้ เราจะเพิ่มเซ็นเซอร์อื่นๆ อีก 2-3 ตัวและเผยแพร่ข้อมูลบน Rviz ในตอนท้ายของวิดีโอนี้ ผู้ดูจะสามารถตั้งค่า Rviz (เช่น การเพิ่มเซ็นเซอร์ เช่น Lidar, กล้องถ่ายรูป ฯลฯ เพื่อการแสดงข้อมูลผ่านภาพ) บันทึกการกำหนดค่าและสร้างการกำหนดค่าที่บันทึกไว้ในครั้งถัดไป

  8. การแก้ไขข้อบกพร่องของวิดีโอ (เสียงสะท้อนจาก Rostopic, ข้อมูล Rostopic, RQT_graph) วิดีโอนี้จะกล่าวถึงฟังก์ชันการทำงานที่ไม่ถูกต้องแบบคร่าวๆ ของบางหัวข้อเพื่อช่วยให้เข้าใจเทคนิคการแก้ไขข้อบกพร่อง เราจะทำตามขั้นตอนการดูกราฟ RQT และเพื่อให้ทราบว่าหัวข้อใดเป็นสาเหตุของปัญหา ใช้เสียงสะท้อนของ Rostopic เพื่อตรวจสอบว่าหัวข้อมีการเผยแพร่หรือไม่ และสุดท้ายให้ตรวจสอบข้อมูล rostopic เพื่อรับปัญหา แก้ไขปัญหาและมีฟังก์ชันการทำงานปกติ

  9. การแก้ไขข้อบกพร่อง video(rqt_console, rqt_gui) ในวิดีโอนี้ เราจะใช้ข้อความของ Ros(info, การแก้ไขข้อบกพร่อง, ข้อผิดพลาด ฯลฯ) ในโหนด และสำรวจการใช้ rqt_console วิดีโอนี้จะมีการขยายการใช้งาน rqt_gui เพื่อเผยแพร่ข้อความจำลองเพื่อให้มีฟังก์ชันการทำงานที่จำเป็น วิธีนี้เป็นทางเลือกหนึ่งในการแก้ไขข้อบกพร่อง

  10. วิดีโอตามหัวข้อขั้นสูง: เกี่ยวกับการผสานรวมไลบรารี SLAM ในสภาพแวดล้อมที่ไม่รู้จัก (กล่องเครื่องมือ SLAM หรือ LaMa) [ตอนที่ 1] วิดีโอนี้จะเริ่มต้นด้วยทฤษฎีพื้นฐานของปัญหา SLAM หลังจากนั้นเราจะใช้โครงสร้างพื้นฐานของแนวคิดที่สอนด้านบนเพื่อทำความเข้าใจแกนหลักของโปรเจ็กต์ สุดท้าย เราจะสร้างโหนดที่จำเป็นผ่านเทอร์มินัลและดูเอาต์พุตการแมปใน Rviz

  11. วิดีโอหัวข้อขั้นสูง: เกี่ยวกับการผสานรวมไลบรารี SLAM ในสภาพแวดล้อมที่ไม่รู้จัก (กล่องเครื่องมือ SLAM หรือ LaMa) [ตอนที่ 2] ต่อจากวิดีโอที่ 10 ในวิดีโอนี้ เราจะสอนวิธีสร้างไฟล์เปิดตัวเพื่อเปิดใช้งานโหนดทั้งหมดพร้อมกัน และตรวจสอบ rqt_graph เพื่อทำความเข้าใจแนวคิดในเฟรมเวิร์ก ROS อย่างถูกต้อง ในท้ายที่สุด เราจะบันทึกแผนที่ที่สร้างโดยแพ็กเกจโดยใช้เซิร์ฟเวอร์แผนที่

  12. วิดีโอหัวข้อขั้นสูง: ในการผสานรวม OpenCV (การตรวจจับแท็ก AR, แพ็กเกจ Ar_track_alvar) [ตอนที่ 1] วิดีโอจะเริ่มต้นด้วยความหมายของแท็ก AR และความสำคัญในการแปลให้เหมาะกับท้องถิ่นโดยใช้คอมพิวเตอร์วิทัศน์ จากนั้นเราจะต่อยอดจากการทำงานของแพ็กเกจ Alvar การติดตาม AR ซึ่งจะช่วยให้คุณเห็นมุมมองโดยรวมของโครงการ สุดท้ายจะมีการสร้างบริการเพื่อเปิดใช้การสตรีมเฟรมวิดีโอจาก Webots ไปยังหัวข้อ ROS

  13. วิดีโอหัวข้อขั้นสูง: ในการผสานรวม OpenCV (การตรวจจับแท็ก AR, แพ็กเกจ Ar_track_alvar) [ตอนที่ 2] วิดีโอนี้จะเป็นวิดีโอต่อเนื่องของวิดีโอที่ 12 ซึ่งมีแพ็กเกจใช้สตรีมรูปภาพด้านบน และมีการเผยแพร่หัวข้อการเปลี่ยนรูปแบบระหว่างหุ่นยนต์กับแท็ก AR ซึ่งดูได้บน Rviz สุดท้าย เมื่อเราย้ายโรบ็อตไปรอบๆ เราจะเห็นแท็กที่ต่างกันและตำแหน่งของแท็กใน Rviz และในข้อความ rostopic มีการเปลี่ยนแปลง

สรุป:

โครงการ GSOD นี้เป็นแพ็กเกจแบบพึ่งพาตนเองได้เพื่อให้มีความเข้าใจเบื้องต้นเกี่ยวกับการผสานรวม ROS2 กับ Webots แพ็กเกจนี้ยังจะประกอบไปด้วยการนำแนวคิดต่างๆ ไปใช้จริงใน ROS2 เช่น หัวข้อ บริการ โหนด ไฟล์การเปิดตัว ผู้เผยแพร่ สมาชิก เครื่องมือแก้ไขข้อบกพร่องต่างๆ และการใช้โค้ด VS ซึ่งเกี่ยวข้องกับโครงการหัวข้อขั้นสูง เช่น SLAM และ OpenCV ด้วย ซึ่งจะช่วยให้ผู้ชมได้เห็นแนวทางการทำงานตั้งแต่ต้นจนจบโดยใช้ ROS2 และ Webots