Trang này chứa thông tin chi tiết về một dự án viết nội dung kỹ thuật đã được chấp nhận tham gia Google Season of Docs.
Tóm tắt dự án
- Tổ chức nguồn mở:
- Webots
- Người viết nội dung kỹ thuật:
- Kênh ảo ảnh mềm
- Tên dự án:
- Loạt video hướng dẫn về Webots (Tích hợp với ROS2)
- Độ dài dự án:
- Thời hạn tiêu chuẩn (3 tháng)
Mô tả dự án
Bài học:
Loạt video hướng dẫn này sẽ giúp người dùng mới bắt đầu sử dụng Webots một cách hiệu quả nhất có thể, đồng thời cung cấp cho người xem các giải pháp rõ ràng từng bước để đạt được các mô phỏng cụ thể.
Mục tiêu:
Kết thúc loạt video này, người xem sẽ có thể tạo các nút ROS2 cơ bản và tương tác với Webot cũng như có thể tự tin làm việc trong các dự án nâng cao về rô-bốt di động. Loạt video này cũng sẽ đưa ra những giải thích lý thuyết hiệu quả về một số khái niệm quan trọng trong lĩnh vực robot.
Thông tin chi tiết về loạt video:
Cài đặt ROS 2 và thiết lập kho lưu trữ trong Visual Studio Code. Phần này bao gồm việc cài đặt ROS2 theo lệnh và các kiến thức cơ bản về cách hoạt động của ROS2. Thứ hai, phần này cũng sẽ bao gồm việc thiết lập không gian làm việc ROS trên mã VS và chức năng của các thẻ cơ bản trong mã VS.
Ví dụ cơ bản về ROS2 và Webots. Một số ví dụ về Webots ROS2 sẽ được dùng để giúp người xem hiểu được những điều kỳ diệu có thể làm được nếu chúng ta sử dụng ROS2 với Webots để mô phỏng. Bài này cũng sẽ bao gồm các lý thuyết cơ bản về giao tiếp giữa ROS2 và Webots.
Sử dụng các dịch vụ ROS2 để tương tác với Webot. Dạy các kiến thức cơ bản về dịch vụ ROS, giải thích sự khác biệt giữa các dịch vụ trong ROS và ROS2. Thứ hai, hướng dẫn từng bước để gọi dịch vụ và bật chủ đề cảm biến cho các bài đọc và bộ truyền động cho chuyển động.
Điều khiển rô-bốt tuỳ chỉnh bằng Trình xuất bản ROS2. Tìm hiểu cách dùng nhà xuất bản ROS2 để xuất bản thông báo lên Webots. Chúng ta có thể triển khai một ví dụ về cách kiểm soát chuyển động của robot bằng cách phát hành đầu ra bàn phím đến một chủ đề mà sau đó các dịch vụ ROS có thể sử dụng cho chuyển động trong Webots.
Nhận ý kiến phản hồi từ robot bằng ROS2 Subscriber. Trong video này, chúng ta sẽ đăng ký nhận dữ liệu đọc của cảm biến khoảng cách và dừng robot nếu robot sắp va chạm. Vì vậy, về cơ bản, đây sẽ là một nút tránh chướng ngại vật với các thông báo tương tác được phát hành.
Rô-bốt Master(Nhà xuất bản) Slave(Người đăng ký) với ROS2. Trong video này, chúng ta sẽ điều khiển một robot bằng Bàn phím và khiến một robot khác chạy trốn khỏi robot điều khiển thủ công. Tương tự như tình huống của Cảnh sát và Tên trộm :) [Đây sẽ là phần tiếp theo của các video 3,4,5]. Điều này sẽ tạo điều kiện cho người xem kiểm tra nội dung giao tiếp và sẽ gặp lỗi trong quá trình mô phỏng nếu có vấn đề trong ROS.
Thiết lập Rviz (Hiển thị nhiều đầu ra cảm biến). Trong video này, chúng ta sẽ thêm một số cảm biến khác và phát hành dữ liệu của các cảm biến đó trên Rviz. Ở cuối video này, người xem sẽ có thể thiết lập Rviz (tức là thêm các cảm biến như Lidar, Máy ảnh, v.v. để tạo hình ảnh), lưu cấu hình và tạo cấu hình đã lưu vào lần sau.
Video gỡ lỗi (Rostopic echo, Rostopic info, RQT_graph). Video này sẽ bao gồm một số chủ đề có chức năng không chính xác để giúp bạn hiểu rõ kỹ thuật gỡ lỗi. Chúng ta sẽ làm theo quy trình xem biểu đồ RQT và biết những chủ đề nào gây ra vấn đề. Sử dụng rostopic echo để kiểm tra xem chủ đề có đang phát hành hay không và cuối cùng kiểm tra thông tin rostopic để biết vấn đề của chúng ta. Giải quyết vấn đề và có chức năng bình thường.
Video gỡ lỗi(rqt_console, rqt_gui) Trong video này, các thông báo Ros(thông tin, gỡ lỗi, lỗi, v.v.) sẽ được sử dụng trong nút và chúng ta sẽ tìm hiểu cách sử dụng rqt_console. Video này cũng sẽ được mở rộng để sử dụng rqt_gui nhằm phát hành thông báo giả để có được chức năng cần thiết. Đây có thể là một phương pháp thay thế để khắc phục một số lỗi.
Video nâng cao về chủ đề: Về việc tích hợp thư viện SLAM trong một môi trường không xác định (hộp công cụ SLAM hoặc LaMa) [Phần 1] Video này sẽ bắt đầu với lý thuyết cơ bản về các vấn đề SLAM. Sau đó, chúng ta sẽ sử dụng cơ sở hạ tầng của các khái niệm đã được dạy ở trên để hiểu rõ cốt lõi của dự án. Cuối cùng, chúng ta sẽ tạo các nút cần thiết thông qua thiết bị đầu cuối và xem kết quả ánh xạ trong Rviz.
Video về chủ đề nâng cao: Về việc tích hợp thư viện SLAM trong môi trường không xác định (bộ công cụ SLAM hoặc LaMa) [Phần 2] Tiếp nối video thứ 10, trong video này, tôi sẽ hướng dẫn cách tạo tệp khởi chạy để khởi chạy tất cả các nút cùng nhau và kiểm tra rqt_graph để hiểu rõ các khái niệm trong khung ROS. Cuối cùng, chúng ta sẽ lưu bản đồ do gói này tạo ra bằng cách sử dụng máy chủ bản đồ.
Video nâng cao theo chủ đề: Về việc tích hợp OpenCV (phát hiện thẻ AR, gói Ar_track_alvar) [Phần 1] Video sẽ bắt đầu bằng khái niệm thẻ AR và tầm quan trọng của chúng trong việc bản địa hoá bằng công nghệ thị giác máy tính. Sau đó, chúng ta sẽ tiếp tục xây dựng cách hoạt động của gói Alvar theo dõi thực tế tăng cường. Điều này sẽ giúp cung cấp thông tin tổng quan về dự án. Cuối cùng, dịch vụ sẽ được thực hiện để cho phép truyền trực tuyến khung hình video từ Webot đến chủ đề ROS.
Video về chủ đề nâng cao: Về việc tích hợp OpenCV (phát hiện thẻ AR, gói Ar_track_alvar) [Phần 2] Video này sẽ là phần tiếp theo của video thứ 12, trong đó gói này sẽ sử dụng luồng hình ảnh ở trên và chủ đề biến đổi giữa robot và thẻ AR sẽ được phát hành và có thể xem trên Rviz. Cuối cùng, khi di chuyển robot, chúng ta sẽ thấy các thẻ khác nhau được định vị và vị trí của các thẻ đó thay đổi trong Rviz và trong thông báo rostopic.
Kết luận:
Dự án GSOD này là một gói tự cung cấp để giúp bạn hiểu biết cơ bản về việc tích hợp ROS2 với Webots. Gói này cũng sẽ bao gồm việc triển khai thực tế các khái niệm trong ROS2 như chủ đề, dịch vụ, nút, tệp khởi chạy, trình xuất bản, trình đăng ký, nhiều công cụ gỡ lỗi và cách sử dụng mã VS. Khóa học này cũng sẽ đề cập đến các dự án chủ đề nâng cao như SLAM và OpenCV. Điều này sẽ giúp người xem nắm được mô hình toàn diện về cách làm việc bằng ROS2 và Webots.