Tartalomjegyzék:
- Lépés: Mi működött és mi nem
- 2. lépés: A Freenect illesztőprogramok és a Freenect_stack telepítése
- 3. lépés: Az önálló RTAB MAP telepítése
- 4. lépés: Az Rtabmap_ros telepítése
- 5. lépés: Mutasd az időt
- 6. lépés: Hivatkozások
Videó: RGB-D SLAM Kinect-el a Raspberry Pi 4-en [Buster] ROS Melodic: 6 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:40
Tavaly írtam egy cikket a ROS Melodic felépítéséről és telepítéséről az új (akkoriban) Raspberry Pi -re Debian Buster OS -sel. A cikk nagy figyelmet kapott mind itt az Instructables -en, mind más platformokon. Nagyon örülök, hogy sok embernek segítettem a ROS sikeres telepítésében a Raspberry Pi -n. A kísérő videóban röviden bemutattam a Kinect 360 mélységképének megszerzését is. Később számos ember felvette velem a kapcsolatot a LinkedIn -en, és megkérdezte, hogyan sikerült a Kinectet használni a Raspberry Pi -vel. Kicsit meglepődtem a kérdésen, mivel a Kinect elkészítésének folyamata ekkor körülbelül 3-4 órát vett igénybe, és nem tűnt rendkívül bonyolultnak. Megosztottam a.bash_history fájljaimat azokkal az emberekkel, akik érdeklődtek a kérdésem iránt, és áprilisban végre találtam időt arra, hogy írjak egy cikket a Kinect illesztőprogramok telepítéséről és az RGB-D SLAM RTAB-MAP ROS használatával történő végrehajtásáról. Az álmatlan éjszakák hete, miután elkezdtem írni a cikket, most már értem, hogy miért tették fel ezt a kérdést sokan?:)
Röviden elmagyarázom, hogy milyen megközelítések működtek és melyek nem. Ezután elmagyarázom, hogyan kell telepíteni a Kinect illesztőprogramokat a ROS Melodic-hoz, és végül hogyan állíthatom be a gépet az RTA-MAP ROS-mal rendelkező RGB-D SLAM-ra.
Lépés: Mi működött és mi nem
A Kinect Raspberry Pi -n néhány illesztőprogram áll rendelkezésre - közülük kettőt a ROS támogat.
OpenNI illesztőprogramok - openni_camera csomag ROS -hoz
libfreenect illesztőprogramok - freenect_stack csomag ROS -hoz
Ha megnézi a megfelelő GitHub -tárolókat, megállapíthatja, hogy az OpenNI illesztőprogramja utoljára évekkel ezelőtt frissült, és a gyakorlatban hosszú ideig EOL. Az ibfreekinect viszont időben frissül. Ugyanez vonatkozik a megfelelő ROS csomagokra, a freenect_stack megjelent a ROS melodic számára, míg az utolsó disztribúció az openni_camera felsorolta a Fuerte támogatását…
Lehetőség van az OpenNI illesztőprogram és az openni_camera csomag fordítására és telepítésére a Raspberry Pi -n a ROS Melodic számára, bár nekem nem működött. Ennek érdekében kövesse ezt az útmutatót, az 1., 2., 3. lépés 2. és 3. lépésében távolítsa el a "-mfloat-abi = softfp" jelzőt a Platform/Linux/Build/Common/Platform. ARM fájlból (az ezzel kapcsolatos tanácsok szerint) Github probléma). Ezután klónozza az openni_camera csomagot a macska munkaterületére, és fordítsa le a catkin_make segítségével. Nekem azonban nem működött, a hiba a mélységgenerátor létrehozása volt. Ok: Az USB interfész nem támogatott!
A libfreenect és a freenect_stack használata végül sikert hozott, de jó néhány problémát meg kellett oldani, és a megoldás kissé vagány volt, bár nagyon stabil volt (1 óra + folyamatos működés).
2. lépés: A Freenect illesztőprogramok és a Freenect_stack telepítése
Feltételezem, hogy a cikkből származó ROS Melodic Desktop képemet használja. Ha a telepítést más környezetben, például a ros_comm image vagy az Ubuntu for Raspberry Pi alkalmazásban kívánja elvégezni, győződjön meg arról, hogy elegendő ismerete van a ROS -ról az eltérésből adódó problémák megoldásához.
Kezdjük a libfreenect illesztőprogramok forrásból való építésével, mivel az apt-get lerakat előre elkészített verziója túl elavult.
sudo apt-get update
sudo apt-get install libusb-1.0-0-dev
git klón
cd libfreenect
mkdir build && cd build
cmake -L..
készíteni
sudo make install
Remélhetőleg az építési folyamat eseménytelen lesz, és tele lesz zöldbarát üzenetekkel. A libfreenect illesztőprogram telepítése után a következő lépés a freenect_stack csomag telepítése a ROS számára. Sok más csomag is függ tőle, klónoznunk kell őket, és együtt kell építenünk a catkin_make segítségével. Mielőtt elkezdené, győződjön meg arról, hogy a macska munkaterülete megfelelően van beállítva és beszerzett!
A catkin munkaterület src mappájából:
git klón
git klón
git klón
git klón
git klón
git klón
Hú, ez sok klónozás volt.
KÉSŐBB SZERKESZTÉS: Amint azt egyik olvasóm rámutatott, a vision_opencv tárházat dallamos ágra kell állítani. Ehhez a cd -hez az src/vision_opencv fájlt kell végrehajtani
git checkout dallamos
Ezután térjen vissza a macska munkaterület mappájához. Ha ellenőrizni szeretné, hogy függőségek vagyunk -e a helyén lévő összes csomaghoz, hajtsa végre ezt a parancsot:
rosdep install --from-paths src --ignore-src
Ha sikeresen klónozta az összes szükséges csomagot, akkor a libfreekinect letöltését fogja kérni az apt-get segítségével. Válaszoljon nem, mivel már telepítettük a forrásból.
sudo apt-get install libbullet-dev libharfbuzz-dev libgtk2.0-dev libgtk-3-dev
catkin_make -j2
Teaidő;) vagy bármi a kedvenc italod.
A fordítási folyamat befejezése után megpróbálhatja elindítani a kinect veremét, és ellenőrizni, hogy megfelelően adja ki a mélység és a színes képeket. A Raspberry Pi -t fej nélkül használom, ezért futtatnom kell az RVIZ -t asztali számítógépemen.
A Raspberry Pi do rendszeren (Módosítsa a Raspberry Pi IP -címét IP -címére!):
export ROS_MASTER_URI = https://192.168.0.108: 11311
export ROS_IP = 192.168.0.108
roslaunch freenect_launch freenect.launch deep_registration: = igaz
Látni fogja a kimenetet, mint az 1. képernyőképen. "Az eszköz RGB leállítása és a mélységáram öblítése." azt jelzi, hogy a Kinect készen áll, de még nincs előfizetve a témáihoz.
Asztali számítógépén, amelyen telepítve van a ROS Melodic, tegye a következőket:
export ROS_MASTER_URI = https://192.168.0.108: 11311
export ROS_IP = [a-asztali-számítógép-ip] rviz
Most már látnia kell az RGB és a mélység képfolyamokat az RVIZ -ben, mint a fenti 2. képernyőképen … de nem egyszerre.
Oké, itt kezdődnek a hacky dolgok. Három napot töltöttem különböző illesztőprogramok és megközelítések kipróbálásával, de semmi sem működött - amint két adatfolyamhoz próbálok hozzáférni egyszerre, a Kinect időzítése elkezdődik, amint az a 3. képernyőképen látható. Mindent megpróbáltam: jobb áramellátást, régebbi libfreenect -elkötelezettségeket és freenect_stack, az usb_autosuspend leállítása, fehérítő fecskendezése az USB -portokba (oké, nem az utolsó! ne tegye, ez vicc, és nem minősül technikai tanácsnak:)). Aztán a Github egyik számában láttam egy olyan személy beszámolóját, aki azt mondta, hogy a Kinectjük instabil, amíg a WiFi dongle csatlakoztatásával nem "töltötték fel az USB buszt". Kipróbáltam, és működött. Egyrészt örülök, hogy sikerült. Másrészt valakinek tényleg meg kellene oldania ezt. Nos, miközben ezt (valahogy) kijavítottuk, térjünk át a következő lépésre.
3. lépés: Az önálló RTAB MAP telepítése
Először telepítenünk kell egy csomó függőséget:
Annak ellenére, hogy a PCL számára előre elkészített armhf csomag áll rendelkezésre, a probléma miatt forrásból kell lefordítanunk. Tekintse meg a PCL GitHub lerakatát, hogy megtudja, hogyan fordíthatja le a forrásból.
sudo apt-get install libvtk6-dev libvtk6-qt-dev libvtk6-java libvtk6-jni
sudo apt-get install libopencv-dev cmake libopenni2-dev libsqlite3-dev
Most klónozzuk az rtab map önálló csomag git adattárát a saját mappánkba, és építsük fel. A legújabb kiadást használtam (0.18.0).
git klón
cd rtabmap/build
cmake..
hogy -j2
sudo make install
sudo ldconfig rtabmap
Most, amikor összeállítottuk az önálló RTAB TÉRKÉPET, áttérhetünk az utolsó lépésre - az RTAB MAP, az rtabmap_ros ROS csomagolóanyagának összeállítására és telepítésére.
4. lépés: Az Rtabmap_ros telepítése
Ha idáig eljutott, akkor valószínűleg már ismeri a fúrót:) Klónozza az rtabmap_ros adattárat a catkin munkaterület src mappájába. (Végezze el a következő parancsot a catkin workspace src mappájából!)
git klón
Szükségünk lesz ezekre a ROS csomagokra is, az rtabmap_ros függ:
git klón
git klón
git klón
git klón
git klón
Mielőtt elkezdené a fordítást, a következő paranccsal győződjön meg arról, hogy nem hiányzik egyetlen függőség sem:
rosdep install --from-paths src --ignore-src
Telepítsen több függőséget az ap-getből (ezek nem szakítják meg a linkelést, de hibát okoznak a fordítás során)
sudo apt-get install libsdl-image1.2-dev
Ezután lépjen a catkin munkaterület mappájába, és kezdje el a fordítást:
cd..
catkin_make -j2
Remélem, nem tette túl messzire kedvenc összeállítási italát. Miután elkészült az összeállítás, készen állunk a feltérképezésre!
5. lépés: Mutasd az időt
Végezze el ezt a furcsa trükköt, és adjon hozzá valamit, például WiFi -t vagy Bluetooth -kulcsot az USB -porthoz - 2 USB 2.0 -portot használtam, az egyik a Kinect, a másik a WiFi -kulcshoz.
A Raspberry Pi do rendszeren (Változtassa meg az IP -címet a Raspberry Pi IP -címére!): 1. terminál:
export ROS_MASTER_URI = https://192.168.0.108: 11311
export ROS_IP = 192.168.0.108
roslaunch freenect_launch freenect.launch deep_registration: = true data_skip: = 2
2. terminál:
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/2: = hamis
Látni fogja a kimenetet, mint az 1. képernyőképen. "Az eszköz RGB leállítása és a mélységáram öblítése." azt jelzi, hogy a Kinect készen áll, de még nincs előfizetve a témákra. A második terminálon üzeneteket kell látnia az odom minőségéről. Ha túl gyorsan mozgatja a Kinect -et, az odom minősége 0 -ra változik, és egy előző helyre kell költöznie, vagy a tiszta adatbázisból kell kiindulnia.
Az asztali számítógépén, amelyen telepítve van a ROS Melodic és az rtab_map csomag (javaslom, hogy ehhez Ubuntu számítógépet használjon, mivel az amd64 architektúrához rendelkezésre állnak előre elkészített csomagok):
export ROS_MASTER_URI = https://192.168.0.108: 11311
export ROS_IP = [a-asztali-számítógép-ip]
rviz
Adja hozzá a MapGraph és a MapCloud kijelzőket az rvizhez, és válassza ki a megfelelő témákat az rtab_map -ból. Nos, ez az, a győzelem édes íze! Gyerünk és csinálj egy térképet:)
6. lépés: Hivatkozások
A cikk írása során számos forrást tanulmányoztam, főleg fórumokat és GitHub -problémákat. Itt hagyom őket.
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
Ha bármilyen kérdése van, vegyen fel engem a LinkedIn -en, és iratkozzon fel YouTube -csatornámra, hogy értesítést kapjak a gépi tanulást és a robotikát érintő érdekesebb projektekről.
Ajánlott:
ROS Melodic a Raspberry Pi 4 -en [Debian Buster] + RPLIDAR A1M8: 6 lépés
ROS Melodic a Raspberry Pi 4 -en [Debian Buster] + RPLIDAR A1M8: Ez a cikk a ROS Melodic Morenia telepítésének folyamatát ismerteti a Rasbberry Pi 4 -en, amely a legújabb Debian Buster rendszert futtatja, és hogyan használja a RPLIDAR A1M8 -at a telepítésünkkel. Mivel a Debian Buster csak néhány hete jelent meg hivatalosan (pillanatnyilag
ROS Kinetic, TurtleBot3, Raspicam telepítése a Raspberry Pi -re 4b: 5 lépés
Telepítse a ROS Kinetic, TurtleBot3, Raspicam alkalmazást a Raspberry Pi -re 4b: A TurtleBot3 Burger Raspberry Pi 3 B/B+ csomaggal érkezik, és nem támogatja az új (2019. szeptember 9 -i) Raspberry Pi 4b rendszert. Kövesse az alábbi lépéseket, hogy a TurtleBot3 működjön a Raspberry Pi 4b rendszeren, beleértve a ROS Kinetic építését a Raspberry Pi 4b Raspbian forrásaiból
Az ROS Melodic első lépései a Raspberry Pi 4 B modelljén: 7 lépés
Kezdő lépések a ROS Melodic alkalmazással a Raspberry Pi 4 B modelljén: A robot operációs rendszer (ROS) a szoftverkönyvtárak és a robotrendszerek és alkalmazások létrehozásához használt eszközök összessége. A ROS jelenlegi hosszú távú szolgáltatási verziója a Melodic Morenia. A ROS Melodic csak az Ubuntu 18.04 Bionic Beaverrel kompatibilis
A Raspbian Buster telepítése a Raspberry Pi 3 - -ra A Raspbian Buster használatának első lépései a Raspberry Pi 3b / 3b+segítségével: 4 lépés
A Raspbian Buster telepítése a Raspberry Pi 3 | -ra A Raspbian Buster használatának megkezdése a Raspberry Pi 3b / 3b+alkalmazással: Sziasztok, a közelmúltban a Raspberry pi szervezet új Raspbian operációs rendszert indított Raspbian Buster néven. Ez a Raspbian új verziója a Raspberry pi's számára. Tehát ma ebben az utasításban megtanuljuk, hogyan kell telepíteni a Raspbian Buster OS -t a Raspberry pi 3 -ra
Roomblock: platform a ROS navigáció tanulásához Roomba, Raspberry Pi és RPLIDAR segítségével: 9 lépés (képekkel)
Roomblock: platform a ROS navigáció tanulásához Roomba, Raspberry Pi és RPLIDAR segítségével: Mi ez? &Quot; Roomblock " egy robotplatform, amely egy Roombából, egy Raspberry Pi 2 -ből, egy lézeres érzékelőből (RPLIDAR) és egy mobil akkumulátorból áll. A rögzítő keretet 3D nyomtatók készíthetik. Az ROS navigációs rendszer lehetővé teszi a szobák térképének elkészítését és az