Sisällysluettelo:
- Vaihe 1: Mikä toimi ja mikä ei
- Vaihe 2: Asenna Freenect -ohjaimet ja Freenect_stack
- Vaihe 3: Erillisen RTAB -kartan asennus
- Vaihe 4: Asenna Rtabmap_ros
- Vaihe 5: Näytä aika
- Vaihe 6: Viitteet
Video: RGB-D SLAM Kinectin kanssa Raspberry Pi 4: llä [Buster] ROS Melodic: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
Viime vuonna kirjoitin artikkelin ROS Melodicin rakentamisesta ja asentamisesta uuteen (tuolloin) Raspberry Pi -laitteeseen, jossa on Debian Buster OS. Artikkeli on saanut paljon huomiota sekä täällä Instructablesissa että muilla alustoilla. Olen erittäin iloinen siitä, että olen auttanut niin monia ihmisiä asentamaan ROS onnistuneesti Raspberry Pi: hen. Oheisessa videossa esittelin lyhyesti myös syvyyskuvan saamisen Kinect 360: stä. Myöhemmin monet ihmiset ovat ottaneet minuun yhteyttä LinkedInissä ja kysyneet, miten onnistuin käyttämään Kinectiä Raspberry Pi: n kanssa. Olin tavallaan yllättynyt kysymyksestä, koska Kinectin valmistusprosessi kesti tuolloin noin 3-4 tuntia eikä vaikuttanut kovin monimutkaiselta. Jaoin.bash_history-tiedostoni kaikkien ihmisten kanssa, jotka kysyivät minua asiasta, ja löysin huhtikuussa vihdoin ajan kirjoittaa artikkelin Kinect-ajureiden asentamisesta ja RGB-D SLAM -muistin suorittamisesta RTAB-MAP ROS -laitteella. Viikko unettomia öitä artikkelin kirjoittamisen jälkeen ymmärrän nyt, miksi niin monet ihmiset kysyivät minulta tämän kysymyksen:)
Aloitan lyhyellä selityksellä siitä, mitkä lähestymistavat toimivat ja mitkä eivät. Sitten selitän, kuinka Kinect-ajurit asennetaan käytettäväksi ROS Melodicin kanssa ja lopuksi miten koneesi asetetaan RGB-D SLAM -laitteeseen RTAB-MAP ROS -laitteella.
Vaihe 1: Mikä toimi ja mikä ei
Raspberry Pi -laitteelle on saatavilla muutamia ajureita - joista kaksi on ROS: n tukemia.
OpenNI -ajurit - openni_camera -paketti ROS: lle
libfreenect -ajurit - freenect_stack -paketti ROS: lle
Jos tarkastelet niiden vastaavia GitHub -arkistoja, huomaat, että OpenNI -ajuri on viimeksi päivitetty vuosia sitten ja käytännössä se on EOL pitkään. Toisaalta ibfreekinect päivitetään ajoissa. Sama heidän vastaaville ROS -paketeilleen, freenect_stack julkaistiin ROS melodicille, kun taas viimeisin distro openni_camera on listannut tuen Fuerte…
On mahdollista koota ja asentaa OpenNI -ajuri ja openni_camera -paketti Raspberry Pi for ROS Melodicille, vaikka se ei toiminut minulle. Voit tehdä tämän noudattamalla tätä opasta vaiheiden 1, 2, 3 vaiheissa 2 ja 3 poistamalla "-mfloat-abi = softfp" -lipun Platform/Linux/Build/Common/Platform. ARM-tiedostosta (tämän ohjeen mukaan Github -ongelma). Kloonaa sitten openni_camera -paketti kissasi työtilaan ja käännä se catkin_make -ohjelmalla. Se ei kuitenkaan toiminut minulle, virhe syvyysgeneraattorin luomisessa epäonnistui. Syy: USB -liitäntää ei tueta!
Libfreenectin ja freenect_stackin käyttö tuotti lopulta menestyksen, mutta ratkaistavia ongelmia oli melko vähän ja ratkaisu oli hieman hämmentävä, vaikka se toimi erittäin vakaasti (1 tunti + jatkuva toiminta).
Vaihe 2: Asenna Freenect -ohjaimet ja Freenect_stack
Oletan, että käytät tämän artikkelin ROS Melodic Desktop -kuviani. Jos haluat tehdä asennuksen eri ympäristössä, esimerkiksi ros_comm image tai Ubuntu for Raspberry Pi, varmista, että sinulla on riittävästi tietoa ROS: sta ongelmien ratkaisemiseksi.
Aloitetaan rakentamalla libfreenect-ohjaimet lähteestä, koska apt-get-arkiston esivalmistettu versio on liian vanhentunut.
sudo apt-get päivitys
sudo apt-get install libusb-1.0-0-dev
git -klooni
cd libfreenect
mkdir rakentaa && cd rakentaa
cmake -L..
tehdä
sudo tehdä asennus
Toivottavasti rakentamisprosessi on tapahtumaton ja täynnä vihreitä ystävällisiä viestejä. Kun olet asentanut libfreenect -ohjaimen, seuraava askel on asentaa freenect_stack -paketti ROS: lle. On olemassa muutamia muita paketteja, joista se riippuu, meidän on kloonattava ne ja rakennettava yhdessä catkin_make kanssa. Ennen kuin aloitat, varmista, että kissasi työtila on oikein asennettu ja hankittu!
Catkin -työtilan src -kansiostasi:
git-klooni
git-klooni
git-klooni
git-klooni
git-klooni
git -klooni
Huh, se oli paljon kloonausta.
LATER EDIT: Kuten eräs lukijoistani huomautti, vision_opencv -arkisto on asetettava melodiseen haaraan. Sillä cd src/vision_opencv ja suorittaa
git checkout melodinen
Palaa sitten catkin -työtilan kansioon. Voit tarkistaa, onko riippuvuuksia kaikista paikalla olevista paketeista suorittamalla tämä komento:
rosdep install --from-paths src --ignore-src
Jos olet kloonannut kaikki tarvittavat paketit, se pyytää libfreekinectin lataamista apt-get -ohjelmalla. Vastaa ei, koska olemme jo asentaneet sen lähteestä.
sudo apt-get install libbullet-dev libharfbuzz-dev libgtk2.0-dev libgtk-3-dev
catkin_make -j2
Teehetki;) tai mikä tahansa lempijuomasi on.
Kun kääntäminen on valmis, voit yrittää käynnistää kinect -pinoa ja tarkistaa, tulostaako se syvyys- ja värikuvat oikein. Käytän Raspberry Pi: tä ilman päätä, joten minun on suoritettava RVIZ pöytätietokoneellani.
Raspberry Pi do (Vaihda Raspberry Pi: n IP -osoite IP -osoitteeksi!):
vie ROS_MASTER_URI = https://192.168.0.108: 11311
vienti ROS_IP = 192.168.0.108
roslaunch freenect_launch freenect.launch deep_registration: = totta
Näet tuloksen kuten kuvakaappauksessa 1. "Pysäytyslaite RGB ja syvyysvirtaus." osoittaa, että Kinect on valmis, mutta mitään ei ole vielä tilattu sen aiheisiin.
Tee pöytätietokoneellasi, johon on asennettu ROS Melodic, seuraavasti:
vie ROS_MASTER_URI = https://192.168.0.108: 11311
viedä ROS_IP = [työpöytätietokoneesi-ip] rviz
Nyt sinun pitäisi pystyä näkemään RGB- ja Syvyyskuvavirrat RVIZ: ssä kuten yllä olevassa kuvakaappauksessa 2 … mutta ei samaan aikaan.
Okei, tästä alkaa paska juttu. Kokeilin kolme päivää eri ajureita ja lähestymistapoja, mutta mikään ei toiminut - heti kun yritin käyttää kahta suoratoistoa samanaikaisesti, Kinect aloitti aikakatkaisun, kuten voit nähdä kuvakaappauksessa 3. Yritin kaikkea: parempaa virtalähdettä, vanhempia libfreenect -sitoumuksia ja freenect_stack, usb_autosuspendin pysäyttäminen, valkaisuaineen ruiskuttaminen USB -portteihin (okei, ei viimeinen! älä tee sitä, se on vitsi eikä se saisi olla tekninen neuvo:)). Sitten eräässä Githubin numerossa näin tilin henkilöstä, joka sanoi heidän Kinectin olevan epävakaa, kunnes he "ladasivat USB -väylän" yhdistämällä WiFi -donglen. Kokeilin sitä ja se toimi. Toisaalta olen iloinen, että se toimi. Toisaalta jonkun pitäisi todella korjata se. Sillä välin kun olet (tavallaan) korjannut tämän, siirrymme seuraavaan vaiheeseen.
Vaihe 3: Erillisen RTAB -kartan asennus
Ensin on asennettava joukko riippuvuuksia:
Huolimatta PCL: lle saatavilla olevasta valmiista armhf -paketista, meidän on koottava se lähteestä tämän ongelman vuoksi. Katso PCL GitHub -varastoista, miten voit kääntää sen lähteestä.
sudo apt-get install libvtk6-dev libvtk6-qt-dev libvtk6-java libvtk6-jni
sudo apt-get install libopencv-dev cmake libopenni2-dev libsqlite3-dev
Kloonataan nyt rtab map standalone package git -varasto kotikansioon ja rakennetaan se. Käytin uusinta versiota (0.18.0).
git -klooni
cd rtabmap/build
cmake..
tee -j2
sudo tehdä asennus
sudo ldconfig rtabmap
Kun olemme koonneet itsenäisen RTAB MAPin, voimme siirtyä viimeiseen vaiheeseen - RTAB MAP: n, rtabmap_rosin, ROS -kääreen kokoamiseen ja asentamiseen.
Vaihe 4: Asenna Rtabmap_ros
Jos olet päässyt niin pitkälle, tiedät todennäköisesti poran jo nyt:) Kloonaa rtabmap_ros -arkisto catkin -työtilan src -kansioon. (Suorita seuraava komento catkin workspace src -kansiosta!)
git -klooni
Tarvitsemme myös nämä ROS -paketit, joista rtabmap_ros riippuu:
git-klooni
git-klooni
git-klooni
git -klooni
git-klooni
Ennen kuin aloitat kääntämisen, voit varmistaa, että et menetä riippuvuuksia seuraavalla komennolla:
rosdep install --from-paths src --ignore-src
Asenna lisää riippuvuuksia ap-getistä (ne eivät keskeytä linkitystä, mutta heittävät virheen kääntämisen aikana)
sudo apt-get install libsdl-image1.2-dev
Siirry sitten catkin -työtilan kansioon ja aloita kääntäminen:
cd..
catkin_make -j2
Toivottavasti et laittanut suosikki kokoelmajuomaasi mihinkään liian pitkälle. Kun kokoelma on valmis, olemme valmiita kartoittamaan!
Vaihe 5: Näytä aika
Tee tämä hämmentävä temppu lisäämällä jotain, kuten WiFi tai Bluetooth -dongle USB -porttiin - käytin 2 USB 2.0 -porttia, yksi Kinectille ja toinen WiFi -dongleille.
Raspberry Pi do (Vaihda Raspberry Pi: n IP -osoite IP -osoitteeksi!): 1. pääte:
vie ROS_MASTER_URI = https://192.168.0.108: 11311
vienti ROS_IP = 192.168.0.108
roslaunch freenect_launch freenect.launch deep_registration: = true data_skip: = 2
2. terminaali:
Roslaunch rtabmap_ros rgbd_mapping.: = väärä
Näet tuloksen kuten kuvakaappauksessa 1. "Laitteen RGB -pysäytys ja Depth stream flush". osoittaa, että Kinect on valmis, mutta mitään ei ole vielä tilattu sen aiheisiin. Jos siirrät Kinectiä liian nopeasti, odomin laatu on 0 ja sinun on siirryttävä edelliseen sijaintiin tai aloitettava puhtaasta tietokannasta.
Pöytätietokoneellesi, johon on asennettu ROS Melodic- ja rtab_map-paketti (suosittelen käyttämään Ubuntu-tietokonetta, koska valmiit paketit ovat saatavilla amd64-arkkitehtuurille):
vie ROS_MASTER_URI = https://192.168.0.108: 11311
viedä ROS_IP = [pöytätietokoneesi-ip]
rviz
Lisää MapGraph- ja MapCloud -näytöt rviziin ja valitse vastaavat aiheet rtab_mapista. Tässä se on, voiton makea maku! Mene eteenpäin ja tee kartoitus:)
Vaihe 6: Viitteet
Tätä artikkelia kirjoittaessani kuuntelin useita resursseja, lähinnä foorumeita ja GitHub -ongelmia. Jätän heidät tähän.
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
Lisää minut LinkedIniin, jos sinulla on kysyttävää, ja tilaa YouTube -kanavani, niin saat ilmoituksen mielenkiintoisimmista koneoppimista ja robotiikkaa koskevista projekteista.
Suositeltava:
Bluetooth RC -auto STM32F103C: llä ja L293D: llä - Edullinen: 5 vaihetta
Bluetooth RC -auto STM32F103C: llä ja L293D: llä - Edullista: Tein Bluetooth Arduino -auton, kuten tässä kuvattu, Ardumotive_com. Ongelmani olivat akut ja niiden paino sekä kustannukset. Sittemmin matkapuhelimien halvoista virtapankkeista on tullut erittäin edullisia. Kaikki mitä tarvitsen
ROS Melodic Raspberry Pi 4: ssä [Debian Buster] + RPLIDAR A1M8: 6 vaihetta
ROS Melodic Raspberry Pi 4: ssä [Debian Buster] + RPLIDAR A1M8: Tämä artikkeli kattaa ROS Melodic Morenian asentamisen Raspberry Pi 4: een, jossa on uusin Debian Buster, ja kuinka käyttää RPLIDAR A1M8: ta asennuksessamme. Koska Debian Buster julkaistiin virallisesti vain muutama viikko sitten (tällä hetkellä
Alexa Ääniohjattu Raspberry Pi Drone IoT: llä ja AWS: llä: 6 vaihetta (kuvilla)
Alexa Ääniohjattu Raspberry Pi Drone IoT: llä ja AWS: llä: Hei! Nimeni on Armaan. Olen 13-vuotias Massachusettsin poika. Tämä opetusohjelma näyttää, kuten voit päätellä otsikosta, kuinka rakentaa Raspberry Pi Drone. Tämä prototyyppi osoittaa, kuinka dronit kehittyvät ja kuinka suuri rooli niillä voi olla
Kinectin yhdistäminen: 8 vaihetta
Kinectin yhdistäminen: Microsoftin Kinect on monipuolinen multimedian syöttölaite, jota voidaan käyttää 3D -skannerina. Alun perin se julkaistiin Xbox -pelikonsolin laajennuksena. Kerromme, kuinka Kinect liitetään Windows -tietokoneeseen. Nintendon Wii -pelikonsoli
Nao -robotti jäljittelee liikkeitä Kinectin avulla: 7 vaihetta
Nao -robotti jäljittelee liikkeitä Kinectin avulla: Tässä ohjeessa selitän sinulle, kuinka annamme Nao -robotin jäljitellä liikkeitämme kinect -anturin avulla. Hankkeen todellinen tavoite on kasvatuksellinen tarkoitus: opettajalla on kyky tallentaa tiettyjä liikkeitä (esim. Tanssi) ja hän voi