Obsah:
- Krok 1: Čo fungovalo a čo nie
- Krok 2: Inštalácia ovládačov Freenect a programu Freenect_stack
- Krok 3: Inštalácia samostatnej mapy RTAB
- Krok 4: Inštalácia Rtabmap_ros
- Krok 5: Zobraziť čas
- Krok 6: Referencie
Video: RGB-D SLAM s Kinectom na Raspberry Pi 4 [Buster] ROS Melodic: 6 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
Minulý rok som napísal článok o stavaní a inštalácii ROS Melodic na nový (v tom čase) Raspberry Pi s operačným systémom Debian Buster. Tento článok získal veľkú pozornosť tu na stránkach Instructables a na iných platformách. Som veľmi rád, že som pomohol toľkým ľuďom úspešne nainštalovať ROS na Raspberry Pi. V sprievodnom videu som tiež stručne demonštroval získanie hĺbkového obrazu z Kinect 360. Neskôr ma veľa ľudí kontaktovalo na LinkedIn a pýtalo sa ma, ako som dokázal používať Kinect s Raspberry Pi. Táto otázka ma trochu prekvapila, pretože proces prípravy Kinectu mi v tom čase trval asi 3-4 hodiny a nezdal sa mi nijako zložitý. Zdieľal som svoje súbory.bash_history so všetkými ľuďmi, ktorí sa ma na tento problém pýtali, a v apríli som si konečne našiel čas na napísanie článku o inštalácii ovládačov Kinect a vykonávaní RGB-D SLAM s RTAB-MAP ROS. Týždeň bezsenných nocí po tom, ako som začal písať článok, už chápem, prečo mi túto otázku položilo toľko ľudí:)
Začnem stručným vysvetlením, aké prístupy fungovali a ktoré nie. Potom vysvetlím, ako nainštalovať ovládače Kinect na použitie s ROS Melodic a nakoniec ako nastaviť počítač na RGB-D SLAM s RTAB-MAP ROS.
Krok 1: Čo fungovalo a čo nie
Existuje niekoľko ovládačov pre Kinect na Raspberry Pi - z nich dva podporuje ROS.
Ovládače OpenNI - balík openni_camera pre ROS
ovládače libfreenect - balík freenect_stack pre ROS
Ak sa pozriete na ich príslušné úložiská GitHub, zistíte, že ovládač OpenNI bol naposledy aktualizovaný pred rokmi a v praxi je EOL už dlho. Na druhej strane ibfreekinect sa včas aktualizuje. Rovnako ako pre ich príslušné balíky ROS, freenect_stack bol vydaný pre melodiku ROS, zatiaľ čo posledné distro openni_camera uvádza podporu pre Fuerte…
Na ROS Melodic je možné skompilovať a nainštalovať ovládač OpenNI a balík openni_camera na Raspberry Pi, aj keď mi to nefungovalo. Aby ste to urobili, postupujte podľa tohto sprievodcu, kroky 1, 2, 3, v krokoch 2 a 3, odstráňte zo súboru Platform/Linux/Build/Common/Platform. ARM príznak „-mfloat-abi = softfp“(podľa tejto rady Problém s Githubom). Potom naklonujte balík openni_camera do pracovného priestoru catkin a skompilovajte ho pomocou catkin_make. Mne to však nefungovalo, chyba bola pri vytváraní generátora hĺbky, ktorý zlyhal. Dôvod: Rozhranie USB nie je podporované!
Použitie libfreenect a freenect_stack prinieslo nakoniec úspech, ale bolo potrebné vyriešiť niekoľko problémov a riešenie bolo trochu hacknuté, aj keď fungovalo veľmi stabilne (1 hodina + pokračujúca prevádzka).
Krok 2: Inštalácia ovládačov Freenect a programu Freenect_stack
Budem predpokladať, že používate môj obrázok ROS Melodic Desktop z tohto článku. Ak chcete vykonať inštaláciu v inom prostredí, napríklad ros_comm image alebo v Ubuntu pre Raspberry Pi, uistite sa, že máte dostatočné znalosti o ROS na riešenie problémov, ktoré môžu z tohto rozdielu vzniknúť.
Začnime vytvorením ovládačov libfreenect zo zdroja, pretože vopred vytvorená verzia úložiska apt-get je príliš zastaraná.
sudo apt-get aktualizácia
sudo apt-get install libusb-1.0-0-dev
klon git
cd libfreenect
mkdir build && cd build
cmake -L..
urobiť
sudo vykonať inštaláciu
Dúfajme, že proces zostavenia bude bezproblémový a bude obsahovať zelené správy. Po nainštalovaní ovládača libfreenect je potrebné nainštalovať balík freenect_stack pre ROS. Existuje niekoľko ďalších balíkov, od ktorých závisí, budeme ich musieť naklonovať a vytvoriť spolu s catkin_make. Predtým, ako začnete, sa ubezpečte, že je váš pracovný priestor pre maškrty správne nastavený a pochádza z neho!
Z priečinka src pracovného priestoru src:
klon git
klon git
klon git
klon git
klon git
klon git
Hej, to bolo veľa klonovania.
NESKORŠIA ÚPRAVA: Ako zdôraznil jeden z mojich čitateľov, úložisko vision_opencv je potrebné nastaviť na melodickú vetvu. Za to CD na src/vision_opencv a spustite
git pokladňa melodická
Potom sa vráťte do priečinka pracovného priestoru Catkin. Ak chcete skontrolovať, či sme závislé na všetkých zavedených balíkoch, spustite tento príkaz:
rosdep nainštalovať-z-ciest src --ignore-src
Ak ste úspešne naklonovali všetky potrebné balíky, požiada o stiahnutie libfreekinect pomocou apt-get. Odpovedzte nie, pretože sme ho už nainštalovali zo zdroja.
sudo apt-get install libbullet-dev libharfbuzz-dev libgtk2.0-dev libgtk-3-dev
catkin_make -j2
Čas na čaj;) alebo čokoľvek, čo je váš obľúbený nápoj.
Po dokončení procesu kompilácie môžete skúsiť spustiť zásobník kinect a skontrolovať, či správne dodáva obrázky s hĺbkou a farbami. Používam Raspberry Pi bez hlavy, takže musím spustiť RVIZ na svojom stolnom počítači.
Na Raspberry Pi do (Zmeňte IP adresu na IP adresu vášho Raspberry Pi!):
export ROS_MASTER_URI = https://192.168.0.108: 11311
export ROS_IP = 192.168.0.108
roslaunch freenect_launch freenect.launch depth_registration: = true
Uvidíte výstup ako na snímke obrazovky 1. „Zastavenie zarovnávania zariadenia RGB a hĺbkového prúdu zariadenia“. naznačuje, že Kinect je pripravený, ale k jeho témam sa ešte nič neprihlásilo.
Na stolnom počítači s nainštalovaným ROS Melodic postupujte takto:
export ROS_MASTER_URI = https://192.168.0.108: 11311
export ROS_IP = [your-desktop-computer-ip] rviz
Teraz by ste mali byť schopní vidieť RGB a hĺbkové obrazové toky v RVIZ ako na Screenshot 2 vyššie … ale nie súčasne.
Dobre, tu sa začínajú hacknuté veci. Strávil som 3 dni skúšaním rôznych ovládačov a prístupov a nič nefungovalo - hneď ako by som sa pokúsil pristupovať k dvom prúdom súčasne, Kinect začne vypršať časový limit, ako môžete vidieť na Screenshot 3. Skúsil som všetko: lepšie napájanie, staršie verzie libfreenect a freenect_stack, zastavenie usb_autosuspend, vstreknutie bielidla do portov USB (dobre, nie posledné! Nerobte to, je to vtip a nemalo by ísť o technickú radu:)). Potom som v jednom z problémov Githubu videl príbeh osoby, ktorá tvrdila, že ich Kinect je nestabilný, kým „nenačítali USB zbernicu“pripojením WiFi donglu. Skúsil som to a fungovalo to. Na jednej strane som rád, že to fungovalo. Na druhej strane, niekto by to mal skutočne napraviť. Medzitým, čo sme to (akosi) vyriešili, prejdeme k ďalšiemu kroku.
Krok 3: Inštalácia samostatnej mapy RTAB
Najprv musíme nainštalovať veľa závislostí:
Napriek tomu, že pre PCL je k dispozícii vopred pripravený balík armhf, kvôli tomuto problému ho budeme musieť skompilovať zo zdroja. Obráťte sa na úložisko PCL GitHub a zistite, ako ho zostaviť zo zdroja.
sudo apt-get install libvtk6-dev libvtk6-qt-dev libvtk6-java libvtk6-jni
sudo apt-get install libopencv-dev cmake libopenni2-dev libsqlite3-dev
Teraz naklonujeme rtab map samostatný úložisko balíkov git do nášho domovského priečinka a vytvoríme ho. Použil som najnovšie vydanie (0.18.0).
klon git
cd rtabmap/build
cmake..
urobiť -j2
sudo vykonať inštaláciu
sudo ldconfig rtabmap
Teraz, keď sme zostavili samostatnú RTAB MAP, môžeme prejsť na posledný krok - kompiláciu a inštaláciu wrapperu ROS pre RTAB MAP, rtabmap_ros.
Krok 4: Inštalácia Rtabmap_ros
Ak ste sa dostali tak ďaleko, pravdepodobne už poznáte tento nácvik:) Klonujte úložisko rtabmap_ros do svojho priečinka catkin workspace src. (Vykonajte nasledujúci príkaz z vášho priečinka catkin workspace src!)
klon git
Budeme potrebovať aj tieto balíky ROS, od ktorých rtabmap_ros závisí:
klon git
klon git
klon git
klon git
klon git
Pred spustením kompilácie sa môžete ubezpečiť, že vám nechýbajú žiadne závislosti, pomocou nasledujúceho príkazu:
rosdep install --z-ciest src --ignore-src
Nainštalujte viac závislostí od ap-get (tieto nebudú prerušovať prepojenie, ale počas kompilácie spôsobia chybu)
sudo apt-get install libsdl-image1.2-dev
Potom sa presuňte do priečinka pracovného priestoru Catkin a začnite zostavovať:
cd..
catkin_make -j2
Dúfam, že ste svoj obľúbený kompilačný nápoj nedali nikam príliš ďaleko. Po dokončení kompilácie sme pripravení vykonať mapovanie!
Krok 5: Zobraziť čas
Vykonajte tento trik s pridaním niečoho ako WiFi alebo Bluetooth dongle do USB portu - používal som 2 porty USB 2.0, jeden pre Kinect, druhý pre WiFi dongle.
Na Raspberry Pi do (Zmeňte IP adresu na IP adresu vášho Raspberry Pi!): 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 depth_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 --OdomFciMation 2-MaxSize: = nepravda
Uvidíte výstup ako na snímke obrazovky 1. „Zastavenie zarovnávania zariadenia RGB a hĺbkového prúdu zariadenia“. znamená, že Kinect je pripravený, ale k jeho témam sa ešte nič neprihlásilo. V druhom termináli by ste mali vidieť správy o kvalite odom. Ak pohybujete Kinectom príliš rýchlo, kvalita odom prejde na 0 a budete sa musieť presunúť na predchádzajúce miesto alebo začať z čistej databázy.
Na stolnom počítači s nainštalovaným balíkom ROS Melodic a rtab_map (na to odporúčam použiť počítač Ubuntu, pretože pre architektúru amd64 sú k dispozícii vopred pripravené balíky):
export ROS_MASTER_URI = https://192.168.0.108: 11311
export ROS_IP = [váš-stolný-počítač-ip]
rviz
Pridajte do rviz displeje MapGraph a MapCloud a vyberte zodpovedajúce témy pochádzajúce z rtab_map. Tak a je to, sladká chuť víťazstva! Pokračujte a urobte nejaké mapovanie:)
Krok 6: Referencie
Pri písaní tohto článku som konzultoval niekoľko zdrojov, väčšinou fóra a problémy s GitHub. Nechám ich tu.
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
V prípade akýchkoľvek otázok si ma pridajte na LinkedIn a prihláste sa na odber môjho kanála YouTube, aby ste boli informovaní o zaujímavejších projektoch zahŕňajúcich strojové učenie a robotiku.
Odporúča:
Zvuková lokalizačná figurína s Kinectom: 9 krokov (s obrázkami)
Zvuková lokalizačná figurína s Kinectom: Zoznámte sa s Margaret, testovacou figurínou systému monitorovania únavy vodiča. Nedávno odišla zo svojich povinností a našla si cestu do našich kancelárskych priestorov. Odvtedy upozornila tých, ktorí si myslia, že je „strašidelná“. V záujme spravodlivosti som
ROS Melodic na Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8: 6 krokov
ROS Melodic na Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8: Tento článok sa bude zaoberať procesom inštalácie ROS Melodic Morenia na Raspberry Pi 4 s najnovším systémom Debian Buster a ako používať RPLIDAR A1M8 s našou inštaláciou. Pretože Debian Buster bol oficiálne vydaný len pred niekoľkými týždňami (od okamihu
Začíname s ROS Melodic na Raspberry Pi 4 Model B: 7 krokov
Začíname s ROS Melodic na Raspberry Pi 4 Model B: Robot Operating System (ROS) je sada softvérových knižníc a nástrojov používaných na stavbu robotických systémov a aplikácií. Aktuálna verzia ROS pre dlhodobé služby je Melodic Morenia. ROS Melodic je kompatibilný iba s Ubuntu 18.04 Bionic Beaver
Interaktívny LED dóm s Fadecandy, spracovaním a Kinectom: 24 krokov (s obrázkami)
Interaktívny LED dóm s Fadecandy, spracovaním a Kinect: WhatWhen in Dome je 4,2 m geodetická kupola pokrytá 4378 LED diódami. Všetky diódy LED sú jednotlivo mapované a adresovateľné. Ovládajú ich Fadecandy a Processing na pracovnej ploche Windows. Kinect je pripevnený k jednej zo vzpier kupoly, takže
Inštalácia Raspbian Buster na Raspberry Pi 3 - Začíname s Raspbian Buster s Raspberry Pi 3b / 3b+: 4 kroky
Inštalácia Raspbian Buster na Raspberry Pi 3 | Začíname s Raspbian Buster s Raspberry Pi 3b / 3b+: Ahoj chlapci, nedávno organizácia Raspberry pi spustila nový operačný systém Raspbian s názvom Raspbian Buster. Je to nová verzia Raspbian pre Raspberry pi's. Dnes sa teda v tomto návode naučíme, ako nainštalovať Raspbian Buster OS na váš Raspberry pi 3