Daftar Isi:
Video: Roomblock: Platform untuk Mempelajari Navigasi ROS Dengan Roomba, Raspberry Pi, dan RPLIDAR: 9 Langkah (dengan Gambar)
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-13 06:57
Apa ini?
"Roomblock" adalah platform robot yang terdiri dari Roomba, Raspberry Pi 2, sensor laser (RPLIDAR) dan baterai ponsel. Bingkai pemasangan dapat dibuat dengan printer 3D. Sistem navigasi ROS memungkinkan untuk membuat peta ruangan dan menggunakannya untuk mencapai tujuan secara mandiri.
Siapa yang butuh ini?
Siapa pun yang ingin mempelajari teknologi mutakhir navigasi robot, pemetaan, dan mengemudi otonom. Robot ini dapat dibangun dengan mudah dan biaya lebih rendah daripada platform komersial lainnya. ROS sekarang de facto sistem perangkat lunak standar untuk bidang penelitian robot. Film ini menunjukkan apa yang mungkin dengan sistem navigasi ROS.
Langkah 1: Yang Anda Butuhkan
Kabel serial USB
Jika Anda tidak memiliki kabel serial USB untuk Roomba, Anda dapat membuatnya dengan mudah dengan produk ini.
- FTDI: TTL-232R-5V
- Akiduki Denshi: TTL-232R-5V
Perhatikan bahwa antarmuka Roomba adalah TTL (5V).
Penyambung
Anda memerlukan konektor mini-DIN 8 pin untuk antarmuka serial Roomba. Sebenarnya konektor Roomba adalah mini-DIN 7 pin, namun jauh lebih mudah untuk membeli konektor 8 pin daripada 7 pin.
- Digikey: konektor mini-DIN 8pin
- Kyoritsu: konektor mini-DIN 8pin
Pematerian
Solder kabel serial ke konektor 8 pin. Periksa koneksi dengan gambar terlampir, dan dokumen spesifikasi antarmuka terbuka Roomba.
Spesifikasi Antarmuka Terbuka Roomba
Harap dicatat, aman untuk menghubungkan Vcc(Merah) dan RTS(Hijau) untuk menghindari masalah aliran perangkat keras.
Langkah 4: Siapkan Modul Kamera Raspberry Pi (Opsional)
Jika Anda memiliki modul kamera Raspberry Pi, Anda dapat memasangnya ke Raspberry Pi. Ini opsional untuk mempelajari navigasi, namun menyenangkan untuk mendapatkan pemandangan dari penglihatan robot.
Bagian dudukan kamera juga disertakan dalam data bingkai di Thingiverse. Modul kamera dapat diperbaiki dengan empat sekrup M2.
Langkah 5: Siapkan PC Lokal
Instal Ubuntu
Instal desktop Ubuntu 16.04 mengikuti halaman resmi
halaman resmi Ubuntu
Instal ROS
Silakan berkonsultasi dengan halaman resmi ROS. Instal paket lengkap desktop Kinetic.
Petunjuk pemasangan ROS Kinetic
Instal paket Roomblock ROS
Paket untuk roomblock sudah dirilis ke Kinetic. Anda dapat menginstalnya dengan perintah apt.
$ sudo apt install ros-kinetic-roomblock
Itu dia.
Jika Anda ingin memodifikasi dan membangun paket dari kode sumber, Anda bisa mendapatkannya dari GitHub.
GitHub - blok kamar
Silakan ikuti instruksi di README.md.
Jika Anda memiliki masalah atau pertanyaan tentang perangkat lunak, silakan buat masalah di GitHub Issues sehingga kami dapat melacak masalahnya secara efisien. Harap hindari untuk mempostingnya di Instructables.
Langkah 6: Siapkan Raspberry Pi
Instal Ubuntu
Instal Ubuntu 16.04 ke Raspberry Pi dengan mengikuti panduan penginstalan:
Wiki Ubuntu: RaspberryPi
Instal ROS
Instal ROS Kinetic mengikuti panduan penginstalan:
Instalasi Ubuntu dari ROS Kinetic
Instal paket Roomblock ROS
Anda perlu menginstal paket roomblock dari kode sumber. Kode sumber paket ada di GitHub.
GitHub - blok kamar
Silakan ikuti instruksi di README.md.
Jika Anda memiliki masalah atau pertanyaan tentang perangkat lunak, silakan buat masalah di GitHub Issues, sehingga kami dapat melacak masalahnya secara efisien. Harap hindari untuk mempostingnya di Instructables.
Modul kamera Raspberry Pi (Opsional)
Jika Anda memiliki modul kamera Rasberry Pi, Anda perlu menginstal libraspberrypi-dev. Silakan berkonsultasi README.md di Github.
Langkah 7: Operasi jarak jauh
Memunculkan sistem dasar pada Raspberry Pi
Pertama-tama, Anda perlu membuka sysem. Di terminal Raspberry Pi, luncurkan sistem dasar sebagai:
$ ekspor ROS_IP=IP_ADDRESS_OF_RASPBERRY_PI
$ roslaunch roomblock_bringup roomblock.launch
RPLIDAR mulai berputar, dan sekarang Anda dapat terhubung ke master robot ROS dari PC lokal Anda.
Tele-operasi dari PC lokal
Anda dapat menggunakan joy pad untuk mengoperasikan robot. Jika Anda memiliki joy pad Xbox, Anda dapat menggunakan file peluncuran ini. Jika tidak, Anda mungkin perlu memodifikasi file peluncuran agar sesuai dengan joy pad Anda. Silakan lihat halaman wiki ROS untuk detailnya.
ROS wiki - teleop_twist_joy
$ export ROS_MASTER_URI=https://IP_ADDRESS_OF_RASPBERRY_PI:11311$ roslaunch roomblock_bringup teleop.launch
Sekarang Anda dapat mengontrol Roomba dengan joystick.
Sebagai gantinya, Anda dapat menggunakan keyboard.
$ export ROS_MASTER_URI=https://IP_ADDRESS_OF_RASPBERRY_PI:11311$ rosrun teleop_twist_keyboard teleop_twist_keyboard.py
Silakan berkonsultasi dengan halaman wiki ROS untuk detailnya.
ROS wiki - teleop_twist_keyboard
Langkah 8: Luncurkan Perangkat Lunak Pemetaan
Buka perangkat lunak pemetaan di PC lokal
Munculkan perangkat lunak pemetaan untuk membuat peta di sekitar robot.
$ ekspor ROS_MASTER_URI=https://IP_ADDRESS_OF_RASPBERRY_PI:11311$ ekspor ROS_IP=IP_ADDRESS_OF_LOCAL_PC $ roslaunch roomblock_mapping gmapping.launch
Sekarang Anda dapat melihat Rviz (perangkat lunak visualisasi). Operasikan robot di sekitar ruangan untuk membuat peta ruangan.
Anda dapat berkonsultasi dengan halaman wiki ROS untuk sistem pemetaan.
- ROS wiki - gmapping
- ROS wiki - map_server
Langkah 9: Luncurkan Navigasi Otonom
Munculkan perangkat lunak navigasi otonom
Sekarang Anda dapat memulai sistem navigasi otonom pada PC lokal sebagai:
$ ekspor ROS_MASTER_URI=https://IP_ADDRESS_OF_RASPBERRY_PI:11311$ ekspor ROS_IP=IP_ADDRESS_OF_LOCAL_PC $ roslaunch rolomblock_navigation amcl.launch
Anda dapat menggunakan Rviz untuk menentukan tujuan. Robot harus pergi ke tujuan secara mandiri.
Silakan berkonsultasi dengan halaman wiki ROS untuk sistem otonom.
- ROS wiki - navigasi
- ROS wiki - amcl
Selamat bersenang-senang
Jika Anda memiliki pertanyaan atau masalah umum tentang ROS, silakan berkonsultasi dengan wiki ROS. Kami tidak dapat menjawab pertanyaan umum tentang ROS.
ROS wiki - Dukungan
Jika Anda memiliki masalah atau pertanyaan tentang perangkat lunak Roomblock, silakan buat masalah di GitHub Issues sehingga kami dapat melacak masalahnya secara efisien. Harap hindari untuk mempostingnya di Instructables.