Project Webots

Halaman ini berisi detail proyek penulisan teknis yang diterima untuk Google Season of Dokumen.

Ringkasan proyek

Organisasi open source:
Webot
Penulis teknis:
Channel ilusi lunak
Nama proyek:
Serial Tutorial Video untuk Webot (Integrasi dengan ROS2)
Durasi proyek:
Durasi standar (3 bulan)

Project description

Pembelajaran:

Rangkaian tutorial video ini memungkinkan pengguna baru untuk memulai penggunaan Webots sebaik mungkin dan memberikan solusi langkah demi langkah yang jelas kepada pemirsa untuk mencapai simulasi tertentu.

Tujuan:

Di akhir seri ini, penonton akan dapat membuat node ROS2 dasar dan berinteraksi dengan Webots serta mendapatkan kepercayaan diri untuk mengerjakan proyek canggih di robot seluler. Seri video ini juga akan memberikan penjelasan teoretis yang baik tentang beberapa konsep penting di bidang robotika.

Detail Serial Video:

  1. Menginstal dan menyiapkan repositori ROS 2 di Visual Studio Code. Ini termasuk instalasi {i>command wise<i} ROS2 dan dasar-dasar cara kerjanya. Kedua, ini juga akan mencakup penyiapan ruang kerja ROS pada kode VS dan fungsionalitas tab dasar dalam kode VS.

  2. Contoh dasar ROS2 dan Webots. Beberapa contoh ROS2 Webots akan digunakan untuk melibatkan penonton dalam memahami keajaiban apa yang dapat dilakukan jika kita menggunakan ROS2 dengan Webots untuk simulasi. Ini juga akan mencakup teori dasar komunikasi antara ROS2 dan Webots.

  3. Menggunakan layanan ROS2 untuk berinteraksi dengan Webot. Mengajarkan dasar-dasar layanan ROS yang menjelaskan perbedaan antara layanan di ROS dan ROS2. Kedua, menunjukkan tutorial bertahap untuk memanggil layanan dan mengaktifkan topik sensor untuk pembacaan dan aktuator untuk gerakan.

  4. Kontrol robot kustom dengan Penayang ROS2. Mempelajari cara memublikasikan pesan menggunakan penerbit ROS2 ke Webots. Kita dapat menerapkan contoh pengendalian gerakan robot dengan memublikasikan output keyboard ke topik yang kemudian dapat digunakan oleh layanan ROS untuk gerakan di Webots.

  5. Dapatkan masukan dari robot dengan Pelanggan ROS2. Dalam video ini, kami akan berlangganan pembacaan sensor sensor jarak dan menghentikan robot jika terjadi tabrakan. Jadi pada dasarnya, ini akan menjadi node untuk menghindari hambatan dengan pesan interaktif yang dipublikasikan.

  6. Robot Master(Publisher) Slave(Subscriber) dengan ROS2. Dalam video ini, kita akan mengontrol satu robot dengan Keyboard dan membuat robot lain melarikan diri dari robot manual. Mirip dengan skenario Pencuri dan Polisi :) [Ini akan menjadi kelanjutan dari 3,4,5 video]. Hal ini akan memungkinkan penonton untuk menguji komunikasi dan akan menemukan kekurangan dalam simulasi jika ada masalah dalam ROS.

  7. Menyiapkan Rviz (Menampilkan output sensor yang berbeda ). Dalam video ini, kita akan menambahkan beberapa sensor lain dan memublikasikan datanya di Rviz. Di akhir video ini, penonton akan dapat menyiapkan Rviz (yaitu menambahkan sensor seperti Lidar, Kamera, dll.untuk visualisasi), menyimpan konfigurasi, dan memunculkan konfigurasi tersimpan di lain waktu.

  8. Video debug (Rostopic echo, Rostopic info, RQT_graph). Video ini akan menyertakan fungsi yang salah secara sengaja dari beberapa topik untuk membantu memahami teknik proses debug. Kita akan mengikuti proses untuk melihat grafik RQT dan mengetahui topik yang menyebabkan masalah. Menggunakan rostopic echo untuk memeriksa apakah topik dipublikasikan dan pada akhirnya memeriksa info rostopic untuk mendapatkan masalah. Atasi masalah tersebut dan nikmati fungsinya.

  9. Video proses debug(rqt_console, rqt_gui) Dalam video ini, pesan Ros(info, debug, error, dll.) akan digunakan di node, dan penggunaan rqt_console akan dibahas. Video ini juga akan diperluas agar dapat menggunakan rqt_gui untuk memublikasikan pesan contoh guna mendapatkan fungsi yang diperlukan. Hal ini dapat menjadi pendekatan alternatif untuk memperbaiki sejumlah bug.

  10. Video topik lanjutan: Tentang integrasi library SLAM di lingkungan yang tidak diketahui (toolbox SLAM atau LaMa) [Bagian 1] Video ini akan dimulai dengan teori dasar masalah SLAM. Setelah itu, kita akan menggunakan konsep infrastruktur yang diajarkan di atas untuk memahami inti dari proyek ini. Terakhir, kita akan memunculkan node yang diperlukan melalui terminal dan melihat output pemetaan di Rviz.

  11. Video topik lanjutan: Tentang integrasi library SLAM di lingkungan yang tidak diketahui (toolbox SLAM atau LaMa) [Bagian 2] Sebagai kelanjutan dari video ke-10, dalam video ini, saya akan mengajarkan cara membuat file peluncuran untuk meluncurkan semua node bersama-sama dan memeriksa rqt_graph untuk memahami konsep yang tepat dalam framework ROS. Pada akhirnya, kita akan menyimpan peta yang dihasilkan oleh paket menggunakan server peta.

  12. Video topik lanjutan: Tentang integrasi OpenCV (deteksi tag AR, paket Ar_track_alvar) [Bagian 1] Video ini akan dimulai dengan apa itu tag AR dan signifikansinya dalam pelokalan menggunakan computer vision. Kemudian kita akan melanjutkan cara kerja paket Alvar jalur AR. Langkah ini akan membantu memberikan perspektif keseluruhan dari proyek tersebut. Terakhir, layanan akan dibuat untuk mengaktifkan streaming frame video dari Webots ke topik ROS.

  13. Video topik lanjutan: Tentang integrasi OpenCV (deteksi tag AR, paket Ar_track_alvar) [Bagian 2] Video ini merupakan kelanjutan dari video ke-12 di mana aliran gambar di atas akan digunakan oleh paket dan topik transformasi antara robot dan Tag AR akan dipublikasikan yang dapat dilihat di Rviz. Terakhir, saat kita menggerakkan robot, kita akan melihat penempatan tag yang berbeda dan posisinya berubah di Rviz dan di pesan rostopic.

Kesimpulan:

Proyek GSOD ini adalah paket mandiri untuk memungkinkan pemahaman dasar tentang integrasi ROS2 dengan Webots. Paket ini juga akan mencakup implementasi praktis konsep dalam ROS2 seperti topik, layanan, {i>node<i}, file peluncuran, penerbit, pelanggan, alat debug yang berbeda, dan penggunaan kode VS. Hal ini juga akan melibatkan proyek topik tingkat lanjut seperti SLAM dan OpenCV. Hal ini akan memberi penonton paradigma tentang sebuah pekerjaan menyeluruh menggunakan ROS2 dan Webots.