Project Webots

Halaman ini berisi detail project penulisan teknis yang diterima untuk Google Season of Docs.

Ringkasan project

Organisasi open source:
Webots
Penulis teknis:
Saluran Soft Illusion
Nama project:
Rangkaian Video Tutorial untuk Webots (Integrasi dengan ROS2)
Durasi project:
Durasi standar (3 bulan)

Project description

Pembelajaran:

Seri tutorial video ini akan memungkinkan pengguna baru mendapatkan awal yang terbaik dengan Webots dan memberikan solusi langkah demi langkah yang jelas kepada penonton untuk mencapai simulasi tertentu.

Sasaran:

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

Detail Serial Video:

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

  2. Contoh ROS2 dan Webots dasar. Beberapa contoh Webots ROS2 akan digunakan untuk mengajak penonton memahami hal-hal luar biasa 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 Webots. Dasar-dasar pengajaran layanan ROS yang menjelaskan perbedaan antara layanan di ROS dan ROS2. Kedua, menampilkan tutorial langkah demi langkah untuk memanggil layanan dan mengaktifkan topik sensor untuk pembacaan dan aktuator untuk gerakan.

  4. Kontrol robot kustom dengan ROS2 Publisher. Mempelajari cara memublikasikan pesan menggunakan penayang ROS2 ke Webots. Kita dapat menerapkan contoh mengontrol 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, kita akan berlangganan pembacaan sensor jarak dan menghentikan robot jika akan bertabrakan. Jadi, pada dasarnya ini akan menjadi node penghindaran rintangan 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 lari dari robot manual. Mirip dengan skenario Pencuri dan Polisi :) [Ini akan menjadi kelanjutan dari video 3,4,5]. Dengan cara ini, pelihat dapat menguji komunikasi dan akan menemukan cacat pada 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 membuat konfigurasi tersimpan pada lain waktu.

  8. Video proses 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. Kami akan mengikuti proses melihat grafik RQT dan mengetahui topik mana yang menyebabkan masalah. Menggunakan rostopic echo untuk memeriksa apakah topik dipublikasikan dan pada akhirnya memeriksa info rostopic untuk mendapatkan masalah kita. Menyelesaikan masalah dan memiliki fungsi normal.

  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 dijelajahi. Video ini juga akan diperluas untuk menggunakan rqt_gui guna memublikasikan pesan dummy untuk mendapatkan fungsi yang diperlukan. Ini bisa menjadi pendekatan alternatif untuk memperbaiki beberapa bug.

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

  11. Video topik lanjutan: Tentang integrasi library SLAM di lingkungan yang tidak dikenal (SLAM toolbox atau LaMa) [Bagian 2] Sebagai kelanjutan dari video ke-10, dalam video ini, saya akan mengajarkan cara membuat file peluncuran untuk meluncurkan semua node secara bersamaan dan memeriksa rqt_graph untuk pemahaman 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 akan dimulai dengan penjelasan tentang tag AR dan signifikansinya dalam pelokalan menggunakan computer vision. Kemudian, kita akan mem-build cara kerja paket Alvar jalur AR. Hal ini akan membantu memberikan perspektif keseluruhan tentang project. 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 akan menjadi kelanjutan dari video ke-12, tempat streaming 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 berbagai tag ditemukan dan posisinya berubah di Rviz dan di pesan rostopic.

Kesimpulan:

Project GSOD ini adalah paket mandiri untuk memungkinkan pemahaman dasar tentang integrasi ROS2 dengan Webots. Paket ini juga akan mencakup implementasi praktis konsep-konsep di ROS2 seperti topik, layanan, simpul, file peluncuran, penerbit, pelanggan, alat {i>debugging<i} yang berbeda, dan penggunaan kode VS. Hal ini juga akan melibatkan project topik lanjutan seperti SLAM dan OpenCV. Hal ini akan memberi penonton paradigma pekerjaan menyeluruh menggunakan ROS2 dan Webots.