Sadržaj:
- Korak 1: Što je radilo, a što nije
- Korak 2: Instaliranje upravljačkih programa Freenect i Freenect_stack
- Korak 3: Instaliranje samostalne RTAB MAP -e
- Korak 4: Instaliranje Rtabmap_ros
- Korak 5: Pokaži vrijeme
- Korak 6: Reference
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:33
Prošle sam godine napisao članak o izgradnji i instaliranju ROS Melodica na novom (u to vrijeme) Raspberry Pi -u s Debian Buster OS -om. Članak je dobio veliku pozornost i ovdje na Instructables -u i na drugim platformama. Jako mi je drago što sam pomogao toliko ljudi da uspješno instaliraju ROS na Raspberry Pi. U popratnom videu također sam ukratko pokazao dobivanje dubinske slike iz Kinect 360. Kasnije su mi se brojni ljudi obratili na LinkedInu i pitali me kako sam uspio koristiti Kinect s Raspberry Pi. Bio sam pomalo iznenađen pitanjem, budući da mi je proces pripreme Kinecta u to vrijeme trajao oko 3-4 sata i nije mi se činio iznimno kompliciranim. Podijelio sam svoje.bash_history datoteke sa svim ljudima koji su me pitali o tom problemu i u travnju sam konačno našao vrijeme za pisanje članka o tome kako instalirati upravljačke programe Kinect i izvesti RGB-D SLAM s RTAB-MAP ROS-om. Tjedan neprospavanih noći nakon početka pisanja članka sada razumijem zašto mi je toliko ljudi postavilo ovo pitanje:)
Počet ću s kratkim objašnjenjem koji su pristupi djelovali, a koji nisu. Zatim ću objasniti kako instalirati upravljačke programe Kinect za upotrebu s ROS Melodic-om i na kraju kako postaviti svoj stroj za RGB-D SLAM s RTAB-MAP ROS-om.
Korak 1: Što je radilo, a što nije
Na raspolaganju je nekoliko upravljačkih programa za Kinect na Raspberry Pi - dva od njih podržava ROS.
OpenNI upravljački programi - paket openni_camera za ROS
upravljački programi 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 prije mnogo godina i da je u praksi EOL već duže vrijeme. S druge strane, ibfreekinect se pravovremeno 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 sastaviti 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, u koracima 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 s catkin_make. Meni to ipak nije uspjelo, greška je bila u tome što je kreiranje generatora dubine otkazalo. Razlog: USB sučelje nije podržano!
Korištenje libfreenect -a i freenect_stack na kraju je donijelo uspjeh, ali bilo je dosta problema za rješavanje i rješenje je bilo pomalo sjeckano, iako je radilo vrlo stabilno (1 sat + kontinuirani rad).
Korak 2: Instaliranje upravljačkih programa Freenect i Freenect_stack
Pretpostavit ću da koristite moju sliku ROS Melodic Desktop 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 bi mogli nastati iz te razlike.
Počnimo s izgradnjom upravljačkih programa libfreenect od izvora, budući da je unaprijed izgrađena verzija apt-get spremišta previše zastarjela.
sudo apt-get ažuriranje
sudo apt-get install libusb-1.0-0-dev
git klon
cd libfreenect
mkdir build && cd build
cmake -L..
napraviti
sudo make install
Nadamo 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 vaše mape catkin workspace src:
git klon
git klon
git klon
git klon
git klon
git klon
Opa, to je bilo puno kloniranja.
KASNIJE UREĐIVANJE: Kao što je istaknuo jedan od mojih čitatelja, spremište vision_opencv potrebno je postaviti na melodijsku granu. Za taj cd na src/vision_opencv i izvršite
git checkout melodičan
Zatim se vratite u mapu radnog prostora Catkin. Da biste provjerili imamo li ovisnosti o svim postavljenim paketima, 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
Vrijeme za čaj;) ili bilo koje drugo vaše omiljeno piće.
Nakon što je proces kompilacije završen, možete pokušati pokrenuti kinect stog i provjeriti ispisuje li dubinu i slike u boji ispravno. Koristim Raspberry Pi bez glave, pa moram pokrenuti RVIZ na stolnom računalu.
Na Raspberry Pi do -u (Promijenite IP adresu u IP adresu vašeg Raspberry Pi -a!):
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
Vidjet ćete izlaz kao na snimci zaslona 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 stolnom računalu s instaliranim ROS Melodicom učinite sljedeće:
izvoz ROS_MASTER_URI = https://192.168.0.108: 11311
izvoz ROS_IP = [your-desktop-computer-ip] rviz
Sada biste trebali moći vidjeti RGB i Dubinske slikovne tokove u RVIZ -u kao na Screenshotu 2 gore … ali ne u isto vrijeme.
U redu, ovdje počinju hacky stvari. Potrošio 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 snimci zaslona 3. Pokušao sam sve: bolje napajanje, starije urezivanja libfreenect -a i freenect_stack, zaustavljanje usb_autosuspend, ubrizgavanje izbjeljivača u USB priključke (u redu, ne zadnji! nemojte to raditi, to je šala i ne bi trebao predstavljati tehnički savjet:)). Zatim sam u jednom od Githubovih brojeva vidio račun osobe koja je rekla da je njihov Kinect nestabilan, sve dok nisu "učitali USB sabirnicu" povezivanjem WiFi dongla. Probao sam to i upalilo je. S jedne strane, drago mi je da je uspjelo. S druge strane, netko bi to stvarno 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 postoji unaprijed izgrađen armhf paket dostupan za PCL, morat ćemo ga sastaviti iz izvora zbog ovog problema. Posavjetujte se s PCL GitHub spremištem 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 map samostalno pakiranje git spremišta u našu matičnu mapu i izgraditi ga. Koristio sam najnovije izdanje (0.18.0).
git klon
cd rtabmap/build
cmake..
napraviti -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 toliko daleko, vjerojatno ste dosad već poznavali vježbu:) Klonirajte spremište rtabmap_ros u svoju mapu src radnog prostora catkin. (Izvedite sljedeću naredbu iz mape catkin workspace src!)
git clone
Trebat će nam i ovi ROS paketi, o tome da rtabmap_ros ovisi o:
git klon
git klon
git klon
git clone
git clone
Prije nego započnete kompilaciju, možete se uvjeriti da ne propuštate nikakve ovisnosti sa sljedećom naredbom:
rosdep install --from-paths src --ignore-src
Instalirajte više ovisnosti iz aplikacije ap-get (one neće prekinuti povezivanje, ali će izazvati pogreš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 svoje omiljeno kompilacijsko piće niste nigdje predaleko stavili. Nakon što je kompilacija gotova, spremni smo za mapiranje!
Korak 5: Pokaži 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 priključka, jedan za Kinect, drugi za WiFi ključ.
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: = lažno
Vidjet ćete izlaz kao na snimci zaslona 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 prethodno mjesto ili početi iz čiste baze podataka.
Na vašem stolnom računalu s instaliranim paketom ROS Melodic i rtab_map (preporučujem da za to koristite računalo Ubuntu, budući da su unaprijed izgrađeni paketi dostupni za arhitekturu amd64) učinite sljedeće:
izvoz ROS_MASTER_URI = https://192.168.0.108: 11311
izvoz ROS_IP = [vaše-stolno-računalo-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
Tijekom pisanja ovog članka konzultirao sam brojne resurse, uglavnom forume i pitanja GitHub -a. Ostavit ću ih ovdje.
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čeni:
Maneken glava koja lokalizira zvuk s Kinectom: 9 koraka (sa slikama)
Manekenska glava koja lokalizira zvuk s Kinectom: Upoznajte Margaret, ispitnu lutku za sustav praćenja umora vozača. Nedavno se povukla sa svojih dužnosti i pronašla put do našeg uredskog prostora, a od tada je skrenula pozornost onima koji misle da je 'jeziva'. U interesu pravde, ja sam
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ćuje stvaranje suradničke
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. Budući da je Debian Buster službeno objavljen prije samo nekoliko tjedana (trenutno
Jednostavna melodija Arduino tonova: 3 koraka
Jednostavna melodija Arduino tonova: Jednostavna melodija melodije Arduino način je početka s Arduino projektima jer ćete kôd iz Arduino softvera prenijeti samo izravno, a da ne morate ništa pisati
Budilica: Posebna melodija zvona, vrlo učinkovita: 3 koraka
Budilica: Posebna melodija zvona, Vrlo učinkovita: Pozdrav svima! Za mene je ovo prvi put da objavljujem upute, oprostite na niskoj razini 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