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 Google Phần 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 lượng 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ó khởi đầu tốt nhất có thể với Webot, đồng thời cung cấp cho người xem các giải pháp rõ ràng từng bước để thực hiện 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 về robot dành cho thiết bị di động. Loạt video này cũng sẽ đưa ra những lý giải lý thuyết phù hợp về một số khái niệm quan trọng trong lĩnh vực người máy.

Thông tin chi tiết về loạt video:

  1. Cài đặt ROS 2 và thiết lập một kho lưu trữ trong Visual Studio Code. Phần này bao gồm việc cài đặt ROS2 theo hướng lệnh và các khái niệm cơ bản về cách hoạt động của nó. 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 vài ví dụ về Webot 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 kết hợp với Webot để mô phỏng. Bài viết này cũng sẽ bao gồm các lý thuyết cơ bản về giao tiếp giữa ROS2 và Webot.

  3. Sử dụng các dịch vụ của 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, cung cấp hướng dẫn từng bước về cách gọi dịch vụ và bật chủ đề cảm biến để đọc và truyền động cho chuyển động.

  4. Kiểm soát rô-bốt tùy 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 cách sử dụng nhà xuất bản ROS2 tới Webot. Chúng ta có thể triển khai ví dụ về điều khiển chuyển động của robot bằng cách xuất bản dữ liệu đầu ra của bàn phím lên một chủ đề. Sau đó, các dịch vụ ROS có thể sử dụng dữ liệu này cho chuyển động trong Webot.

  5. Nhận phản hồi từ robot có người đăng ký ROS2. Trong video này, chúng ta sẽ đăng ký theo dõi thông tin 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à 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. Robot chính(Nhà xuất bản) Slave(Người đăng ký) có 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à đuổi một rô-bốt khác chạy khỏi rô-bốt thủ công. Tương tự như một kịch bản về Tên trộm và cảnh sát :) [Đây sẽ là phần tiếp nối của 3,4,5 video]. Việc này sẽ cho phép người xem kiểm tra hoạt động giao tiếp và sẽ gặp lỗi trong quá trình mô phỏng nếu có vấn đề 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 các cảm biến đó trê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. Gỡ lỗi video (tiếng vang của Rostopic, thông tin Rostopic, RQT_map). Video này sẽ đề cập đến chức năng không chính xác 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ẽ theo dõi quy trình xem biểu đồ RQT để biết chủ đề nào gây ra vấn đề. Dùng tính nă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 để 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.

  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 sử dụng trong nút và việc sử dụng rqt_console sẽ được khám phá. 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ế để sửa một số lỗi.

  10. Video nâng cao về 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 đã dạy ở trên để nắm đượ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 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 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 nâng cao 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 1] Video sẽ bắt đầu bằng khái niệm thẻ AR và tầm quan trọng của việc bản địa hoá thẻ bằng công nghệ thị giác máy tính. Sau đó, chúng ta sẽ xây dựng dựa trên cách hoạt động của gói Alvar theo dõi AR. Thông tin này sẽ giúp cung cấp góc nhìn tổng thể về dự án. Cuối cùng, dịch vụ sẽ được thực hiện để cho phép luồng các khung hình video từ Webots 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ẽ tiếp nối video thứ 12, trong đó gói sẽ sử dụng luồng hình ảnh ở trên và xuất bản chủ đề biến đổi giữa robot và Thẻ AR để mọi người có thể xem trên Rviz. Cuối cùng, khi di chuyển rô-bốt xung quanh, 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ự lực để 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. Quá trình này cũng sẽ liên quan đến các dự án theo chủ đề nâng cao như SLAM và OpenCV. Việc này sẽ giúp người xem có được mô hình làm việc từ đầu đến cuối khi sử dụng ROS2 và Webot.