Obsah:
- Krok 1: Co fungovalo a co ne
- Krok 2: Instalace ovladačů Freenect a Freenect_stack
- Krok 3: Instalace samostatné mapy RTAB
- Krok 4: Instalace Rtabmap_ros
- Krok 5: Zobrazit čas
- Krok 6: Reference
Video: RGB-D SLAM s Kinectem na Raspberry Pi 4 [Buster] ROS Melodic: 6 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:20
Minulý rok jsem napsal článek o stavění a instalaci ROS Melodic na nový (v té době) Raspberry Pi s operačním systémem Debian Buster. Tento článek získal velkou pozornost jak zde, tak na jiných platformách. Jsem velmi rád, že jsem pomohl tolika lidem úspěšně nainstalovat ROS na Raspberry Pi. V doprovodném videu jsem také stručně demonstroval získání hloubkového obrazu z Kinect 360. Později mě kontaktovalo mnoho lidí na LinkedIn a zeptali se mě, jak se mi podařilo používat Kinect s Raspberry Pi. Tato otázka mě trochu překvapila, protože proces přípravy Kinectu mi v té době trval asi 3–4 hodiny a nevypadal nijak extrémně složitě. Sdílel jsem své soubory.bash_history se všemi lidmi, kteří se mě na tento problém ptali, a v dubnu jsem si konečně našel čas napsat článek o tom, jak nainstalovat ovladače Kinect a provádět RGB-D SLAM s RTAB-MAP ROS. Týden bezesných nocí poté, co jsem začal psát článek, už chápu, proč mi tolik lidí položilo tuto otázku:)
Začnu stručným vysvětlením, jaké přístupy fungovaly a které ne. Poté vysvětlím, jak nainstalovat ovladače Kinect pro použití s ROS Melodic a nakonec jak nastavit váš počítač pro RGB-D SLAM s RTAB-MAP ROS.
Krok 1: Co fungovalo a co ne
Pro Kinect na Raspberry Pi je k dispozici několik ovladačů - z nich dva podporuje ROS.
Ovladače OpenNI - balíček openni_camera pro ROS
ovladače libfreenect - balíček freenect_stack pro ROS
Když se podíváte na jejich příslušná úložiště GitHub, zjistíte, že ovladač OpenNI byl naposledy aktualizován před lety a v praxi je EOL dlouhou dobu. Na druhou stranu ibfreekinect se včas aktualizuje. Stejně jako pro jejich příslušné balíčky ROS, freenect_stack byl vydán pro melodii ROS, zatímco poslední distro openni_camera uvádí podporu pro Fuerte…
Je možné zkompilovat a nainstalovat ovladač OpenNI a balíček openni_camera na Raspberry Pi pro ROS Melodic, i když to pro mě nefungovalo. Chcete-li to provést, postupujte podle tohoto průvodce, kroky 1, 2, 3, v krocích 2 a 3, odeberte ze souboru Platform/Linux/Build/Common/Platform. ARM příznak „-mfloat-abi = softfp“(podle pokynů v tomto Problém s Githubem). Pak naklonujte balíček openni_camera do pracovního prostoru catkin a zkompilovejte pomocí catkin_make. Nefungovalo to pro mě, chyba byla při vytváření generátoru hloubky, který selhal. Důvod: Rozhraní USB není podporováno!
Použití libfreenect a freenect_stack nakonec přineslo úspěch, ale bylo třeba vyřešit několik problémů a řešení bylo trochu hacknuté, i když fungovalo velmi stabilně (1 hodina + pokračující provoz).
Krok 2: Instalace ovladačů Freenect a Freenect_stack
Budu předpokládat, že používáte můj obrázek ROS Melodic Desktop z tohoto článku. Pokud chcete provést instalaci v jiném prostředí, například ros_comm image nebo v Ubuntu pro Raspberry Pi, ujistěte se, že máte dostatek znalostí o ROS k řešení problémů, které mohou z tohoto rozdílu vzniknout.
Začněme vytvořením ovladačů libfreenect ze zdroje, protože předem připravená verze úložiště apt-get je příliš zastaralá.
sudo apt-get update
sudo apt-get install libusb-1.0-0-dev
klon git
cd libfreenect
mkdir build && cd build
cmake -L..
udělat
sudo provést instalaci
Naštěstí bude proces sestavování bezproblémový a plný zelených zpráv. Poté, co nainstalujete ovladač libfreenect, další věcí, kterou musíte udělat, je nainstalovat balíček freenect_stack pro ROS. Existuje spousta dalších balíčků, na kterých závisí, budeme je muset naklonovat a stavět s catkin_make dohromady. Než začnete, ujistěte se, že je váš pracovní prostor pro jehnědy správně nastaven a pochází!
Ze složky src vašeho pracovního prostoru src:
klon git
klon git
klon git
klon git
klon git
klon git
Páni, to bylo hodně klonování.
POZDĚJŠÍ ÚPRAVA: Jak poznamenal jeden z mých čtenářů, úložiště vision_opencv je třeba nastavit na melodickou větev. Za to cd do src/vision_opencv a spusťte
git pokladna melodická
Poté se vraťte do složky pracovního prostoru Catkin. Chcete -li zkontrolovat, zda jsme závislí pro všechny zavedené balíčky, spusťte tento příkaz:
rosdep nainstalovat-z cest src --ignore-src
Pokud jste úspěšně naklonovali všechny potřebné balíčky, požádá o stažení libfreekinect pomocí apt-get. Odpověď ne, protože jsme ji již nainstalovali ze zdroje.
sudo apt-get install libbullet-dev libharfbuzz-dev libgtk2.0-dev libgtk-3-dev
catkin_make -j2
Čaj;) nebo jakýkoli váš oblíbený nápoj.
Po dokončení procesu kompilace můžete zkusit spustit kinect stack a zkontrolovat, zda správně vydává obrázky hloubky a barev. Používám Raspberry Pi bez hlavy, takže potřebuji spustit RVIZ na svém stolním počítači.
Na Raspberry Pi do (Změňte IP adresu na IP adresu vašeho Raspberry Pi!):
exportovat ROS_MASTER_URI = https://192.168.0.108: 11311
exportovat ROS_IP = 192.168.0.108
roslaunch freenect_launch freenect.launch depth_registration: = true
Uvidíte výstup jako na snímku obrazovky 1. „Zastavení zarovnávání zařízení RGB a hloubky streamu zařízení.“naznačuje, že Kinect je připraven, ale k jeho tématům se zatím nic nepřihlásilo.
Na stolním počítači s nainstalovaným ROS Melodic proveďte:
exportovat ROS_MASTER_URI = https://192.168.0.108: 11311
export ROS_IP = [your-desktop-computer-ip] rviz
Nyní byste měli být schopni vidět obrazové toky RGB a hloubky v RVIZ jako na Screenshot 2 výše … ale ne současně.
Dobře, tady začíná hacky. Strávil jsem 3 dny zkoušením různých ovladačů a přístupů a nic nefungovalo - jakmile bych zkusil přistupovat ke dvěma streamům současně, Kinect by začal vypršet, jak vidíte na Screenshotu 3. Zkoušel jsem všechno: lepší napájení, starší verze libfreenect a freenect_stack, zastavení usb_autosuspend, vstřikování bělidla do USB portů (dobře, ne poslední! nedělejte to, je to vtip a nemělo by jít o technickou radu:)). Pak jsem v jednom z problémů Githubu viděl účet člověka, který řekl, že jejich Kinect je nestabilní, dokud „nenačetli USB sběrnici“připojením WiFi dongle. Zkusil jsem to a fungovalo to. Na jednu stranu jsem rád, že to fungovalo. Na druhou stranu by to měl opravdu někdo opravit. Mezitím, co jsme to (nějak) vyřešili, přejdeme k dalšímu kroku.
Krok 3: Instalace samostatné mapy RTAB
Nejprve musíme nainstalovat spoustu závislostí:
Přestože je pro PCL k dispozici předem připravený balíček armhf, budeme ho kvůli tomuto problému muset zkompilovat ze zdroje. Konzultujte úložiště PCL GitHub a zjistěte, jak jej zkompilovat ze zdroje.
sudo apt-get install libvtk6-dev libvtk6-qt-dev libvtk6-java libvtk6-jni
sudo apt-get install libopencv-dev cmake libopenni2-dev libsqlite3-dev
Nyní klonujeme rtab map samostatný balíček git repository do naší domovské složky a vytvoříme jej. Použil jsem nejnovější verzi (0.18.0).
klon git
cd rtabmap/build
cmake..
udělat -j2
sudo provést instalaci
sudo ldconfig rtabmap
Když jsme nyní zkompilovali samostatnou RTAB MAP, můžeme přejít k poslednímu kroku - kompilaci a instalaci ROS wrapperu pro RTAB MAP, rtabmap_ros.
Krok 4: Instalace Rtabmap_ros
Pokud jste se dostali tak daleko, pravděpodobně už znáte nácvik:) Klonujte úložiště rtabmap_ros do složky src pracovního prostoru src. (Proveďte další příkaz ze složky src pracovního prostoru src!)
klon git
Budeme také potřebovat tyto balíčky ROS, na kterých rtabmap_ros závisí:
klon git
klon git
klon git
klon git
klon git
Než spustíte kompilaci, můžete se ujistit, že vám nechybí žádné závislosti, pomocí následujícího příkazu:
rosdep install --from-paths src --ignore-src
Nainstalujte více závislostí z ap-get (ty nepřeruší propojení, ale při kompilaci způsobí chybu)
sudo apt-get install libsdl-image1.2-dev
Poté se přesuňte do složky pracovního prostoru Catkin a začněte kompilovat:
cd..
catkin_make -j2
Doufám, že jste svůj oblíbený kompilační nápoj nedali nikam příliš daleko. Po dokončení kompilace jsme připraveni provést mapování!
Krok 5: Zobrazit čas
Udělejte ten hacky trik s přidáním něco jako WiFi nebo Bluetooth dongle do USB portu - používal jsem 2 USB 2.0 porty, jeden pro Kinect, druhý pro WiFi dongle.
Na Raspberry Pi do (Změňte IP adresu na IP adresu vašeho Raspberry Pi!): 1. terminál:
exportovat ROS_MASTER_URI = https://192.168.0.108: 11311
exportovat 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 --OdomF2M/MaxSize 1000: = nepravda
Uvidíte výstup jako na snímku obrazovky 1. „Zastavení zarovnávání zařízení RGB a hloubky streamu zařízení.“znamená, že Kinect je připraven, ale jeho témata zatím nejsou přihlášena. Ve druhém terminálu byste měli vidět zprávy o kvalitě odom. Pokud pohybujete Kinectem příliš rychle, kvalita odom přejde na 0 a budete se muset přesunout na předchozí místo nebo začít z čisté databáze.
Na stolním počítači s nainstalovaným balíčkem ROS Melodic a rtab_map (doporučuji k tomu použít počítač Ubuntu, protože pro architekturu amd64 jsou k dispozici předem připravené balíčky):
exportovat ROS_MASTER_URI = https://192.168.0.108: 11311
export ROS_IP = [vaše-stolní-počítač-ip]
rviz
Přidejte do rviz displeje MapGraph a MapCloud a vyberte odpovídající témata pocházející z rtab_map. No, to je ono, sladká chuť vítězství! Pokračujte a udělejte nějaké mapování:)
Krok 6: Reference
Při psaní tohoto článku jsem konzultoval řadu zdrojů, většinou fóra a problémy s GitHubem. Nechám je tady.
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
Pokud máte nějaké dotazy, přidejte si mě na LinkedIn a přihlaste se k odběru mého kanálu YouTube, abyste byli informováni o zajímavějších projektech zahrnujících strojové učení a robotiku.
Doporučuje:
Zvuková lokalizační figurína s Kinectem: 9 kroků (s obrázky)
Zvuková lokalizační figurína s Kinectem: Seznamte se s Margaret, testovací figurínou pro systém sledování únavy řidiče. Nedávno odešla ze svých povinností a našla si cestu do našich kancelářských prostor a od té doby upoutala pozornost těch, kteří si myslí, že je „strašidelná“. V zájmu spravedlnosti jsem
ROS Melodic na Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8: 6 kroků
ROS Melodic na Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8: Tento článek se bude zabývat procesem instalace ROS Melodic Morenia na Raspberry Pi 4 s nejnovějším Debian Buster a jak používat RPLIDAR A1M8 s naší instalací. Protože Debian Buster byl oficiálně vydán před několika týdny (od okamžiku
Začínáme s ROS Melodic na Raspberry Pi 4 Model B: 7 kroků
Začínáme s ROS Melodic na Raspberry Pi 4 Model B: Robot Operating System (ROS) je sada softwarových knihoven a nástrojů používaných k vytváření robotických systémů a aplikací. Současná verze ROS pro dlouhodobé služby je Melodic Morenia. ROS Melodic je kompatibilní pouze s Ubuntu 18.04 Bionic Beaver
Interaktivní LED dóm s Fadecandy, zpracováním a Kinectem: 24 kroků (s obrázky)
Interaktivní LED dóm s Fadecandy, zpracováním a Kinectem: WhatWhen in Dome je 4,2 m geodetická kopule pokrytá 4378 LED diodami. Všechny diody LED jsou jednotlivě mapovány a adresovatelné. Ovládají je Fadecandy a Processing na ploše Windows. K jedné ze vzpěr kopule je připevněn Kinect, takže
Instalace Raspbian Buster na Raspberry Pi 3 - Začínáme s Raspbian Buster s Raspberry Pi 3b / 3b+: 4 kroky
Instalace Raspbian Buster na Raspberry Pi 3 | Začínáme s Raspbian Buster s Raspberry Pi 3b / 3b+: Ahoj kluci, nedávno organizace Raspberry pi spustila nový OS Raspbian s názvem Raspbian Buster. Jedná se o novou verzi Raspbian pro Raspberry pi. Dnes se tedy v tomto návodu naučíme, jak nainstalovat Raspbian Buster OS na váš Raspberry pi 3