Satura rādītājs:
- 1. darbība. Kas strādāja un kas ne
- 2. darbība: instalējiet Freenect draiverus un Freenect_stack
- 3. darbība: atsevišķas RTAB kartes instalēšana
- 4. darbība: Rtabmap_ros instalēšana
- 5. darbība: parādiet laiku
- 6. darbība: atsauces
Video: RGB-D SLAM ar Kinect uz Raspberry Pi 4 [Buster] ROS melodisks: 6 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:53
Pagājušajā gadā es uzrakstīju rakstu par ROS Melodic izveidi un instalēšanu jaunajā (tajā laikā) Raspberry Pi ar Debian Buster OS. Raksts ir saņēmis lielu uzmanību gan šeit Instructables, gan citās platformās. Esmu ļoti priecīgs, ka palīdzēju tik daudziem cilvēkiem veiksmīgi instalēt ROS Raspberry Pi. Pievienotajā videoklipā es arī īsumā demonstrēju dziļuma attēla iegūšanu no Kinect 360. Vēlāk daudzi cilvēki ir sazinājušies ar mani vietnē LinkedIn un jautājuši, kā man izdevās izmantot Kinect ar Raspberry Pi. Es biju pārsteigts par šo jautājumu, jo Kinect sagatavošanas process tajā laikā aizņēma apmēram 3-4 stundas un nešķita ārkārtīgi sarežģīts. Es koplietoju savus.bash_history failus ar visiem cilvēkiem, kuri man jautāja par šo problēmu, un aprīlī beidzot atradu laiku, lai uzrakstītu rakstu par to, kā instalēt Kinect draiverus un veikt RGB-D SLAM ar RTAB-MAP ROS. Nedēļas bezmiega naktis pēc raksta rakstīšanas es tagad saprotu, kāpēc tik daudzi cilvēki man uzdeva šo jautājumu:)
Sākšu ar īsu skaidrojumu par to, kādas pieejas strādāja un kuras ne. Tad es paskaidrošu, kā instalēt Kinect draiverus lietošanai kopā ar ROS Melodic, un visbeidzot, kā iestatīt savu mašīnu RGB-D SLAM ar RTAB-MAP ROS.
1. darbība. Kas strādāja un kas ne
Kinect uz Raspberry Pi ir pieejami daži draiveri - no tiem divus atbalsta ROS.
OpenNI draiveri - openni_camera pakotne ROS
libfreenect draiveri - freenect_stack pakotne ROS
Aplūkojot to attiecīgās GitHub krātuves, jūs varat uzzināt, ka OpenNI draiveris pēdējo reizi ir atjaunināts pirms gadiem un praksē jau ilgu laiku ir EOL. Savukārt ibfreekinect tiek savlaicīgi atjaunināts. Tāpat kā to attiecīgajām ROS pakotnēm, freenect_stack tika izlaists ROS melodic, bet pēdējais distro openni_camera ir uzskaitījis atbalstu Fuerte…
Raspberry Pi for ROS Melodic ir iespējams apkopot un instalēt OpenNI draivera un openni_camera paketi, lai gan man tas nedarbojās. Lai to izdarītu, ievērojiet šo rokasgrāmatu, 1., 2., 3. darbība 2. un 3. darbībā noņemiet karogu "-mfloat-abi = softfp" no faila Platform/Linux/Build/Common/Platform. ARM (pēc padoma par šo Github problēma). Pēc tam klonējiet openni_camera paketi savā kaķu darbvietā un apkopojiet ar catkin_make. Tomēr tas man nedarbojās, kļūda radīja dziļuma ģeneratora izveidi. Iemesls: USB interfeiss netiek atbalstīts!
Izmantojot libfreenect un freenect_stack, galu galā tika gūti panākumi, taču bija jāatrisina diezgan daudz problēmu, un risinājums bija nedaudz viltīgs, lai gan tas darbojās ļoti stabili (1 stunda + turpināta darbība).
2. darbība: instalējiet Freenect draiverus un Freenect_stack
Es pieņemu, ka jūs izmantojat manu ROS Melodic Desktop attēlu no šī raksta. Ja vēlaties instalēt citā vidē, piemēram, ros_comm image vai Ubuntu for Raspberry Pi, pārliecinieties, vai jums ir pietiekami daudz zināšanu par ROS, lai atrisinātu problēmas, kas varētu rasties šīs atšķirības dēļ.
Sāksim, veidojot libfreenect draiverus no avota, jo apt-get repozitorija iepriekš izveidotā versija ir pārāk novecojusi.
sudo apt-get update
sudo apt-get install libusb-1.0-0-dev
git klons
cd libfreenect
mkdir build && cd build
cmake -L..
veidot
sudo veikt instalēšanu
Cerams, ka veidošanas process būs bez notikumiem un pilns ar videi draudzīgiem ziņojumiem. Pēc libfreenect draivera instalēšanas nākamais, kas jādara, ir instalēt freenect_stack pakotni ROS. Ir daudz citu pakotņu, no kurām tas ir atkarīgs, mums tās būs jāklonē un jāveido kopā ar catkin_make. Pirms sākat, pārliecinieties, ka jūsu kaķa darba vieta ir pareizi iestatīta un iegūta!
No jūsu catkin darbvietas src mapes:
git klons
git klons
git klons
git klons
git klons
git klons
Oho, tas bija daudz klonēšanas.
Vēlākā rediģēšana: Kā to norādīja viens no maniem lasītājiem, vision_opencv krātuvei jābūt iestatītai uz melodisku zaru. Par to cd uz src/vision_opencv un izpildīt
git izrakstīšanās melodiska
Pēc tam atgriezieties savā catkin darbvietas mapē. Lai pārbaudītu, vai mēs esam atkarīgi no visām pakotnēm, izpildiet šo komandu:
rosdep instalēt-no-paths src --ignore-src
Ja esat veiksmīgi klonējis visas nepieciešamās paketes, tas pieprasīs lejupielādēt libfreekinect ar apt-get. Atbildiet nē, jo mēs to jau esam instalējuši no avota.
sudo apt-get install libbullet-dev libharfbuzz-dev libgtk2.0-dev libgtk-3-dev
catkin_make -j2
Tējas laiks;) vai kāds ir tavs mīļākais dzēriens.
Kad apkopošanas process ir pabeigts, varat mēģināt palaist kinect steku un pārbaudīt, vai tas pareizi izvada dziļuma un krāsu attēlus. Es izmantoju Raspberry Pi bez galvas, tāpēc man ir jāpalaiž RVIZ savā galddatorā.
Veicot Raspberry Pi do (nomainiet IP adresi uz Raspberry Pi IP adresi!):
eksportēt ROS_MASTER_URI = https://192.168.0.108: 11311
eksportēt ROS_IP = 192.168.0.108
roslaunch freenect_launch freenect.launch deep_registration: = taisnība
Jūs redzēsit izvadi, kā parādīts 1. ekrānuzņēmumā. "Ierīces apturēšana RGB un dziļuma plūsma." norāda, ka Kinect ir gatavs, taču nekas vēl nav abonēts tā tēmās.
Galddatorā, kurā ir instalēta ROS Melodic, rīkojieties šādi:
eksportēt ROS_MASTER_URI = https://192.168.0.108: 11311
eksportēt ROS_IP = [tavs galddators-ip] rviz
Tagad jums vajadzētu būt iespējai redzēt RGB un dziļuma attēlu straumes RVIZ tāpat kā 2. ekrānuzņēmumā iepriekš … bet ne vienlaikus.
Labi, šeit sākas nejaukas lietas. Es pavadīju 3 dienas, izmēģinot dažādus draiverus un pieejas, un nekas nedarbojās - tiklīdz es mēģinātu piekļūt divām straumēm vienlaicīgi, Kinect sāksies laiks, kā redzams 3. ekrānuzņēmumā. Es izmēģināju visu: labāku barošanas avotu, vecākas libfreenect saistības un freenect_stack, apturot usb_autosuspend, injicējot balinātāju USB portos (labi, ne pēdējais! nedariet to, tas ir joks un tas nedrīkst būt tehnisks padoms:)). Tad vienā no Github numuriem es redzēju kādas personas kontu, kurš teica, ka viņu Kinect ir nestabils, līdz viņi "ielādēja USB kopni", pievienojot WiFi dongle. Es to izmēģināju, un tas strādāja. No vienas puses, es priecājos, ka tas izdevās. No otras puses, kādam tas tiešām ir jālabo. Pa to laiku (kaut kā) to labojot, pāriesim pie nākamā soļa.
3. darbība: atsevišķas RTAB kartes instalēšana
Vispirms mums ir jāinstalē virkne atkarību:
Neskatoties uz to, ka PCL ir pieejama iepriekš izveidota armhf pakotne, šīs problēmas dēļ mums tā būs jāapkopo no avota. Konsultējieties ar PCL GitHub repozitoriju, lai uzzinātu, kā to apkopot no avota.
sudo apt-get install libvtk6-dev libvtk6-qt-dev libvtk6-java libvtk6-jni
sudo apt-get install libopencv-dev cmake libopenni2-dev libsqlite3-dev
Tagad klonēsim rtab kartes savrupās paketes git repozitoriju mūsu mājas mapē un izveidosim to. Es izmantoju jaunāko versiju (0.18.0).
git klons
cd rtabmap/build
cmake..
padarīt -j2
sudo veikt instalēšanu
sudo ldconfig rtabmap
Tagad, kad esam apkopojuši atsevišķu RTAB MAP, mēs varam pāriet uz pēdējo soli - ROS iesaiņojuma apkopošanu un instalēšanu RTAB MAP, rtabmap_ros.
4. darbība: Rtabmap_ros instalēšana
Ja esat tik tālu, jūs, iespējams, jau zināt šo urbjmašīnu:) Klonējiet rtabmap_ros repozitoriju savā catkin darbvietas src mapē. (Izpildiet nākamo komandu no catkin workspace src mapes!)
git klons
Mums būs vajadzīgas arī šīs ROS paketes, kuras rtabmap_ros ir atkarīgas no:
git klons
git klons
git klons
git klons
git klons
Pirms sākat apkopošanu, varat pārliecināties, ka nepalaidāt garām nevienu atkarību, izmantojot šādu komandu:
rosdep instalēt-no-paths src --ignore-src
Instalējiet vairāk atkarību no ap-get (tie nepārtrauks saistīšanu, bet apkopošanas laikā radīs kļūdu)
sudo apt-get install libsdl-image1.2-dev
Pēc tam pārejiet uz savu catkin darbvietas mapi un sāciet apkopot:
cd..
catkin_make -j2
Ceru, ka savu iecienīto kompilācijas dzērienu nekur neesat ievietojis pārāk tālu. Pēc apkopošanas esam gatavi veikt kartēšanu!
5. darbība: parādiet laiku
Veiciet šo viltīgo triku, pievienojot USB portam kaut ko līdzīgu WiFi vai Bluetooth dongle - es izmantoju 2 USB 2.0 portus, vienu Kinect, otru WiFi dongle.
Raspberry Pi do (nomainiet IP adresi uz Raspberry Pi IP adresi!): 1. terminālis:
eksportēt ROS_MASTER_URI = https://192.168.0.108: 11311
eksportēt ROS_IP = 192.168.0.108
roslaunch freenect_launch freenect.launch deep_registration: = true data_skip: = 2
2. terminālis:
roslaunch rtabmap_ros rgbd_mapping.: = nepatiess
Jūs redzēsit izvadi, kā parādīts 1. ekrānuzņēmumā. "Ierīces apturēšana RGB un dziļuma plūsma." norāda, ka Kinect ir gatavs, taču nekas vēl nav abonēts tā tēmās. Otrajā terminālī jums vajadzētu redzēt ziņojumus par odom kvalitāti. Ja pārvietosit Kinect pārāk ātri, odoma kvalitāte būs 0, un jums būs jāpārvietojas uz iepriekšējo atrašanās vietu vai jāsāk no tīras datu bāzes.
Galddatorā, kurā ir instalēta ROS Melodic un rtab_map pakotne (šim nolūkam iesaku izmantot Ubuntu datoru, jo amd64 arhitektūrai ir pieejamas iepriekš izveidotas paketes):
eksportēt ROS_MASTER_URI = https://192.168.0.108: 11311
eksportēt ROS_IP = [tavs galddators-ip]
rviz
Pievienojiet MapGraph un MapCloud displejus rviz un izvēlieties atbilstošās tēmas, kas nāk no rtab_map. Tā tas ir, salda uzvaras garša! Iet uz priekšu un veiciet kartēšanu:)
6. darbība: atsauces
Rakstot šo rakstu, es konsultēju vairākus resursus, galvenokārt forumus un GitHub problēmas. Es viņus atstāšu šeit.
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
Pievienojiet mani LinkedIn, ja jums ir kādi jautājumi, un abonējiet manu YouTube kanālu, lai saņemtu paziņojumu par interesantākiem projektiem, kas saistīti ar mašīnmācīšanos un robotiku.
Ieteicams:
ROS Melodic uz Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8: 6 soļi
ROS Melodic ierīcē Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8: Šis raksts aptvers ROS Melodic Morenia instalēšanas procesu Raspberry Pi 4, kurā darbojas jaunākā Debian Buster, un kā lietot RPLIDAR A1M8 kopā ar mūsu instalāciju. Kopš Debian Buster oficiāli tika izlaists tikai pirms dažām nedēļām (šobrīd
Instalējiet ROS Kinetic, TurtleBot3, Raspicam vietnē Raspberry Pi 4b: 5 soļi
Instalējiet ROS Kinetic, TurtleBot3, Raspicam vietnē Raspberry Pi 4b: TurtleBot3 Burger tiek piegādāts kopā ar Raspberry Pi 3 B/B+ un neatbalsta jauno (uz 9/2019) Raspberry Pi 4b. Izpildiet tālāk norādītās darbības, lai TurtleBot3 darbotos ar Raspberry Pi 4b, tostarp veidojot ROS Kinetic no avotiem Raspberry Pi 4b Raspbian
Darba sākšana ar ROS Melodic Raspberry Pi 4 modelī B: 7 soļi
Darba sākšana ar ROS Melodic Raspberry Pi 4 B modelī: Robotu operētājsistēma (ROS) ir programmatūras bibliotēku un rīku kopums, ko izmanto, lai izveidotu robotu sistēmas un lietojumprogrammas. Pašreizējā ROS ilgtermiņa pakalpojumu versija ir Melodic Morenia. ROS Melodic ir saderīgs tikai ar Ubuntu 18.04 Bionic Beaver
Raspbian Buster instalēšana Raspberry Pi 3 - Darba sākšana ar Raspbian Buster ar Raspberry Pi 3b / 3b+: 4 soļi
Raspbian Buster instalēšana Raspberry Pi 3 | Darba sākšana ar Raspbian Buster Izmantojot Raspberry Pi 3b / 3b+: Sveiki, puiši, nesen Raspberry pi organizācija uzsāka jaunu Raspbian OS, ko sauc par Raspbian Buster. Tā ir jauna Raspbian versija Raspberry pi's. Tāpēc šodien šajā pamācībā mēs iemācīsimies instalēt Raspbian Buster OS savā Raspberry pi 3
Roomblock: platforma ROS navigācijas apguvei ar Roomba, Raspberry Pi un RPLIDAR: 9 soļi (ar attēliem)
Roomblock: platforma ROS navigācijas apguvei ar Roomba, Raspberry Pi un RPLIDAR: Kas tas ir? &Quot; Roomblock " ir robotu platforma, kas sastāv no Roomba, Raspberry Pi 2, lāzera sensora (RPLIDAR) un mobilā akumulatora. Montāžas rāmi var izgatavot ar 3D printeriem. ROS navigācijas sistēma ļauj izveidot telpu karti un izmantot i