INHOUDSOPGAWE:
- Stap 1: wat gewerk het en wat nie
- Stap 2: Installeer Freenect -bestuurders en Freenect_stack
- Stap 3: Installeer selfstandige RTAB MAP
- Stap 4: Installeer Rtabmap_ros
- Stap 5: Wys tyd
- Stap 6: Verwysings
Video: RGB-D SLAM Met Kinect op Raspberry Pi 4 [Buster] ROS Melodic: 6 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:24
Verlede jaar het ek 'n artikel geskryf oor die bou en installering van ROS Melodic op nuwe (destyds) Raspberry Pi met Debian Buster OS. Die artikel het baie aandag geniet, sowel op Instructables as op ander platforms. Ek is baie bly dat ek soveel mense gehelp het om ROS suksesvol op Raspberry Pi te installeer. In die meegaande video het ek ook kortliks gedemonstreer hoe ek dieptebeeld kry van Kinect 360. Later het talle mense my op LinkedIn gekontak en my gevra hoe ek dit reggekry het om Kinect met Raspberry Pi te gebruik. Ek was nogal verbaas oor die vraag, aangesien die proses om Kinect op daardie tydstip gereed te kry, my ongeveer 3-4 uur geneem het en nie baie ingewikkeld gelyk het nie. Ek het my.bash_history-lêers gedeel met al die mense wat my gevra het oor die kwessie en uiteindelik in April tyd gekry om 'n artikel te skryf oor hoe om Kinect-bestuurders te installeer en RGB-D SLAM met RTAB-MAP ROS uit te voer. Week van slapelose nagte nadat ek die artikel begin skryf het, ek verstaan nou hoekom soveel mense my hierdie vraag gevra het:)
Ek sal begin met 'n kort verduideliking oor watter benaderings wel gewerk het en watter nie. Dan sal ek verduidelik hoe u Kinect-bestuurders installeer vir gebruik met ROS Melodic en uiteindelik hoe u u masjien vir RGB-D SLAM met RTAB-MAP ROS kan instel.
Stap 1: wat gewerk het en wat nie
Daar is 'n paar bestuurders beskikbaar vir Kinect op Raspberry Pi - uit hulle word twee ondersteun deur ROS.
OpenNI -bestuurders - openni_camera -pakket vir ROS
libfreenect -bestuurders - freenect_stack -pakket vir ROS
As u na hul onderskeie GitHub -bewaarplekke kyk, kan u sien dat OpenNI -bestuurder jare gelede laas opgedateer is en in die praktyk lank lank EOL is. ibfreekinect aan die ander kant word betyds bygewerk. Dieselfde geld vir hul onderskeie ROS -pakkette, freenect_stack is vrygestel vir ROS melodies, terwyl die laaste distro openni_camera wat Fuerte ondersteun het, gelys word …
Dit is moontlik om OpenNI -bestuurder en openni_camera -pakket op te stel en te installeer op Raspberry Pi vir ROS Melodic, hoewel dit nie vir my gewerk het nie. Om dit te kan doen, volg hierdie gids, stap 1, 2, 3, op stap 2 en 3, verwyder die "-mfloat-abi = softfp" vlag van Platform/Linux/Build/Common/Platform. ARM lêer (volgens advies hieroor Github -uitgawe). Kloon dan die pakket openni_camera na u catkin -werkruimte en stel dit saam met catkin_make. Dit het egter nie vir my gewerk nie, die fout was dat die diepte -kragopwekker misluk het. Rede: USB -koppelvlak word nie ondersteun nie!
Die gebruik van libfreenect en freenect_stack het uiteindelik sukses opgelewer, maar daar was 'n hele paar probleme om op te los en die oplossing was 'n bietjie hacky, hoewel dit baie stabiel werk (1 uur + voortgesette werking).
Stap 2: Installeer Freenect -bestuurders en Freenect_stack
Ek neem aan dat u my ROS Melodic Desktop -beeld uit hierdie artikel gebruik. As u in 'n ander omgewing wil installeer, byvoorbeeld ros_comm -beeld of in Ubuntu vir Raspberry Pi, moet u genoeg kennis oor ROS hê om probleme op te los wat uit hierdie verskil kan ontstaan.
Kom ons begin deur libfreenect-bestuurders uit die bron te bou, aangesien die voorafgeboude weergawe apt-get repository te verouderd is.
sudo apt-get update
sudo apt-get install libusb-1.0-0-dev
git -kloon
cd libfreenect
mkdir build && cd build
cmake -L..
maak
sudo maak installeer
Hopelik sal die bouproses sonder probleme en vol groen vriendelike boodskappe wees. Nadat u die libfreenect -bestuurder geïnstalleer het, is die volgende stap om die freenect_stack -pakket vir ROS te installeer. Daar is 'n hele paar ander pakkette waarvan dit afhang, ons moet dit kloon en saam met catkin_make bou. Voordat u begin, moet u seker maak dat u werkplek korrek opgestel en verkry is!
Uit u catkin -werkruimte src -lêergids:
git-kloon
git-kloon
git-kloon
git-kloon
git-kloon
git -kloon
Sjoe, dit was baie kloning.
LATER REDIGERING: Soos een van my lesers daarop gewys het, moet vision_opencv -bewaarplek op 'n melodiese tak ingestel word. Vir die cd na src/vision_opencv en voer dit uit
git checkout melodies
Gaan dan terug na u catkin -werkruimtemap. Om te kyk of ons afhanklikes vir alle pakkette in plek is, voer hierdie opdrag uit:
rosdep installeer-van-paths src --ignore-src
As u al die nodige pakkette suksesvol gekloon het, sal dit versoek om libfreekinect af te laai met apt-get. Antwoord nee, aangesien ons dit reeds vanaf die bron geïnstalleer het.
sudo apt-get install libbullet-dev libharfbuzz-dev libgtk2.0-dev libgtk-3-dev
catkin_make -j2
Teetyd;) of wat ook al u gunsteling drankie is.
Nadat die opstelproses voltooi is, kan u probeer om kinect -stapel te begin en te kyk of dit diepte- en kleurbeelde behoorlik lewer. Ek gebruik Raspberry Pi sonder kop, so ek moet RVIZ op my rekenaar gebruik.
Doen dit op Raspberry Pi (Verander die IP -adres in die IP -adres van u Raspberry Pi!):
voer ROS_MASTER_URI = https://192.168.0.108: 11311 uit
uitvoer ROS_IP = 192.168.0.108
roslaunch freenect_launch freenect.launch depth_registration: = waar
U sal die uitset sien soos in skermkiekie 1. "Stop toestel RGB en diepte stroom spoel." dui aan dat Kinect gereed is, maar niks is nog op die onderwerpe ingeteken nie.
Op u tafelrekenaar met ROS Melodic geïnstalleer, doen:
voer ROS_MASTER_URI = https://192.168.0.108: 11311 uit
uitvoer ROS_IP = [jou-lessenaar-rekenaar-ip] rviz
U behoort nou RGB- en dieptebeeldstrome in RVIZ te kan sien, soos in skermkiekie 2 hierbo … maar nie terselfdertyd nie.
Goed, dit is waar hacky goed begin. Ek het drie dae probeer om verskillende bestuurders en benaderings te probeer, en niks werk nie - sodra ek toegang tot twee strome gelyktydig sou probeer, sou die Kinect begin tydsberekening kry, soos u in skermkiekie 3 kan sien. freenect_stack, stop usb_autosuspend, spuit bleikmiddel aan USB -poorte (oké, nie die laaste nie! moenie dit doen nie, dit is 'n grap en behoort nie 'n tegniese advies te wees nie:)). Toe sien ek in een van Github se uitgawes 'n verslag van 'n persoon wat gesê het dat hul Kinect onstabiel was totdat hulle 'die USB -bus laai' deur 'n WiFi -dongle aan te sluit. Ek het dit probeer en dit het gewerk. Aan die een kant is ek bly dat dit gewerk het. Aan die ander kant behoort iemand dit reg te stel. Wel, terwyl ons dit (soort van) reggemaak het, gaan ons verder met die volgende stap.
Stap 3: Installeer selfstandige RTAB MAP
Eerstens moet ons 'n klomp afhanklikhede installeer:
Alhoewel daar 'n voorafgeboude armhf -pakket vir PCL beskikbaar is, moet ons dit uit die bron opstel weens hierdie probleem. Raadpleeg die PCL GitHub -bewaarplek om te sien hoe u dit uit die bron kan opstel.
sudo apt-get install libvtk6-dev libvtk6-qt-dev libvtk6-java libvtk6-jni
sudo apt-get install libopencv-dev cmake libopenni2-dev libsqlite3-dev
Laat ons nou die selfstandige pakket git repository van rtab -kaart na ons tuismap kloon en dit bou. Ek het die nuutste weergawe (0.18.0) gebruik.
git -kloon
cd rtabmap/build
maak..
maak -j2
sudo maak installeer
sudo ldconfig rtabmap
As ons nou selfstandige RTAB MAP saamgestel het, kan ons na die laaste stap gaan - die opstel en installering van ROS -wrapper vir RTAB MAP, rtabmap_ros.
Stap 4: Installeer Rtabmap_ros
As u so ver gekom het, ken u waarskynlik nou al die oefening:) Kloon die rtabmap_ros -bewaarplek na u Catkin -werkruimte src -lêergids. (Voer die volgende opdrag uit u Catkin -werkruimte src -lêergids uit!)
git -kloon
Ons benodig ook hierdie ROS -pakkette, waarvan rtabmap_ros afhang:
git-kloon
git-kloon
git-kloon
git -kloon
git-kloon
Voordat u begin met die opstel, kan u seker maak dat u geen afhanklikes mis met die volgende opdrag nie:
rosdep installeer-van-paths src --ignore-src
Installeer meer afhanklikhede van ap-get (dit sal die koppeling nie onderbreek nie, maar 'n fout tydens die opstel)
sudo apt-get install libsdl-image1.2-dev
Gaan dan na u catkin -werkruimte -lêergids en begin saamstel:
cd..
catkin_make -j2
Hoop nie u gunsteling versamelingsdrankie het te ver gekom nie. Nadat die opstel klaar is, is ons gereed om die kartering te doen!
Stap 5: Wys tyd
Doen die snaakse truuk deur iets soos WiFi of Bluetooth -dongle by 'n USB -poort te voeg - ek gebruik 2 USB 2.0 -poorte, een vir Kinect, die ander vir WiFi -dongle.
Op Raspberry Pi doen (Verander die IP -adres na IP -adres van jou Raspberry Pi!): 1ste terminale:
voer ROS_MASTER_URI = https://192.168.0.108: 11311 uit
uitvoer ROS_IP = 192.168.0.108
roslaunch freenect_launch freenect.launch depth_registration: = true data_skip: = 2
2de terminale:
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/MaxSize 1000: = vals
U sal die uitset sien soos in skermkiekie 1. "Stop RGB -toestel en diepte stroom spoel." dui aan dat Kinect gereed is, maar niks is nog ingeskryf vir die onderwerpe daarvan nie. In die tweede terminaal moet u boodskappe sien oor die kwaliteit van die odom. As u Kinect te vinnig beweeg, sal die kwaliteit van die odom na 0 gaan, en u moet na 'n vorige plek gaan of vanaf 'n skoon databasis begin.
Op u tafelrekenaar met ROS Melodic en rtab_map pakket geïnstalleer (ek raai u aan om 'n Ubuntu-rekenaar daarvoor te gebruik, aangesien voorafgeboude pakkette beskikbaar is vir amd64-argitektuur):
voer ROS_MASTER_URI = https://192.168.0.108: 11311 uit
uitvoer ROS_IP = [jou-lessenaar-rekenaar-ip]
rviz
Voeg MapGraph- en MapCloud -skerms by rviz en kies die ooreenstemmende onderwerpe uit rtab_map. Wel, dit is dit, soet smaak van oorwinning! Gaan voort en maak 'n paar kartering:)
Stap 6: Verwysings
Tydens die skryf van hierdie artikel was daar 'n aantal bronne wat ek geraadpleeg het, meestal forums en GitHub -kwessies. Ek sal hulle hier los.
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
Voeg my by LinkedIn as u enige vrae het en teken in op my YouTube -kanaal om in kennis gestel te word van meer interessante projekte rakende masjienleer en robotika.
Aanbeveel:
ROS Melodic op Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8: 6 stappe
ROS Melodic op Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8: Hierdie artikel behandel die installering van ROS Melodic Morenia op Raspberry Pi 4 met die nuutste Debian Buster en hoe om RPLIDAR A1M8 te gebruik met ons installasie. Sedert Debian Buster slegs 'n paar weke gelede amptelik vrygestel is (op die oomblik
Aan die gang met ROS Melodic op Raspberry Pi 4 Model B: 7 stappe
Aan die gang met ROS Melodic op Raspberry Pi 4 Model B: The Robot Operating System (ROS) is 'n stel sagtewarebiblioteke en gereedskap wat gebruik word om robotstelsels en toepassings te bou. Die huidige langtermyn diensweergawe van ROS is Melodic Morenia. ROS Melodic is verenigbaar met slegs Ubuntu 18.04 Bionic Beaver
Raspbian Buster op Raspberry Pi 3 - Aan die gang met Raspbian Buster Met Raspberry Pi 3b / 3b+: 4 stappe
Raspbian Buster op Raspberry Pi 3 | Aan die gang met Raspbian Buster Met Raspberry Pi 3b / 3b+: Hallo ouens, onlangs het Raspberry pi -organisasie 'n nuwe Raspbian OS bekendgestel wat Raspbian Buster genoem word. Dit is 'n nuwe weergawe van Raspbian vir framboos pi's. So vandag leer ons in hierdie instruksies hoe om Raspbian Buster OS op u Raspberry pi 3 te installeer
Hoe om 'n afstandbeheerde Spike Buster of skakelbord te maak met behulp van die selfstandige Atmega328P: 6 stappe (met foto's)
Hoe om 'n afstandbeheerde Spike Buster of 'n skakelbord te maak met behulp van die selfstandige Atmega328P: In hierdie projek sal ek wys hoe u 'n afstandbeheerde Spike Buster of 'n skakelbord kan bou met behulp van die selfstandige Atmega328P. Hierdie projek is gebou op 'n persoonlike PCB -bord met baie min komponente. As u verkies om na video te kyk, het ek dieselfde ingebed of
Roomblock: 'n platform om ROS -navigasie te leer met Roomba, Raspberry Pi en RPLIDAR: 9 stappe (met foto's)
Roomblock: 'n platform om ROS -navigasie te leer met Roomba, Raspberry Pi en RPLIDAR: Wat is dit? &Quot; Roomblock " is 'n robotplatform wat bestaan uit 'n Roomba, 'n Raspberry Pi 2, 'n lasersensor (RPLIDAR) en 'n mobiele battery. Die monteerraam kan deur 3D -drukkers gemaak word. Met die ROS -navigasiestelsel kan u 'n kaart van die kamers maak en