โปรเจ็กต์ Webots

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

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

องค์กรโอเพนซอร์ส:
Webots
ผู้เขียนด้านเทคนิค:
ช่อง Soft illusion
ชื่อโปรเจ็กต์:
ซีรีส์วิดีโอบทแนะนำสำหรับ 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 เพื่อโต้ตอบกับ Webot พื้นฐานการสอนเกี่ยวกับบริการ ROS ซึ่งอธิบายความแตกต่างระหว่างบริการต่างๆ ใน ROS และ ROS2 ต่อมา แสดงบทแนะนำแบบบอกเวลาเพื่อเรียกบริการต่างๆ และเปิดใช้หัวข้อเซ็นเซอร์สำหรับการอ่านและแอคเตอร์สำหรับการเคลื่อนไหว

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

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

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

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

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

  9. การแก้ไขข้อบกพร่องวิดีโอ(rqt_console, rqt_gui) ในวิดีโอนี้ เราจะใช้ข้อความ Ros(ข้อมูล การแก้ไขข้อบกพร่อง ข้อผิดพลาด ฯลฯ) ในโหนด และสำรวจการใช้ 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 ซึ่งจะช่วยให้คุณเห็นมุมมองโดยรวมของโครงการ สุดท้ายนี้ ระบบจะสร้างบริการเพื่อเปิดใช้สตรีมเฟรมวิดีโอจาก Webot ไปยังหัวข้อ ROS

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

สรุป:

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