Sadržaj:
- Korak 1: Šta je radilo, a šta nije
- Korak 2: Instaliranje Freenect upravljačkih programa i Freenect_stack
- Korak 3: Instaliranje samostalne RTAB MAP -e
- Korak 4: Instaliranje Rtabmap_ros
- Korak 5: Prikažite vrijeme
- Korak 6: Reference
Video: RGB-D SLAM s Kinect-om na Raspberry Pi 4 [Buster] ROS Melodija: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:05
Prošle godine sam napisao članak o izgradnji i instaliranju ROS Melodic -a na novom (u to vreme) Raspberry Pi -u sa Debian Buster OS -om. Članak je dobio veliku pažnju i ovdje na Instructables -u i na drugim platformama. Veoma mi je drago što sam pomogao toliko ljudi da uspješno instaliraju ROS na Raspberry Pi. U propratnom videu također sam ukratko pokazao dobijanje dubinske slike sa Kinect 360. Kasnije su me brojni ljudi kontaktirali na LinkedInu i pitali me kako sam uspio koristiti Kinect s Raspberry Pi. Bio sam pomalo iznenađen pitanjem, jer mi je proces pripreme Kinecta u to vrijeme trajao oko 3-4 sata i nije mi se činio izuzetno kompliciranim. Podijelio sam svoje.bash_history datoteke sa svim ljudima koji su me pitali o tom pitanju, a u travnju sam konačno našao vrijeme da napišem članak o tome kako instalirati upravljačke programe Kinect i izvesti RGB-D SLAM sa RTAB-MAP ROS-om. Nedelju neprospavanih noći nakon početka pisanja članka sada razumem zašto mi je toliko ljudi postavilo ovo pitanje:)
Započet ću kratkim objašnjenjem koji su pristupi djelovali, a koji nisu. Zatim ću objasniti kako instalirati Kinect upravljačke programe za upotrebu sa ROS Melodic-om i na kraju kako postaviti svoju mašinu za RGB-D SLAM sa RTAB-MAP ROS-om.
Korak 1: Šta je radilo, a šta nije
Na raspolaganju je nekoliko upravljačkih programa za Kinect na Raspberry Pi - od njih dva podržava ROS.
OpenNI upravljački programi - openni_camera paket za ROS
drajveri libfreenect - paket freenect_stack za ROS
Ako pogledate njihova odgovarajuća spremišta GitHub, možete otkriti da je OpenNI upravljački program posljednji put ažuriran godinama i da je u praksi EOL već duže vrijeme. ibfreekinect se s druge strane blagovremeno ažurira. Isto kao i za njihove odgovarajuće ROS pakete, freenect_stack je objavljen za ROS melodiku, dok je najnoviji distro openni_camera naveo podršku za Fuerte …
Moguće je kompajlirati i instalirati OpenNI upravljački program i paket openni_camera na Raspberry Pi za ROS Melodic, iako mi to nije uspjelo. Da biste to učinili, slijedite ove upute, koraci 1, 2, 3, na koracima 2 i 3 uklonite zastavicu "-mfloat-abi = softfp" iz datoteke Platform/Linux/Build/Common/Platform. ARM (prema savjetima o ovome Pitanje Github -a). Zatim klonirajte openni_camera paket u svoj catkin radni prostor i kompajlirajte sa catkin_make. Meni to ipak nije uspjelo, greška je u stvaranju generatora dubine nije uspio. Razlog: USB sučelje nije podržano!
Korištenje libfreenect i freenect_stack na kraju je donijelo uspjeh, ali bilo je dosta problema za rješavanje i rješenje je bilo pomalo hack, iako je radilo vrlo stabilno (1 sat + kontinuirani rad).
Korak 2: Instaliranje Freenect upravljačkih programa i Freenect_stack
Pretpostavit ću da koristite moju ROS Melodic Desktop sliku iz ovog članka. Ako želite instalirati u drugom okruženju, na primjer ros_comm image ili u Ubuntu za Raspberry Pi, pobrinite se da imate dovoljno znanja o ROS -u za rješavanje problema koji mogu nastati iz te razlike.
Počnimo s izgradnjom libfreenect upravljačkih programa iz izvora, jer je unaprijed izgrađena verzija apt-get spremišta previše zastarjela.
sudo apt-get update
sudo apt-get install libusb-1.0-0-dev
git clone
cd libfreenect
mkdir build && cd build
cmake -L..
napraviti
sudo make install
Nadajmo se da će proces izgradnje biti besprijekoran i pun zelenih prijateljskih poruka. Nakon što ste instalirali libfreenect upravljački program, sljedeće što trebate učiniti je instalirati freenect_stack paket za ROS. Postoji dosta drugih paketa o kojima ovisi, morat ćemo ih klonirati i izgraditi sa catkin_make sve zajedno. Prije nego počnete, provjerite je li vaš radni prostor za mačke pravilno postavljen i nabavljen!
Iz mape src catkin workspace:
git clone
git clone
git clone
git clone
git clone
git clone
Vau, to je bilo mnogo kloniranja.
KASNIJE UREĐIVANJE: Kao što je istaknuo jedan od mojih čitatelja, spremište vision_opencv treba postaviti na melodijsku granu. Za to cd na src/vision_opencv i izvršite
git checkout melodic
Zatim se vratite u mapu radnog prostora Catkin. Da biste provjerili imamo li zavisnosti za sve postavljene pakete, izvedite ovu naredbu:
rosdep install --from-paths src --ignore-src
Ako ste uspješno klonirali sve potrebne pakete, zatražit će preuzimanje libfreekinect s apt-get. Odgovorite ne jer smo ga već instalirali od izvora.
sudo apt-get install libbullet-dev libharfbuzz-dev libgtk2.0-dev libgtk-3-dev
catkin_make -j2
Vreme za čaj;) ili bilo koje drugo vaše omiljeno piće.
Nakon što je proces kompilacije završen, možete pokušati pokrenuti kinect stek i provjeriti ispisuje li dubinu i slike u boji ispravno. Koristim Raspberry Pi bez glave, pa moram pokrenuti RVIZ na svom stolnom računaru.
Na Raspberry Pi do (Promijenite IP adresu u IP adresu vašeg Raspberry Pi!):
izvoz ROS_MASTER_URI = https://192.168.0.108: 11311
izvoz ROS_IP = 192.168.0.108
roslaunch freenect_launch freenect.launch depth_registration: = istina
Vidjet ćete izlaz kao na slici 1. "Zaustavljanje RGB uređaja i ispiranje dubinskog toka." označava da je Kinect spreman, ali još ništa nije pretplaćeno na njegove teme.
Na svom računaru sa instaliranim ROS Melodic -om uradite sledeće:
izvoz ROS_MASTER_URI = https://192.168.0.108: 11311
izvoz ROS_IP = [vaš-desktop-računar-ip] rviz
Sada biste trebali moći vidjeti RGB i Depth stream slike u RVIZ -u kao na Screenshot 2 gore … ali ne u isto vrijeme.
U redu, ovdje počinju hacky stvari. Proveo sam 3 dana isprobavajući različite upravljačke programe i pristupe i ništa nije uspjelo - čim bih pokušao pristupiti dva streama istovremeno, Kinect bi počeo isteći, kao što možete vidjeti na Screenshot 3. Pokušao sam sve: bolje napajanje, starije urezivanja libfreenect -a i freenect_stack, zaustavljanje usb_autosuspend, ubrizgavanje izbjeljivača na USB portove (u redu, ne zadnji! nemojte to raditi, to je šala i ne bi trebao predstavljati tehnički savjet:)). Zatim sam u jednom od izdanja Githuba vidio račun osobe koja je rekla da je njihov Kinect nestabilan, sve dok nisu "učitali USB sabirnicu" povezivanjem WiFi ključa. Probao sam to i upalilo je. S jedne strane, drago mi je da je uspjelo. S druge strane, neko bi to zaista trebao popraviti. Pa, u međuvremenu smo to (nekako) popravili, idemo na sljedeći korak.
Korak 3: Instaliranje samostalne RTAB MAP -e
Prvo moramo instalirati hrpu ovisnosti:
Unatoč tome što je za PCL dostupan unaprijed izgrađen armhf paket, morat ćemo ga kompajlirati iz izvora zbog ovog problema. Konsultujte PCL GitHub spremište da vidite kako ga kompajlirati iz izvora.
sudo apt-get install libvtk6-dev libvtk6-qt-dev libvtk6-java libvtk6-jni
sudo apt-get install libopencv-dev cmake libopenni2-dev libsqlite3-dev
Ajmo sada klonirati rtab mapu samostalnog paketa git spremišta u našu matičnu mapu i izgraditi ga. Koristio sam najnovije izdanje (0.18.0).
git clone
cd rtabmap/build
cmake..
make -j2
sudo make install
sudo ldconfig rtabmap
Sada kada smo sastavili samostalni RTAB MAP, možemo prijeći na posljednji korak - sastavljanje i instaliranje ROS omota za RTAB MAP, rtabmap_ros.
Korak 4: Instaliranje Rtabmap_ros
Ako ste stigli tako daleko, vjerovatno ste dosad već znali vježbu:) Klonirajte spremište rtabmap_ros u svoju mapu catkin workspace src. (Izvršite sljedeću naredbu iz vaše mačke catkin workspace src!)
git clone
Trebat će nam i ovi ROS paketi, a rtabmap_ros ovisi o:
git clone
git clone
git clone
git clone
git clone
Prije nego započnete kompilaciju, možete se uvjeriti da ne propuštate nikakve zavisnosti pomoću sljedeće naredbe:
rosdep install --from-paths src --ignore-src
Instalirajte više ovisnosti iz aplikacije ap-get (one neće prekinuti povezivanje, ali će izazvati grešku tijekom kompilacije)
sudo apt-get install libsdl-image1.2-dev
Zatim prijeđite u mapu radnog prostora Catkin i počnite sastavljati:
cd..
catkin_make -j2
Nadam se da niste nigdje predaleko stavili svoje omiljeno kompilacijsko piće. Nakon što je kompilacija gotova, spremni smo za mapiranje!
Korak 5: Prikažite vrijeme
Učinite taj hakerski trik dodavanjem nečega poput WiFi ili Bluetooth ključa na USB priključak - koristio sam 2 USB 2.0 porta, jedan za Kinect, drugi za WiFi dongle.
Na Raspberry Pi do (Promijenite IP adresu u IP adresu vašeg Raspberry Pi!): 1. terminal:
izvoz ROS_MASTER_URI = https://192.168.0.108: 11311
izvoz ROS_IP = 192.168.0.108
roslaunch freenect_launch freenect.launch depth_registration: = true data_skip: = 2
2. terminal:
roslaunch rtabmap_ros rgbd_mapping.launch rtabmap_args: = -delete_db_on_start --Vis/MaxFeatures 500 --Mem/ImagePreDecimation 2 --Mem/ImagePostDecimation 2 --Kp/DetectorStrategy 6 --OdomF2Mode: = false
Vidjet ćete izlaz kao na slici 1. "Zaustavljanje RGB uređaja i ispiranje dubinskog toka." označava da je Kinect spreman, ali još ništa nije pretplaćeno na njegove teme. Na drugom terminalu trebali biste vidjeti poruke o kvaliteti odoma. Ako premještate Kinect prebrzo, kvaliteta odoma će ići na 0 i morat ćete se premjestiti na prethodnu lokaciju ili početi iz čiste baze podataka.
Na vašem računaru sa instaliranim paketom ROS Melodic i rtab_map (preporučujem da za to koristite Ubuntu računar, jer su unapred izgrađeni paketi dostupni za amd64 arhitekturu):
izvoz ROS_MASTER_URI = https://192.168.0.108: 11311
izvoz ROS_IP = [vaš-desktop-računar-ip]
rviz
Dodajte prikaze MapGraph i MapCloud u rviz i odaberite odgovarajuće teme koje dolaze s rtab_map. Pa, to je to, slatki okus pobjede! Samo naprijed i napravi malo mapiranje:)
Korak 6: Reference
Dok sam pisao ovaj članak, konsultovao sam brojne resurse, uglavnom forume i GitHub pitanja. Ostaviću ih ovde.
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
Dodajte me na LinkedIn ako imate pitanja i pretplatite se na moj YouTube kanal kako biste primali obavijesti o zanimljivijim projektima koji uključuju strojno učenje i robotiku.
Preporučuje se:
Melodija: 8 koraka (sa slikama)
Melodija: Uz mnoge prednosti i tehnološka rješenja koja omogućuju rad od kuće, ostaje teškoća u formuliranju i stvaranju podrške za život među suradnicima. MELODY je digitalno-fizički uređaj koji omogućava stvaranje kolaborativnih
ROS Melodic na Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8: 6 koraka
ROS Melodic na Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8: Ovaj članak će pokriti proces instaliranja ROS Melodic Morenia na Raspberry Pi 4 s najnovijim Debian Busterom i kako koristiti RPLIDAR A1M8 s našom instalacijom. Otkad je Debian Buster službeno objavljen prije samo nekoliko sedmica (od trenutka
Jednostavna melodija Arduino tonova: 3 koraka
Jednostavna melodija Arduino tonova: Jednostavna melodija melodije Arduino način je početka s Arduino projektima jer ćete samo prenijeti kôd iz Arduino softvera izravno bez da morate ništa pisati
Budilica: Posebna melodija zvona, vrlo efikasna: 3 koraka
Budilica: Posebna melodija zvona, Vrlo efikasno: Pozdrav svima! Za mene je ovo prvi put da objavljujem instrukcije, oprostite na niskom nivou engleskog jezika :) Evo buđenja koje će pomoći onima koji se ujutro vrate na spavanje. Princip je prilično jednostavan, umjesto da vas probudi melodija zvona ili
Instaliranje melodija zvona bez plana podataka: 9 koraka
Instaliranje melodija zvona bez podatkovnog plana: Umorio sam se od naknade od 180 USD godišnje za podatkovni plan za svaki svoj mobilni telefon, pa sam ih otkazao. Tada sam saznao da mogu napraviti svoje besplatne .mp3 melodije zvona, postaviti ih na mrežu i preuzeti na telefon. Tada sam saznao o honoraru za