Taula de continguts:
- Pas 1: què ha funcionat i què no
- Pas 2: Instal·lació de controladors Freenect i Freenect_stack
- Pas 3: Instal·lació de RTAB MAP autònom
- Pas 4: Instal·lació de Rtabmap_ros
- Pas 5: mostra l'hora
- Pas 6: referències
Vídeo: RGB-D SLAM Amb Kinect a Raspberry Pi 4 [Buster] ROS Melòdic: 6 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:12
L’any passat vaig escriure un article sobre la construcció i instal·lació de ROS Melodic al nou (en aquell moment) Raspberry Pi amb el sistema operatiu Debian Buster. L’article ha rebut molta atenció tant a Instructables com a altres plataformes. Estic molt content d’haver ajudat tanta gent a instal·lar ROS amb èxit a Raspberry Pi. Al vídeo que l’acompanya també vaig demostrar breument que obtenia una imatge de profunditat de Kinect 360. Més tard, moltes persones s’han posat en contacte amb mi a LinkedIn i m’han preguntat com he aconseguit utilitzar Kinect amb Raspberry Pi. Em va sorprendre una mica la pregunta, ja que el procés de preparació de Kinect en aquell moment em va portar unes 3-4 hores i no semblava extremadament complicat. Vaig compartir els meus fitxers.bash_history amb tota la gent que em preguntava sobre el problema i finalment a l’abril vaig trobar el moment d’escriure un article sobre com instal·lar els controladors de Kinect i realitzar RGB-D SLAM amb RTAB-MAP ROS. Setmana de nits sense dormir després de començar a escriure l'article ara entenc per què tanta gent em va fer aquesta pregunta:)
Començaré amb una breu explicació sobre quins enfocaments van funcionar i quins no. A continuació, explicaré com instal·lar els controladors de Kinect per utilitzar-los amb ROS Melodic i, finalment, com configurar la vostra màquina per a RGB-D SLAM amb RTAB-MAP ROS.
Pas 1: què ha funcionat i què no
Hi ha alguns controladors disponibles per a Kinect a Raspberry Pi; d’ells dos són compatibles amb ROS.
Controladors OpenNI: paquet openni_camera per ROS
controladors libfreenect: paquet freenect_stack per ROS
Si mireu els seus respectius repositoris de GitHub, podeu trobar que el controlador OpenNI s’ha actualitzat per última vegada fa anys i que a la pràctica és EOL durant molt de temps. Per altra banda, ibfreekinect s’està actualitzant a temps. El mateix per als seus respectius paquets ROS, freenect_stack es va llançar per a ROS melodic, mentre que la darrera distribució openni_camera ha inclòs el suport de Fuerte …
És possible compilar i instal·lar el controlador OpenNI i el paquet openni_camera a Raspberry Pi per ROS Melodic, tot i que no va funcionar per a mi. Per fer-ho, seguiu aquesta guia, passos 1, 2, 3, als passos 2 i 3, traieu el senyalador "-mfloat-abi = softfp" del fitxer Platform / Linux / Build / Common / Platform. ARM (per consell sobre això Número Github). A continuació, cloneu el paquet openni_camera al vostre espai de treball catkin i compileu-lo amb catkin_make. Tanmateix, no em va funcionar, l'error en crear el generador de profunditat va fallar. Motiu: la interfície USB no és compatible.
L’ús de libfreenect i freenect_stack va donar èxit al final, però hi havia força problemes per resoldre i la solució era una mica complicada, tot i que funcionava molt estable (1 hora + funcionament continuat).
Pas 2: Instal·lació de controladors Freenect i Freenect_stack
Suposo que utilitzeu la meva imatge d’escriptori melòdic ROS d’aquest article. Si voleu fer la instal·lació en entorns diferents, per exemple, la imatge ros_comm o a Ubuntu per a Raspberry Pi, assegureu-vos que teniu prou coneixement sobre ROS per resoldre els problemes que puguin derivar-se d’aquesta diferència.
Comencem creant controladors de libfreenect des de la font, ja que la versió pre-construïda del dipòsit apt-get és massa obsoleta.
sudo apt-get update
sudo apt-get install libusb-1.0-0-dev
git clone
cd libfreenect
mkdir build && cd build
cmake -L..
fer
sudo make install
Tant de bo que el procés de compilació no tingui cap incident i estigui ple de missatges ecològics. Després d’instal·lar el controlador libfreenect, el següent que cal fer és instal·lar el paquet freenect_stack per a ROS. Hi ha molts altres paquets dels quals depèn, els haurem de clonar i construir amb catkin_make tots junts. Abans de començar, assegureu-vos que l’espai de treball de la vostra empresa de gatets estigui ben configurat i obtingut.
Des de la carpeta src de catkin workspace:
git clone
git clone
git clone
git clone
git clone
git clone
Vaja, va ser molta clonació.
EDICIÓ POSTERIOR: Tal com va assenyalar un dels meus lectors, cal que el repositori vision_opencv estigui configurat en branca melòdica. Per a aquest cd a src / vision_opencv i executar-lo
git checkout melòdic
A continuació, torneu a la carpeta de l'espai de treball Catkin. Per comprovar si tenim dependències per a tots els paquets al lloc, executem aquesta ordre:
rosdep install --from-routes src --ignore-src
Si heu clonat amb èxit tots els paquets necessaris, us sol·licitarà descarregar libfreekinect amb apt-get. Responeu que no, ja que ja l’hem instal·lat des de la font.
sudo apt-get install libbullet-dev libharfbuzz-dev libgtk2.0-dev libgtk-3-dev
fer_petrell -j2
Hora del te;) o el que sigui la vostra beguda preferida.
Un cop finalitzat el procés de recopilació, podeu provar d'iniciar la pila kinect i comprovar si emet correctament les imatges de profunditat i color. Faig servir Raspberry Pi sense cap, de manera que he d’executar RVIZ a l’ordinador de sobretaula.
A Raspberry Pi (canvieu l'adreça IP a l'adreça IP del vostre Raspberry Pi!):
exportació ROS_MASTER_URI = https://192.168.0.108: 11311
exportació ROS_IP = 192.168.0.108
roslaunch freenect_launch freenect.launch depth_registration: = true
Veureu la sortida com es mostra a la captura de pantalla 1. "Aturar el RGB del dispositiu i el flux de profunditat". indica que Kinect està a punt, però encara no hi ha res subscrit als seus temes.
A l'ordinador d'escriptori amb ROS Melodic instal·lat, feu el següent:
exportació ROS_MASTER_URI = https://192.168.0.108: 11311
export ROS_IP = [your-desktop-computer-ip] rviz
Ara hauríeu de poder veure fluxos d’imatges RGB i Profunditat a RVIZ com a la captura de pantalla 2 anterior … però no al mateix temps.
D’acord, aquí és on comencen les coses pirates. Vaig passar 3 dies provant diferents controladors i enfocaments i res no funcionava; tan bon punt provaria d’accedir a dos fluxos simultàniament, el Kinect començaria a expirar, tal com es pot veure a la captura de pantalla 3. Ho vaig provar tot: millor alimentació, compromisos antics de libfreenect i freenect_stack, aturar usb_autosuspend, injectar lleixiu als ports USB (està bé, no és l'últim! no ho feu, és una broma i no hauria de constituir un consell tècnic:)). Després, en un dels números de Github, vaig veure un relat d’una persona que deia que el seu Kinect era inestable, fins que va "carregar el bus USB" connectant el dongle WiFi. Ho vaig intentar i va funcionar. D’una banda, m’alegro que hagi funcionat. D'altra banda, algú hauria de solucionar-ho realment. Bé, mentrestant tenint (una mica) solucionat això, passem al següent pas.
Pas 3: Instal·lació de RTAB MAP autònom
En primer lloc, hem d’instal·lar un munt de dependències:
Tot i que hi ha un paquet armhf predefinit disponible per a PCL, haurem de compilar-lo des de l'origen a causa d'aquest problema. Consulteu el repositori PCL GitHub per veure com es compila des de la font.
sudo apt-get install libvtk6-dev libvtk6-qt-dev libvtk6-java libvtk6-jni
sudo apt-get install libopencv-dev cmake libopenni2-dev libsqlite3-dev
Ara clonem el repositori git de paquets autònoms del mapa rtab a la nostra carpeta inicial i el construïm. He utilitzat la versió més recent (0.18.0).
git clone
cd rtabmap / build
cmake..
fer -j2
sudo make install
sudo ldconfig rtabmap
Ara, quan hem compilat RTAB MAP autònom, podem passar a l'últim pas: compilar i instal·lar l'embolcall ROS per a RTAB MAP, rtabmap_ros.
Pas 4: Instal·lació de Rtabmap_ros
Si heu arribat tan lluny, probablement ja coneixeu el trepant:) Cloneu el dipòsit rtabmap_ros a la carpeta src de catkin workspace src. (Executeu l'ordre següent des de la carpeta catkin workspace src!)
git clone
També necessitarem aquests paquets ROS, que rtabmap_ros depèn de:
git clone
git clone
git clone
git clone
git clone
Abans de començar la compilació, podeu assegurar-vos que no falteu cap dependència amb l'ordre següent:
rosdep install --from-routes src --ignore-src
Instal·leu més dependències des d'ap-get (aquestes no interrompran l'enllaç, però generaran un error durant la compilació)
sudo apt-get install libsdl-image1.2-dev
A continuació, moveu-vos a la carpeta de l'espai de treball Catkin i comenceu a compilar:
cd..
fer_petrell -j2
Espero que no hagis deixat massa lluny la teva beguda recopilatòria preferida. Un cop acabada la compilació, ja estem preparats per fer el mapatge.
Pas 5: mostra l'hora
Feu aquest truc piratejat afegint alguna cosa com el dongle WiFi o Bluetooth a un port USB: jo feia servir 2 ports USB 2.0, un per a Kinect i l’altre per a un dongle WiFi.
A Raspberry Pi (Canvieu l'adreça IP a l'adreça IP del vostre Raspberry Pi!): Primer terminal:
exportació ROS_MASTER_URI = https://192.168.0.108: 11311
exportació ROS_IP = 192.168.0.108
roslaunch freenect_launch freenect.launch depth_registration: = true data_skip: = 2
2n 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 --OdomF2M / MaxSize 1000 - MaxSize 1000 -: = fals
Veureu la sortida com es mostra a la captura de pantalla 1. "Aturar el RGB del dispositiu i el flux de profunditat". indica que Kinect està a punt, però encara no hi ha res subscrit als seus temes. Al segon terminal hauríeu de veure missatges sobre la qualitat de l’odom. Si moveu Kinect massa ràpidament, la qualitat de l’odom passarà a 0 i haurà de moure’s a una ubicació anterior o començar des d’una base de dades neta.
A l'ordinador d'escriptori amb el paquet ROS Melodic i rtab_map instal·lats (us recomano que utilitzeu l'ordinador Ubuntu, ja que els paquets pre-construïts estan disponibles per a l'arquitectura amd64) feu el següent:
exportació ROS_MASTER_URI = https://192.168.0.108: 11311
exportació ROS_IP = [el vostre-desktop-computer-ip]
rviz
Afegiu pantalles MapGraph i MapCloud a rviz i trieu els temes corresponents provinents de rtab_map. Bé, això és tot, dolç sabor de la victòria! Endavant i feu una mica de mapatge:)
Pas 6: referències
Mentre escrivia aquest article, vaig consultar diversos recursos, principalment fòrums i problemes de GitHub. Els deixaré aquí.
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
Afegiu-me a LinkedIn si teniu cap pregunta i subscriviu-vos al meu canal de YouTube per rebre notificacions sobre projectes més interessants relacionats amb l'aprenentatge automàtic i la robòtica.
Recomanat:
Cap de maniquí localitzador de so amb Kinect: 9 passos (amb imatges)
Cap de maniquí localitzador de so amb Kinect: coneix Margaret, un maniquí de proves per a un sistema de control de fatiga del conductor. Recentment, es va retirar de les seves funcions i es va dirigir a la nostra oficina i, des de llavors, ha cridat l’atenció a aquells que pensen que és “esgarrifosa”. En interès de la justícia, he
ROS Melodic on Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8: 6 passos
ROS Melodic a Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8: aquest article tractarà el procés d’instal·lació de ROS Melodic Morenia a Raspberry Pi 4 que executa l’últim Debian Buster i com utilitzar RPLIDAR A1M8 amb la nostra instal·lació. Des que Debian Buster va ser llançat oficialment fa poques setmanes (a partir del moment
Introducció a ROS Melodic a Raspberry Pi 4 Model B: 7 passos
Introducció a ROS Melodic a Raspberry Pi 4 Model B: El sistema operatiu robot (ROS) és un conjunt de biblioteques de programari i eines que s’utilitzen per construir sistemes i aplicacions robotitzats. L'actual versió de servei a llarg termini de ROS és Melodic Morenia. ROS Melodic només és compatible amb Ubuntu 18.04 Bionic Beaver
Instal·lació de Raspbian Buster a Raspberry Pi 3 - Introducció a Raspbian Buster amb Raspberry Pi 3b / 3b +: 4 passos
Instal·lació de Raspbian Buster a Raspberry Pi 3 | Introducció a Raspbian Buster Amb Raspberry Pi 3b / 3b +: Hola nois, recentment l’organització Raspberry pi va llançar el nou sistema operatiu Raspbian anomenat Raspbian Buster. És una nova versió de Raspbian per a Raspberry pi's. Per tant, avui en aquest instructable aprendrem a instal·lar Raspbian Buster OS al vostre Raspberry pi 3
Roomblock: una plataforma per aprendre la navegació ROS amb Roomba, Raspberry Pi i RPLIDAR: 9 passos (amb imatges)
Roomblock: una plataforma per aprendre la navegació ROS amb Roomba, Raspberry Pi i RPLIDAR: què és això? &Quot; Roomblock " és una plataforma robot composta per un Roomba, un Raspberry Pi 2, un sensor làser (RPLIDAR) i una bateria mòbil. El marc de muntatge el poden fer impressores 3D. El sistema de navegació ROS permet fer un mapa de les habitacions i utilitzar i