Dự án Webots

Trang này chứa thông tin chi tiết về một dự án viết kỹ thuật được chấp nhận cho Phần Google Tài liệu.

Tóm tắt dự án

Tổ chức nguồn mở:
Webot
Người viết nội dung kỹ thuật:
Kênh ảo ảnh nhẹ
Tên dự án:
Loạt video hướng dẫn về Webot (Tích hợp với ROS2)
Thời lượng dự án:
Thời gian 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 có được khởi đầu tốt nhất có thể với Webots, đồ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 những mô phỏng cụ thể.

Mục tiêu:

Khi 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 thực hiện các dự án nâng cao trong rô-bốt di động. Loạt video này cũng sẽ đưa ra lý giải thuyết trình thoả đáng 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:

  1. 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à thông tin cơ bản về hoạt động của ROS2. Thứ hai, dự á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.

  2. Ví dụ về ROS2 và Webot cơ bản. Một số ví dụ về Webots ROS2 sẽ được sử dụng để thu hút 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 kết hợp với Webot để mô phỏng. Chương trình này cũng bao gồm các lý thuyết cơ bản về giao tiếp giữa ROS2 và Webot.

  3. Sử dụng dịch vụ ROS2 để tương tác với Webot. Giảng dạy 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, trình chiếu các video hướng dẫn từng bước để gọi dịch vụ và bật chủ đề cảm biến cho các chỉ số đọc và bộ truyền động cho chuyển động.

  4. Kiểm soát rô-bốt tuỳ chỉnh bằng Nhà xuất bản ROS2. Tìm hiểu cách xuất bản thông báo bằng nhà xuất bản ROS2 cho Webot. Chúng ta có thể triển khai ví dụ về việc điều khiển chuyển động của rô-bốt bằng cách xuất bản đầu ra bàn phím cho một chủ đề mà sau đó dịch vụ ROS có thể sử dụng cho chuyển động trong Webot.

  5. Nhận phản hồi từ rô-bốt thông qua Người đăng ký ROS2. Trong video này, chúng ta sẽ đăng ký theo dõi chỉ số cảm biến của cảm biến khoảng cách và dừng robot nếu robot sắp va chạm. 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 đang được xuất bản.

  6. Rô-bốt Chính(Nhà xuất bản) Nô lệ(Người đăng ký) với ROS2. Trong video này, chúng ta sẽ điều khiển một rô-bốt bằng Bàn phím và khiến một rô-bốt khác chạy khỏi rô-bốt thủ công. Tương tự như một tình huống về Tên trộm và Cảnh sát :) [Đây sẽ là phần tiếp theo của 3,4,5 video]. Việc này cho phép người xem thử nghiệm khả năng giao tiếp và sẽ gặp lỗi trong quá trình mô phỏng nếu có sự cố trong ROS.

  7. Thiết lập Rviz (Hiển thị đầu ra khác của cảm biến). Trong video này, chúng tôi sẽ thêm một số cảm biến khác và xuất bản dữ liệu của chúng lên Rviz. Ở cuối video này, người xem có thể thiết lập Rviz (tức là thêm các cảm biến như Lidar, Camera, v.v. để trực quan hoá), lưu cấu hình và tạo cấu hình đã lưu vào lần tiếp theo.

  8. Video gỡ lỗi (tiếng vọng Rostopic, thông tin Rostopic, RQT_map). Video này sẽ đề cập đến chức năng sai có chủ ý của một số chủ đề để giúp bạn hiểu về kỹ thuật gỡ lỗi. Chúng ta sẽ thực hiện theo quy trình xem biểu đồ RQT và biết được chủ đề nào gây ra vấn đề này. Dùng rostopic để kiểm tra xem chủ đề có được xuất bản hay không. Khi kết thúc, hãy kiểm tra thông tin rostopic để tìm vấn đề của chúng ta. Giải quyết vấn đề và có chức năng bình thường.

  9. 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 dùng trong nút và khám phá việc sử dụng rqt_console. Video này cũng sẽ được mở rộng để sử dụng rqt_gui nhằm xuất bản các thông báo giả nhằm nhận được chức năng bắt buộc. Đây có thể là phương pháp thay thế để khắc phục một số lỗi.

  10. Video theo chủ đề nâng cao: 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 về các khái niệm đã học ở trên để hiểu được điểm mấu chốt 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.

  11. Video chủ đề nâng cao: 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 2] Tiếp theo 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 đúng các khái niệm trong khung ROS. Cuối cùng, chúng ta sẽ lưu bản đồ do gói tạo bằng cách sử dụng máy chủ bản đồ.

  12. Video theo 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 1] Video sẽ bắt đầu bằng khái niệm thẻ AR và ý nghĩa của chúng trong việc bản địa hoá bằng 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 AR. Thông tin này sẽ giúp bạn có góc nhìn tổng thể về dự án. Cuối cùng, dịch vụ sẽ được xây dựng để truyền khung hình video từ Webot sang chủ đề ROS.

  13. Video theo 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 sẽ sử dụng luồng hình ảnh ở trên và chủ đề chuyển đổi giữa robot và Thẻ AR sẽ được xuất bản để xem trên Rviz. Cuối cùng, khi di chuyển rô-bốt, chúng ta sẽ thấy các thẻ khác nhau được đặt và vị trí của chúng thay đổi trong Rviz và trong các thông báo rostopic.

Kết luận:

Dự án GSOD này là một gói tự hoạt động để cho phép 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, nhà xuất bản, người đăng ký, các công cụ gỡ lỗi khác nhau và việc sử dụng mã VS. Việc này cũng sẽ liên quan đến các dự án nâng cao theo chủ đề như SLAM và OpenCV. Việc này sẽ mang đến cho người xem mô hình công việc từ đầu đến cuối bằng cách sử dụng ROS2 và Webot.