Daftar Isi:
- Langkah 1: Apa yang Berhasil dan Apa yang Tidak
- Langkah 2: Menginstal Driver Freenect dan Freenect_stack
- Langkah 3: Menginstal RTAB MAP Mandiri
- Langkah 4: Menginstal Rtabmap_ros
- Langkah 5: Tampilkan Waktu
- Langkah 6: Referensi
Video: RGB-D SLAM Dengan Kinect di Raspberry Pi 4 [Buster] ROS Melodic: 6 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:54
Tahun lalu saya menulis artikel tentang membangun dan menginstal ROS Melodic pada Raspberry Pi baru (saat itu) dengan OS Debian Buster. Artikel ini telah menerima banyak perhatian baik di sini di Instructables dan di platform lain. Saya sangat senang telah membantu begitu banyak orang untuk berhasil menginstal ROS di Raspberry Pi. Dalam video terlampir saya juga secara singkat mendemonstrasikan mendapatkan gambar kedalaman dari Kinect 360. Kemudian banyak orang telah menghubungi saya di LinkedIn dan bertanya kepada saya bagaimana saya bisa menggunakan Kinect dengan Raspberry Pi. Saya agak terkejut dengan pertanyaan itu, karena proses menyiapkan Kinect pada waktu itu memakan waktu sekitar 3-4 jam dan sepertinya tidak terlalu rumit. Saya membagikan file.bash_history saya dengan semua orang yang bertanya kepada saya tentang masalah ini dan pada bulan April akhirnya menemukan waktu untuk menulis artikel tentang cara menginstal driver Kinect dan menjalankan RGB-D SLAM dengan RTAB-MAP ROS. Minggu malam tanpa tidur setelah mulai menulis artikel saya sekarang mengerti mengapa begitu banyak orang menanyakan pertanyaan ini kepada saya:)
Saya akan mulai dengan penjelasan singkat tentang pendekatan apa yang berhasil dan mana yang tidak. Kemudian saya akan menjelaskan cara menginstal driver Kinect untuk digunakan dengan ROS Melodic dan terakhir cara mengatur mesin Anda untuk RGB-D SLAM dengan RTAB-MAP ROS.
Langkah 1: Apa yang Berhasil dan Apa yang Tidak
Ada beberapa driver yang tersedia untuk Kinect di Raspberry Pi - dua di antaranya didukung oleh ROS.
Driver OpenNI - paket openni_camera untuk ROS
driver libfreenect - paket freenect_stack untuk ROS
Jika Anda melihat repositori GitHub masing-masing, Anda dapat menemukan bahwa driver OpenNI terakhir diperbarui bertahun-tahun yang lalu dan dalam praktiknya adalah EOL untuk waktu yang lama. ibfreekinect di sisi lain sedang diperbarui tepat waktu. Sama untuk paket ROS masing-masing, freenect_stack dirilis untuk ROS melodic, sementara distro terbaru openni_camera telah mencantumkan dukungan untuk Fuerte…
Dimungkinkan untuk mengkompilasi dan menginstal driver OpenNI dan paket openni_camera pada Raspberry Pi untuk ROS Melodic, meskipun itu tidak berhasil untuk saya. Untuk melakukannya ikuti panduan ini, langkah 1, 2, 3, pada langkah 2 dan 3 hapus flag "-mfloat-abi=softfp" dari file Platform/Linux/Build/Common/Platform. ARM (sesuai saran tentang ini masalah Github). Kemudian kloning paket openni_camera ke ruang kerja catkin Anda dan kompilasi dengan catkin_make. Itu tidak berhasil untuk saya, kesalahannya adalah membuat generator kedalaman gagal. Alasan: Antarmuka USB tidak didukung!
Menggunakan libfreenect dan freenect_stack menghasilkan kesuksesan pada akhirnya, tetapi ada beberapa masalah yang harus dipecahkan dan solusinya agak kacau, meskipun bekerja sangat stabil (1 jam + operasi lanjutan).
Langkah 2: Menginstal Driver Freenect dan Freenect_stack
Saya akan berasumsi bahwa Anda menggunakan gambar ROS Melodic Desktop saya dari artikel ini. Jika Anda ingin melakukan instalasi di lingkungan yang berbeda, misalnya gambar ros_comm atau di Ubuntu untuk Raspberry Pi, pastikan Anda memiliki pengetahuan yang cukup tentang ROS untuk menyelesaikan masalah yang mungkin timbul dari perbedaan itu.
Mari kita mulai dengan membangun driver libfreenect dari sumber, karena versi repositori apt-get sudah terlalu usang.
sudo apt-get update
sudo apt-get install libusb-1.0-0-dev
git clone
cd libfreenect
pembuatan mkdir && pembuatan cd
cmake -L..
membuat
sudo make install
Semoga proses pembangunannya lancar dan penuh dengan pesan ramah lingkungan. Setelah Anda menginstal driver libfreenect, hal selanjutnya yang harus dilakukan adalah menginstal paket freenect_stack untuk ROS. Ada beberapa paket lain yang bergantung padanya, kita harus mengkloningnya dan membangunnya dengan catkin_make bersama-sama. Sebelum Anda mulai, pastikan ruang kerja catkin Anda diatur dan bersumber dengan benar!
Dari folder src ruang kerja catkin Anda:
git clone
git clone
git clone
git clone
git clone
git clone
Whooh, itu banyak kloning.
EDIT LATER: Seperti yang ditunjukkan oleh salah satu pembaca saya, repositori vision_opencv perlu diatur ke cabang melodi. Untuk cd itu ke src/vision_opencv dan jalankan
git checkout melodi
Kemudian kembali ke folder ruang kerja catkin Anda. Untuk memeriksa apakah kita dependensi untuk semua paket yang ada, jalankan perintah ini:
rosdep install --from-paths src --ignore-src
Jika Anda berhasil mengkloning semua paket yang diperlukan, ia akan meminta untuk mengunduh libfreekinect dengan apt-get. Jawab tidak, karena kami sudah menginstalnya dari sumber.
sudo apt-get install libbullet-dev libharfbuzz-dev libgtk2.0-dev libgtk-3-dev
catkin_make -j2
Waktu minum teh;) atau apa pun minuman favorit Anda.
Setelah proses kompilasi selesai, Anda dapat mencoba meluncurkan kinect stack dan memeriksa apakah itu menghasilkan gambar kedalaman dan warna dengan benar. Saya menggunakan Raspberry Pi tanpa kepala, jadi saya harus menjalankan RVIZ di komputer desktop saya.
Pada Raspberry Pi lakukan (Ubah alamat IP ke alamat IP Raspberry Pi Anda!):
ekspor ROS_MASTER_URI=https://192.168.0.108:11311
ekspor ROS_IP=192.168.0.108
roslaunch freenect_launch freenect.launch depth_registration:=true
Anda akan melihat output seperti pada Screenshot 1. "Menghentikan perangkat RGB dan aliran Depth flush." menunjukkan bahwa Kinect sudah siap, tetapi belum ada yang berlangganan topiknya.
Di komputer desktop Anda dengan ROS Melodic terinstal lakukan:
ekspor ROS_MASTER_URI=https://192.168.0.108:11311
ekspor ROS_IP=[ip-desktop-komputer-anda] rviz
Sekarang Anda seharusnya dapat melihat aliran gambar RGB dan Depth di RVIZ seperti pada Screenshot 2 di atas… tetapi tidak pada saat yang bersamaan.
Oke, di sinilah hal-hal hacky dimulai. Saya menghabiskan 3 hari mencoba driver dan pendekatan yang berbeda dan tidak ada yang berhasil - segera setelah saya mencoba mengakses dua aliran secara bersamaan, Kinect akan mulai kehabisan waktu seperti yang Anda lihat di Screenshot 3. Saya mencoba segalanya: catu daya yang lebih baik, komitmen libfreenect yang lebih lama dan freenect_stack, menghentikan usb_autosuspend, menyuntikkan pemutih ke port USB (oke, bukan yang terakhir! jangan lakukan itu, itu lelucon dan tidak boleh merupakan saran teknis:)). Kemudian di salah satu masalah Github saya melihat akun seseorang yang mengatakan Kinect mereka tidak stabil, sampai mereka "memuat bus USB" dengan menghubungkan dongle WiFi. Saya mencoba itu dan itu berhasil. Di satu sisi, saya senang itu berhasil. Di sisi lain, seseorang benar-benar harus memperbaikinya. Nah, sementara itu (semacam) memperbaikinya, mari kita lanjutkan ke langkah berikutnya.
Langkah 3: Menginstal RTAB MAP Mandiri
Pertama kita memiliki banyak dependensi untuk diinstal:
Meskipun ada paket armhf prebuilt yang tersedia untuk PCL, kami harus mengompilasinya dari sumber karena masalah ini. Lihat repositori PCL GitHub untuk melihat cara mengompilasinya dari sumber.
sudo apt-get install libvtk6-dev libvtk6-qt-dev libvtk6-java libvtk6-jni
sudo apt-get install libopencv-dev cmake libopenni2-dev libsqlite3-dev
Sekarang mari kita clone rtab map standalone package git repository ke folder home kita dan membangunnya. Saya menggunakan rilis terbaru (0,18.0).
git clone
cd rtabmap/build
buatlah..
buat -j2
sudo make install
sudo ldconfig rtabmap
Sekarang ketika kita telah mengkompilasi RTAB MAP mandiri, kita dapat melanjutkan ke langkah terakhir - mengkompilasi dan menginstal pembungkus ROS untuk RTAB MAP, rtabmap_ros.
Langkah 4: Menginstal Rtabmap_ros
Jika Anda sudah sejauh itu, Anda mungkin sudah mengetahui latihannya sekarang:) Klon repositori rtabmap_ros ke folder src ruang kerja catkin Anda. (Jalankan perintah selanjutnya dari folder src ruang kerja catkin Anda!)
git clone
Kami juga membutuhkan paket ROS ini, yang rtabmap_ros bergantung pada:
git clone
git clone
git clone
git clone
git clone
Sebelum Anda memulai kompilasi, Anda dapat memastikan bahwa Anda tidak kehilangan dependensi apa pun dengan perintah berikut:
rosdep install --from-paths src --ignore-src
Instal lebih banyak dependensi dari ap-get (ini tidak akan mengganggu penautan, tetapi akan menimbulkan kesalahan selama kompilasi)
sudo apt-get install libsdl-image1.2-dev
Kemudian pindah ke folder ruang kerja catkin Anda dan mulai kompilasi:
cd..
catkin_make -j2
Semoga Anda tidak meletakkan minuman kompilasi favorit Anda terlalu jauh. Setelah kompilasi selesai, kami siap melakukan pemetaan!
Langkah 5: Tampilkan Waktu
Lakukan trik hacky dengan menambahkan sesuatu seperti WiFi atau dongle Bluetooth ke port USB - Saya menggunakan 2 port USB 2.0, satu untuk Kinect, yang lain untuk dongle WiFi.
Pada Raspberry Pi lakukan (Ubah alamat IP ke alamat IP Raspberry Pi Anda!): Terminal pertama:
ekspor ROS_MASTER_URI=https://192.168.0.108:11311
ekspor ROS_IP=192.168.0.108
roslaunch freenect_launch freenect.launch depth_registration:=true data_skip:=2
terminal ke-2:
roslaunch rtabmap_ros rgbd_mapping.launch rtabmap_args:="--delete_db_on_start --Vis/MaxFeatures 500 --Mem/ImagePreDecimation 2 --Mem/ImagePostDecimation 2 --Kp/DetectorStrategy 6 --OdomF2M/MaxSizeDecimation 1000 --Odom"/:=salah
Anda akan melihat output seperti pada Screenshot 1. "Menghentikan perangkat RGB dan aliran Depth flush." menunjukkan bahwa Kinect sudah siap, tetapi belum ada yang berlangganan topiknya. Di terminal kedua Anda akan melihat pesan tentang kualitas odom. Jika Anda memindahkan Kinect terlalu cepat, kualitas odom akan menjadi 0 dan Anda harus pindah ke lokasi sebelumnya atau mulai dari database yang bersih.
Di komputer desktop Anda dengan ROS Melodic dan paket rtab_map diinstal (saya sarankan Anda menggunakan komputer Ubuntu untuk itu, karena paket pra-bangun tersedia untuk arsitektur AMD64) lakukan:
ekspor ROS_MASTER_URI=https://192.168.0.108:11311
ekspor ROS_IP=[ip-desktop-komputer-anda]
rviz
Tambahkan tampilan MapGraph dan MapCloud ke rviz dan pilih topik terkait yang berasal dari rtab_map. Nah, ini dia, rasa manis kemenangan! Silakan dan lakukan pemetaan:)
Langkah 6: Referensi
Saat menulis artikel ini, ada sejumlah sumber yang saya konsultasikan, sebagian besar forum dan masalah GitHub. Aku akan meninggalkan mereka di sini.
github.com/OpenKinect/libfreenect/issues/338
www.reddit.com/r/robotics/comments/8d37gy/ros_with_raspberry_pi_and_xbox_360_kinect_question/
github.com/ros-drivers/freenect_stack/issues/48
official-rtab-map-forum.67519.x6.nabble.com/RGB-D-SLAM-example-on-ROS-and-Raspberry-Pi-3-td1250.html
github.com/OpenKinect/libfreenect/issues/524
Tambahkan saya di LinkedIn jika Anda memiliki pertanyaan dan berlangganan saluran YouTube saya untuk mendapatkan pemberitahuan tentang lebih banyak proyek menarik yang melibatkan pembelajaran mesin dan robotika.
Direkomendasikan:
Kepala Manekin Pelokalan Suara Dengan Kinect: 9 Langkah (dengan Gambar)
Kepala Manekin Pelokalan Suara Dengan Kinect: Temui Margaret, boneka pengujian untuk sistem pemantauan kelelahan pengemudi. Dia baru saja pensiun dari tugasnya dan menemukan jalannya ke ruang kantor kami, dan sejak itu menarik perhatian orang-orang yang menganggapnya 'menyeramkan'. Demi keadilan, saya telah
ROS Melodic di Raspberry Pi 4[Debian Buster] + RPLIDAR A1M8: 6 Langkah
ROS Melodic di Raspberry Pi 4[Debian Buster] + RPLIDAR A1M8: Artikel ini akan membahas proses instalasi ROS Melodic Morenia di Raspberry Pi 4 yang menjalankan Debian Buster terbaru dan cara menggunakan RPLIDAR A1M8 dengan instalasi kami. Sejak Debian Buster dirilis secara resmi hanya beberapa minggu yang lalu (saat ini
Memulai Dengan ROS Melodic di Raspberry Pi 4 Model B: 7 Langkah
Memulai Dengan ROS Melodic pada Raspberry Pi 4 Model B: Sistem Operasi Robot (ROS) adalah seperangkat perpustakaan perangkat lunak dan alat yang digunakan untuk membangun sistem dan aplikasi robot. Versi layanan jangka panjang ROS saat ini adalah Melodic Morenia. ROS Melodic hanya kompatibel dengan Ubuntu 18.04 Bionic Beaver
Menginstal Raspbian Buster di Raspberry Pi 3 - Memulai Dengan Raspbian Buster Dengan Raspberry Pi 3b / 3b+: 4 Langkah
Menginstal Raspbian Buster di Raspberry Pi 3 | Memulai Dengan Raspbian Buster Dengan Raspberry Pi 3b / 3b+: Hi guys, baru-baru ini organisasi Raspberry pi meluncurkan OS Raspbian baru yang disebut Raspbian Buster. Ini adalah versi baru dari Raspbian untuk Raspberry pi. Jadi hari ini dalam instruksi ini kita akan belajar cara menginstal Raspbian Buster OS di Raspberry pi 3 Anda
Roomblock: Platform untuk Mempelajari Navigasi ROS Dengan Roomba, Raspberry Pi, dan RPLIDAR: 9 Langkah (dengan Gambar)
Roomblock: Platform untuk Mempelajari Navigasi ROS Dengan Roomba, Raspberry Pi, dan RPLIDAR: 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 kamar dan menggunakan