Isi kandungan:
- Langkah 1: Apa yang Berfungsi dan Apa yang Tidak
- Langkah 2: Memasang Freenect Drivers dan Freenect_stack
- Langkah 3: Memasang PET RTAB Berdiri
- Langkah 4: Memasang Rtabmap_ros
- Langkah 5: Tunjukkan Masa
- Langkah 6: Rujukan
Video: RGB-D SLAM Dengan Kinect pada Raspberry Pi 4 [Buster] ROS Melodik: 6 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:08
Tahun lalu saya menulis artikel mengenai membina dan memasang ROS Melodic pada Raspberry Pi baru (pada masa itu) dengan Debian Buster OS. Artikel ini telah mendapat banyak perhatian di sini di Instructables dan di platform lain. Saya sangat gembira kerana berjaya menolong banyak orang untuk berjaya memasang ROS pada Raspberry Pi. Dalam video yang disertakan, saya juga secara ringkas menunjukkan mendapatkan gambar mendalam dari Kinect 360. Kemudian banyak orang telah menghubungi saya di LinkedIn dan bertanya kepada saya bagaimana saya dapat menggunakan Kinect dengan Raspberry Pi. Saya agak terkejut dengan soalan itu, kerana proses menyiapkan Kinect pada masa itu memerlukan saya sekitar 3-4 jam dan nampaknya tidak terlalu rumit. Saya berkongsi fail.bash_history saya dengan semua orang yang bertanya mengenai masalah ini dan pada bulan April akhirnya saya meluangkan masa untuk menulis artikel mengenai cara memasang pemacu Kinect dan melakukan RGB-D SLAM dengan RTAB-MAP ROS. Minggu tanpa tidur setelah mula menulis artikel Saya sekarang faham mengapa begitu banyak orang mengajukan soalan ini kepada saya:)
Saya akan mulakan dengan penjelasan ringkas mengenai pendekatan apa yang berhasil dan yang tidak. Kemudian saya akan menerangkan cara memasang pemacu Kinect untuk digunakan dengan ROS Melodic dan akhirnya bagaimana cara memasang mesin anda untuk RGB-D SLAM dengan RTAB-MAP ROS.
Langkah 1: Apa yang Berfungsi dan Apa yang Tidak
Terdapat beberapa pemacu yang tersedia untuk Kinect di Raspberry Pi - dua daripadanya disokong oleh ROS.
Pemacu OpenNI - pakej openni_camera untuk ROS
pemacu libfreenect - pakej freenect_stack untuk ROS
Sekiranya anda melihat repositori GitHub masing-masing, anda dapat mengetahui bahawa pemacu OpenNI telah dikemas kini beberapa tahun yang lalu dan dalam praktiknya adalah EOL sejak sekian lama. ibfreekinect sebaliknya dikemas kini tepat pada masanya. Sama dengan pakej ROS masing-masing, freenect_stack dilancarkan untuk melodi ROS, sementara dia openni_camera distro terakhir telah menyenaraikan sokongan adalah Fuerte…
Adalah mungkin untuk menyusun dan memasang pakej OpenNI driver dan openni_camera pada Raspberry Pi untuk ROS Melodic, walaupun ia tidak berfungsi untuk saya. Untuk mengikuti panduan ini, langkah 1, 2, 3, pada langkah 2 dan 3 keluarkan bendera "-mfloat-abi = softfp" dari fail Platform / Linux / Build / Common / Platform. ARM (mengikut nasihat mengenai perkara ini Isu Github). Kemudian pakej clone openni_camera ke ruang kerja catkin anda dan susun dengan catkin_make. Ia tidak berfungsi untuk saya, namun ralat membuat penghasil kedalaman gagal. Sebab: Antara muka USB tidak disokong!
Menggunakan libfreenect dan freenect_stack menghasilkan kejayaan pada akhirnya, tetapi ada beberapa masalah yang harus diselesaikan dan penyelesaiannya agak sukar, walaupun bekerja sangat stabil (1 jam + operasi berterusan).
Langkah 2: Memasang Freenect Drivers dan Freenect_stack
Saya akan menganggap bahawa anda menggunakan gambar ROS Melodic Desktop saya dari artikel ini. Sekiranya anda ingin melakukan pemasangan di persekitaran yang berbeza, misalnya gambar ros_comm atau di Ubuntu untuk Raspberry Pi, pastikan anda mempunyai pengetahuan yang cukup mengenai ROS untuk menyelesaikan masalah yang mungkin timbul dari perbezaan tersebut.
Mari mulakan dengan membina pemacu libfreenect dari sumber, kerana versi pra-dibina repositori apt-get terlalu ketinggalan zaman.
sudo apt-get kemas kini
sudo apt-get install libusb-1.0-0-dev
klon git
cd libfreenect
mkdir build && cd build
cmake-L..
membuat
sudo buat pasang
Semoga proses membina tidak lancar dan penuh dengan mesej mesra hijau. Setelah anda memasang pemacu libfreenect, langkah seterusnya yang perlu dilakukan ialah memasang pakej freenect_stack untuk ROS. Terdapat beberapa pakej lain yang bergantung kepada kita, kita harus mengklonnya dan membina dengan catkin_make bersama-sama. Sebelum memulakan, pastikan ruang kerja catkin anda disiapkan dan bersumber dengan betul!
Dari folder src ruang kerja catkin anda:
git klon
git klon
git klon
git klon
git klon
klon git
Whooh, itu banyak pengklonan.
EDIT TERKINI: Seperti yang ditunjukkan oleh salah seorang pembaca saya, repositori vision_opencv perlu diatur ke cabang melodi. Untuk itu cd ke src / vision_opencv dan jalankan
git checkout melodi
Kemudian kembali ke folder ruang kerja catkin anda. Untuk memeriksa apakah kita bergantung pada semua pakej yang ada, jalankan arahan ini:
pemasangan rosdep --dari-jalan src --ignore-src
Sekiranya anda berjaya mengklon semua pakej yang diperlukan, ia akan meminta untuk memuat turun libfreekinect dengan apt-get. Jawab tidak, kerana kami sudah memasangnya dari sumber.
sudo apt-get install libbullet-dev libharfbuzz-dev libgtk2.0-dev libgtk-3-dev
catkin_make -j2
Waktu minum teh;) atau apa sahaja minuman kegemaran anda.
Setelah proses penyusunan selesai, anda boleh mencuba melancarkan tumpukan kinect dan memeriksa apakah ia mengeluarkan gambar kedalaman dan warna dengan betul. Saya menggunakan Raspberry Pi tanpa kepala, jadi saya perlu menjalankan RVIZ di komputer desktop saya.
Pada Raspberry Pi lakukan (Tukar alamat IP ke alamat IP Raspberry Pi anda!):
eksport ROS_MASTER_URI = https://192.168.0.108: 11311
eksport ROS_IP = 192.168.0.108
roslaunch freenect_launch freenect.launch kedalaman_registrasi: = benar
Anda akan melihat output seperti dalam Tangkapan Skrin 1. "Menghentikan RGB peranti dan aliran aliran Kedalaman." menunjukkan bahawa Kinect sudah siap, tetapi belum ada yang melanggan topiknya.
Pada komputer desktop anda dengan ROS Melodic dipasang lakukan:
eksport ROS_MASTER_URI = https://192.168.0.108: 11311
eksport ROS_IP = [desktop-komputer-ip] rviz anda
Sekarang anda seharusnya dapat melihat aliran gambar RGB dan Kedalaman dalam RVIZ seperti dalam Tangkapan Skrin 2 di atas … tetapi tidak pada masa yang sama.
Baiklah, di sinilah bermulanya perkara yang menggodam. Saya menghabiskan 3 hari untuk mencuba pemacu dan pendekatan yang berbeza dan tidak ada yang berjaya - sebaik sahaja saya cuba mengakses dua aliran secara serentak, Kinect akan mula habis seperti yang anda lihat dalam Tangkapan Skrin 3. Saya mencuba segalanya: bekalan kuasa yang lebih baik, komitmen libfreenect yang lebih lama dan freenect_stack, menghentikan usb_autosuspend, menyuntikkan peluntur ke port USB (baiklah, bukan yang terakhir! jangan lakukan itu, itu adalah jenaka dan tidak boleh menjadi nasihat teknikal:)). Kemudian dalam salah satu masalah Github saya melihat akaun seseorang yang mengatakan bahawa Kinect mereka tidak stabil, sehingga mereka "memuat bas USB" dengan menyambungkan dongle WiFi. Saya mencubanya dan berjaya. Di satu pihak, saya gembira kerana ia berjaya. Sebaliknya, seseorang benar-benar harus memperbaikinya. Nah, sementara itu (semacam) memperbaikinya, mari kita beralih ke langkah seterusnya.
Langkah 3: Memasang PET RTAB Berdiri
Mula-mula kita mempunyai banyak pergantungan yang akan dipasang:
Walaupun terdapat pakej armhf prebuilt yang tersedia untuk PCL, kami perlu menyusunnya dari sumber kerana masalah ini. Rujuk repositori PCL GitHub untuk melihat bagaimana menyusunnya 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 klon rtab peta pakej mandiri git repositori ke folder rumah kami dan bina. Saya menggunakan keluaran terbaru (0.18.0).
git klon
cd rtabmap / bina
cmake..
buat -j2
sudo buat pasang
sudo ldconfig rtabmap
Sekarang apabila kita telah menyusun RTAB MAP mandiri, kita dapat beralih ke langkah terakhir - menyusun dan memasang pembungkus ROS untuk RTAB MAP, rtabmap_ros.
Langkah 4: Memasang Rtabmap_ros
Sekiranya anda berjaya sejauh ini, anda mungkin sudah mengetahui latihannya sekarang:) Klon repositori rtabmap_ros ke folder src ruang kerja catkin anda. (Jalankan arahan seterusnya dari folder src ruang kerja catkin anda!)
git klon
Kami juga memerlukan pakej ROS ini, rtabmap_ros bergantung pada:
git klon
git klon
git klon
git klon
klon git
Sebelum memulakan penyusunan, anda boleh memastikan bahawa anda tidak kehilangan sebarang kebergantungan dengan arahan berikut:
pemasangan rosdep --dari-jalan src --ignore-src
Pasang lebih banyak pergantungan dari ap-get (ini tidak akan mengganggu pautan, tetapi akan menimbulkan ralat semasa penyusunan)
sudo apt-get install libsdl-image1.2-dev
Kemudian pindah ke folder ruang kerja catkin anda dan mula menyusun:
cd..
catkin_make -j2
Harap anda tidak meletakkan minuman kompilasi kegemaran anda di tempat yang terlalu jauh. Setelah penyusunan selesai kami siap melakukan pemetaan!
Langkah 5: Tunjukkan Masa
Lakukan tipu muslihat itu dengan menambahkan sesuatu seperti WiFi atau Bluetooth dongle ke port USB - Saya menggunakan 2 port USB 2.0, satu untuk Kinect, satu lagi untuk WiFi dongle.
Pada Raspberry Pi lakukan (Tukar alamat IP ke alamat IP Raspberry Pi anda!): Terminal pertama:
eksport ROS_MASTER_URI = https://192.168.0.108: 11311
eksport ROS_IP = 192.168.0.108
roslaunch freenect_launch freenect.launch kedalaman_registrasi: = data benar_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 --Mp / ImagePostDecimation 2 --Kp / DetectorStrategi 6 --OdomF2M / MaxSizeDimat - ImageSmm: = palsu
Anda akan melihat output seperti dalam Tangkapan Skrin 1. "Menghentikan RGB peranti dan aliran aliran Kedalaman." menunjukkan bahawa Kinect sudah siap, tetapi belum ada yang melanggan topiknya. Di terminal kedua anda semestinya akan melihat mesej mengenai kualiti odom. Sekiranya anda memindahkan Kinect terlalu cepat, kualiti odom akan mencapai 0 dan anda perlu berpindah ke lokasi sebelumnya atau bermula dari pangkalan data bersih.
Pada komputer desktop anda dengan pakej ROS Melodic dan rtab_map dipasang (saya cadangkan anda menggunakan komputer Ubuntu untuk itu, kerana pakej pra-binaan tersedia untuk seni bina amd64) lakukan:
eksport ROS_MASTER_URI = https://192.168.0.108: 11311
eksport ROS_IP = [desktop-komputer-ip anda]
rviz
Tambahkan paparan MapGraph dan MapCloud ke rviz dan pilih topik yang sesuai yang berasal dari rtab_map. Nah, ini dia, rasa kemenangan yang manis! Teruskan dan lakukan pemetaan:)
Langkah 6: Rujukan
Semasa menulis artikel ini terdapat sejumlah sumber yang saya rujuk, kebanyakannya forum dan masalah GitHub. Saya akan tinggalkan 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-contoh-on-ROS-dan-Raspberry-Pi-3-td1250.html
github.com/OpenKinect/libfreenect/issues/524
Tambahkan saya di LinkedIn jika anda mempunyai sebarang pertanyaan dan melanggan saluran YouTube saya untuk mendapat maklumat mengenai projek yang lebih menarik yang melibatkan pembelajaran mesin dan robotik.
Disyorkan:
Mengubah Pad Dance L-tek ke Poll pada 1000hz pada Windows dan Linux: 9 Langkah
Mengubah Pad Dance L-tek ke Poll pada 1000hz di Windows dan Linux: Mengapa mod ini? Sekiranya anda pernah menatal ke grafik pada lagu 125 BPM, anda mungkin tertanya-tanya, ada apa dengan boi spikey ini? Mengapa masa jatuh ke dalam "slot" diskrit? ITG dan DDR mempunyai tetingkap masa yang sangat ketat, dan dengan ini
Melodi ROS pada Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8: 6 Langkah
ROS Melodic pada Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8: Artikel ini akan merangkumi proses pemasangan ROS Melodic Morenia pada Raspberry Pi 4 yang menjalankan Debian Buster terkini dan cara menggunakan RPLIDAR A1M8 dengan pemasangan kami. Sejak Debian Buster dilancarkan secara rasmi beberapa minggu yang lalu (buat masa ini
Bermula dengan ROS Melodic pada Raspberry Pi 4 Model B: 7 Langkah
Bermula dengan ROS Melodic pada Raspberry Pi 4 Model B: Sistem Operasi Robot (ROS) adalah sekumpulan perpustakaan perisian dan alat yang digunakan untuk membina sistem dan aplikasi robot. Versi perkhidmatan jangka panjang ROS sekarang ialah Melodic Morenia. ROS Melodic serasi dengan hanya Ubuntu 18.04 Bionic Beaver
Memasang Raspbian Buster pada Raspberry Pi 3 - Bermula dengan Raspbian Buster Dengan Raspberry Pi 3b / 3b +: 4 Langkah
Memasang Raspbian Buster pada Raspberry Pi 3 | Bermula dengan Raspbian Buster Dengan Raspberry Pi 3b / 3b +: Hai kawan-kawan, baru-baru ini organisasi Raspberry pi melancarkan OS Raspbian baru yang disebut sebagai Raspbian Buster. Ini adalah versi baru Raspbian untuk Raspberry pi's. Jadi hari ini dalam instruksional ini kita akan belajar bagaimana memasang Raspbian Buster OS pada Raspberry pi 3 anda
Memasang Windows pada Pemacu Luaran Dengan Partition Mac pada Mac: 5 Langkah (dengan Gambar)
Memasang Windows pada Pemacu Luaran Dengan Partisi Mac di Mac: Sekiranya anda telah membeli sesuatu seperti MacBook pro asas dan menyimpan sedikit wang tunai, tetapi kemudian segera menghadapi masalah penyimpanan ketika cuba memasang tetingkap menggunakan Bootcamp Kita semua tahu bahawa 128 gb tidak diperlukan ini supaya kita mungkin membeli sesuatu