Orodha ya maudhui:
- Hatua ya 1: Kilichofanya kazi na kisichofanya kazi
- Hatua ya 2: Kusanikisha Madereva ya Freenect na Freenect_stack
- Hatua ya 3: Kuweka Standalone RTAB MAP
- Hatua ya 4: Kusanikisha Rtabmap_ros
- Hatua ya 5: Onyesha Wakati
- Hatua ya 6: Marejeleo
Video: RGB-D SLAM Pamoja na Kinect kwenye Raspberry Pi 4 [Buster] ROS Melodic: Hatua 6
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:50
Mwaka jana niliandika nakala juu ya kujenga na kusanikisha ROS Melodic kwenye mpya (wakati huo) Raspberry Pi na Debian Buster OS. Nakala hiyo imepokea umakini mwingi hapa kwenye Maagizo na kwenye majukwaa mengine. Nimefurahi sana kwamba niliwasaidia watu wengi kufanikiwa kusanikisha ROS kwenye Raspberry Pi. Katika video iliyoandamana pia nilionyesha kwa kifupi kupata picha ya kina kutoka Kinect 360. Baadaye watu wengi wamewasiliana nami kwenye LinkedIn na kuniuliza ni jinsi gani nilifanikiwa kutumia Kinect na Raspberry Pi. Nilishangaa swali hilo, kwani mchakato wa kumtengeneza Kinect wakati huo ulinichukua kama masaa 3-4 na haikuonekana kuwa ngumu sana. Nilishiriki faili zangu za.bash_historia na watu wote wakiniuliza juu ya suala hilo na mnamo Aprili mwishowe nikapata wakati wa kuandika nakala juu ya jinsi ya kusanikisha madereva ya Kinect na kufanya RGB-D SLAM na RTAB-MAP ROS. Wiki ya kukosa usingizi baada ya kuanza kuandika nakala hiyo sasa ninaelewa ni kwanini watu wengi waliniuliza swali hili:)
Nitaanza na maelezo mafupi juu ya njia gani zilifanya kazi na ambayo haikufanya kazi. Kisha nitaelezea jinsi ya kusanikisha madereva ya Kinect utumie na ROS Melodic na mwishowe jinsi ya kuweka mashine yako kwa RGB-D SLAM na RTAB-MAP ROS.
Hatua ya 1: Kilichofanya kazi na kisichofanya kazi
Kuna madereva machache yanayopatikana kwa Kinect kwenye Raspberry Pi - kati yao mbili zinaungwa mkono na ROS.
Madereva ya OpenNI - openni_camera package ya ROS
madereva ya uhuru - mfuko wa freenect_stack wa ROS
Ukiangalia hazina zao za GitHub, unaweza kupata kwamba dereva wa OpenNI amesasishwa mwisho miaka iliyopita na kwa mazoezi ni EOL kwa muda mrefu. ibfreekinect kwa upande mwingine inasasishwa kwa wakati unaofaa. Sawa kwa vifurushi vyao vya ROS, freenect_stack ilitolewa kwa wimbo wa ROS, wakati mwisho distro openni_camera imeorodhesha msaada wa Fuerte…
Inawezekana kukusanya na kusanikisha dereva wa OpenNI na kifurushi cha kamera ya openni_camera kwenye Raspberry Pi ya ROS Melodic, ingawa haikunifanyia kazi. Ili kufanya hivyo fuata mwongozo huu, hatua 1, 2, 3, kwenye hatua ya 2 na 3 ondoa bendera ya "-mfloat-abi = softfp" kutoka kwa Jukwaa / Linux / Jenga / Kawaida / Jukwaa. Faili ya ARM (kwa ushauri juu ya hii Suala la Github). Kisha unganisha kifurushi cha openni_camera kwenye nafasi yako ya kazi ya paka na ujumuishe na catkin_make. Haikunifanyia kazi, kosa lilikuwa kuunda jenereta ya kina imeshindwa. Sababu: Muunganisho wa USB hauhimiliwi!
Kutumia libfreenect na freenect_stack ilitoa mafanikio mwishowe, lakini kulikuwa na shida chache kusuluhisha na suluhisho lilikuwa la ujanja kidogo, ingawa lilikuwa kazi thabiti (saa 1 + na operesheni endelevu).
Hatua ya 2: Kusanikisha Madereva ya Freenect na Freenect_stack
Nitafikiria kuwa unatumia picha yangu ya ROS Melodic Desktop kutoka kwa nakala hii. Ikiwa unataka kufanya usakinishaji katika mazingira tofauti, kwa mfano ros_comm picha au kwenye Ubuntu kwa Raspberry Pi, hakikisha kuwa una maarifa ya kutosha juu ya ROS kusuluhisha shida ambazo zinaweza kutokea kutokana na tofauti hiyo.
Wacha tuanze kwa kujenga madereva ya uhuru kutoka kwa chanzo, kwani toleo linalopatikana la kumbukumbu tayari limepitwa na wakati.
Sudo apt-pata sasisho
Sudo apt-get kufunga libusb-1.0-0-dev
clone ya git
uhuru wa cd
mkdir kujenga && cd kujenga
cmake -L..
fanya
Sudo kufanya kufunga
Tunatumahi kuwa mchakato wa ujenzi hautakuwa na usawa na umejaa ujumbe wa kijani kibichi. Baada ya kusanikisha dereva wa libfreenect, sthing inayofuata kufanya ni kusanikisha kifurushi cha freenect_stack cha ROS. Kuna vifurushi vingine kadhaa inategemea, itabidi tuviunganishe na kujenga na catkin_make zote pamoja. Kabla ya kuanza, hakikisha nafasi yako ya kazi ya paka imewekwa vizuri na imetolewa!
Kutoka kwenye folda yako ya nafasi ya kazi ya src:
clone ya git
clone ya git
clone ya git
clone ya git
clone ya git
clone ya git
Whooh, hiyo ilikuwa cloning nyingi.
MABADILIKO YA BADO Kwa cd hiyo kwa src / vision_opencv na kutekeleza
git Checkout melodic
Kisha rudi kwenye folda yako ya nafasi ya kazi ya paka. Kuangalia ikiwa tunategemea vifurushi vyote mahali kutekeleza amri hii:
usanikishaji wa rosdep - kutoka kwa njia za src --ignore-src
Ikiwa umefanikiwa kuunda vifurushi vyote muhimu itaomba kupakua libfreekinect na apt-get. Jibu hapana, kwa kuwa tayari tumeiweka kutoka chanzo.
Sudo apt-get kufunga libbullet-dev libharfbuzz-dev libgtk2.0-dev libgtk-3-dev
paka_kufanya -j2
Wakati wa chai;) au chochote kinywaji unachopenda zaidi ni.
Baada ya mchakato wa mkusanyiko kumaliza unaweza kujaribu kuzindua stack ya kinect na kuangalia ikiwa inatoa picha za kina na rangi vizuri. Ninatumia Raspberry Pi bila kichwa, kwa hivyo ninahitaji kutumia RVIZ kwenye kompyuta yangu ya eneo-kazi.
Kwenye Raspberry Pi do (Badilisha anwani ya IP kuwa anwani ya IP ya Raspberry Pi yako!):
kuuza nje ROS_MASTER_URI = https://192.168.0.108: 11311
kuuza nje ROS_IP = 192.168.0.108
zindua freenect_zindua freenect. uzinduzi wa usajili_wa usajili: = kweli
Utaona matokeo kama kwenye Picha ya 1 ya skrini. "Kuzuia kifaa RGB na kina cha mtiririko wa maji." inaonyesha kuwa Kinect yuko tayari, lakini hakuna chochote kilichosajiliwa kwa mada zake bado.
Kwenye kompyuta yako ya mezani na ROS Melodic imewekwa fanya:
kuuza nje ROS_MASTER_URI = https://192.168.0.108: 11311
kuuza nje ROS_IP = [yako-desktop-kompyuta-ip] rviz
Sasa unapaswa kuona mito ya picha ya RGB na Kina katika RVIZ kama kwenye Picha ya 2 hapo juu… lakini sio wakati huo huo.
Sawa, hapa ndipo mambo ya ujanja yanaanza. Nilitumia siku 3 kujaribu madereva na njia tofauti na hakuna kitu kilichofanya kazi - mara tu ningejaribu kupata mito miwili wakati huo huo Kinect angeanza kuweka wakati kama unavyoweza kuona kwenye Picha ya Tatu. Nilijaribu kila kitu: usambazaji bora wa umeme, ahadi za zamani za uhuru na freenect_stack, kusimamisha usb_autosuspend, kuingiza bleach kwa bandari za USB (sawa, sio ya mwisho! usifanye, ni utani na haipaswi kuunda ushauri wa kiufundi:)). Halafu katika moja ya maswala ya Github niliona akaunti ya mtu ambaye alisema Kinect wao alikuwa thabiti, hadi "walipakia basi la USB" kwa kuunganisha dongle ya WiFi. Nilijaribu hiyo na ilifanya kazi. Kwa upande mmoja, ninafurahi kuwa ilifanya kazi. Kwa upande mwingine, mtu kweli anapaswa kurekebisha hiyo. Kweli, wakati huo huo tukiwa na (aina ya) iliyosanidi hiyo, wacha tuendelee na hatua inayofuata.
Hatua ya 3: Kuweka Standalone RTAB MAP
Kwanza tuna rundo la utegemezi kusanikishwa:
Licha ya kuwa kuna kifurushi cha mkono kilichojengwa tayari kwa PCL, tutahitaji kukusanya kutoka kwa chanzo kwa sababu ya suala hili. Wasiliana na hazina ya PCL GitHub ili uone jinsi ya kuiunda kutoka chanzo.
Sudo apt-get kufunga libvtk6-dev libvtk6-qt-dev libvtk6-java libvtk6-jni
Sudo apt-get kufunga libopencv-dev cmake libopenni2-dev libsqlite3-dev
Sasa wacha tuambatanishe rtab ramani ya kifurushi cha kibinafsi cha git kwenye folda yetu ya nyumbani na tuijenge. Nilitumia kutolewa kwa hivi karibuni (0.18.0).
clone ya git
cd rtabmap / kujenga
cmake..
fanya -j2
Sudo kufanya kufunga
Sudo ldconfig rtabmap
Sasa wakati tumeandaa MAP ya kawaida ya RTAB, tunaweza kuhamia hatua ya mwisho - kukusanya na kusanikisha kifuniko cha ROS kwa Ramani ya RTAB, rtabmap_ros.
Hatua ya 4: Kusanikisha Rtabmap_ros
Ikiwa umefika mbali, labda unajua kuchimba visima kwa sasa:) Clone rtabmap_ros repository kwenye folda yako ya nafasi ya kazi ya src. (Fanya amri ifuatayo kutoka kwako folda ya nafasi ya kazi ya catkin src!)
clone ya git
Tutahitaji vifurushi hivi vya ROS pia, kwamba rtabmap_ros inategemea:
clone ya git
clone ya git
clone ya git
clone ya git
clone ya git
Kabla ya kuanza mkusanyiko unaweza kuhakikisha kuwa hukosi utegemezi wowote na amri ifuatayo:
usanikishaji wa rosdep - kutoka kwa njia za src --ignore-src
Sakinisha utegemezi zaidi kutoka kwa ap-kupata (haya hayatakatisha unganisho, lakini yatatupa kosa wakati wa mkusanyiko)
Sudo apt-get kufunga libsdl-picha1.2-dev
Kisha nenda kwenye folda yako ya nafasi ya kazi ya paka na uanze kukusanya:
cd..
paka_kufanya -j2
Natumahi hukuweka kinywaji chako unachopenda cha mkusanyiko mahali popote mbali. Baada ya kukamilika kwa mkusanyiko tuko tayari kufanya ramani!
Hatua ya 5: Onyesha Wakati
Fanya ujanja huo wa ujanja na kuongeza kitu kama WiFi au dongle ya Bluetooth kwenye bandari ya USB - nilikuwa nikitumia bandari 2 za USB 2.0, moja kwa Kinect, nyingine kwa dongle ya WiFi.
Kwenye Raspberry Pi do (Badilisha anwani ya IP kuwa anwani ya IP ya Raspberry Pi yako!): 1 terminal:
kuuza nje ROS_MASTER_URI = https://192.168.0.108: 11311
kuuza nje ROS_IP = 192.168.0.108
zindua freenect_zindua freenect. uzinduzi usajili_sajili: = data_kip ya kweli: = 2
Kituo cha 2:
kuzindua rtabmap_ros rgbd_mapping.zindua rtabmap_args: = - kufuta_db_on_start --Vis / MaxFeature 500 - Mem / ImagePreDecimation 2Mem / ImagePostDecimation 2 --Kp / DetectorStrikipedia 6 --OdomF2M / MaxSizeRizm 1000 --Odom: = uongo
Utaona matokeo kama kwenye Picha ya 1 ya skrini. "Kuzuia kifaa RGB na kina cha mtiririko wa maji." inaonyesha kuwa Kinect yuko tayari, lakini hakuna kilichosajiliwa kwa mada zake bado. Katika kituo cha pili unapaswa kuona ujumbe juu ya ubora wa odom. Ikiwa unahamisha Kinect haraka sana, ubora wa odom utaenda kwa 0 na utahitaji kuhamia mahali hapo awali au kuanza kutoka hifadhidata safi.
Kwenye kompyuta yako ya mezani na ROS Melodic na kifurushi cha rtab_map kimewekwa (Ninapendekeza utumie kompyuta ya Ubuntu kwa hiyo, kwani vifurushi vilivyojengwa hapo awali vinapatikana kwa usanifu wa amd64) fanya:
kuuza nje ROS_MASTER_URI = https://192.168.0.108: 11311
kuuza nje ROS_IP = [yako-desktop-kompyuta-ip]
rviz
Ongeza MapGraph na maonyesho ya MapCloud kwa rviz na uchague mada zinazofanana zinazotoka rtab_map. Kweli, ndio hii, ladha tamu ya ushindi! Endelea na ufanye ramani:)
Hatua ya 6: Marejeleo
Wakati wa kuandika nakala hii kulikuwa na rasilimali kadhaa nilizozungumza, haswa vikao na maswala ya GitHub. Nitawaacha hapa.
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
Niongeze kwenye LinkedIn ikiwa una maswali yoyote na ujiandikishe kwenye kituo changu cha YouTube ili upate arifa kuhusu miradi ya kufurahisha zaidi inayojumuisha ujifunzaji wa mashine na roboti.
Ilipendekeza:
Sauti Ujanibishaji wa Kichwa cha Mannequin Pamoja na Kinect: Hatua 9 (na Picha)
Sauti Ujanibishaji wa Kichwa cha Mannequin Pamoja na Kinect: Kutana na Margaret, dummy ya upimaji wa mfumo wa ufuatiliaji wa uchovu wa dereva. Hivi karibuni alistaafu kutoka kwa majukumu yake na akapata nafasi ya kwenda kwenye ofisi yetu, na tangu wakati huo amevutia wale wanaodhani yeye ni "mbaya". Kwa maslahi ya haki, nime
Jinsi ya Kuweka OSMC Pamoja na Hyperion kwenye Raspberry Pi Pamoja na Ukanda wa WS2812b: Hatua 8
Jinsi ya Kuanzisha OSMC Pamoja na Hyperion kwenye Raspberry Pi Na WS2812b Led Strip: Wakati mwingine mimi ni kingereza vizuri sana, wakati mwingine hakuna … Vitu vya kwanza kwanza. Hii ni lugha yangu ya kwanza kufundishwa na Kiingereza sio lugha yangu ya asili, kwa hivyo tafadhali, usiwe mgumu sana kwangu. Hii haitakuwa juu ya jinsi ya kujenga fremu, hiyo ni rahisi. Inahusu usakinishaji
ROS Melodic kwenye Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8: Hatua 6
ROS Melodic kwenye Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8: Nakala hii itashughulikia mchakato wa kusanikisha ROS Melodic Morenia kwenye Raspberry Pi 4 inayoendesha Debian Buster mpya na jinsi ya kutumia RPLIDAR A1M8 na usanikishaji wetu. Tangu Debian Buster alipoachiliwa rasmi wiki chache zilizopita (kama ya sasa
Kuanza na ROS Melodic kwenye Raspberry Pi 4 Mfano B: Hatua 7
Kuanza na ROS Melodic kwenye Raspberry Pi 4 Model B: Mfumo wa Uendeshaji wa Robot (ROS) ni seti ya maktaba za programu na zana zinazotumiwa kujenga mifumo na matumizi ya roboti. Toleo la sasa la huduma ya muda mrefu ya ROS ni Melodic Morenia. ROS Melodic inaambatana na Ubuntu 18.04 Bionic Beaver pekee
Kuweka Raspbian Buster kwenye Raspberry Pi 3 - Kuanza na Raspbian Buster Na Raspberry Pi 3b / 3b +: 4 Hatua
Kuweka Raspbian Buster kwenye Raspberry Pi 3 | Kuanza na Raspbian Buster Na Raspberry Pi 3b / 3b +: Halo jamani, hivi karibuni shirika la Raspberry pi lilizindua OS mpya ya Raspbian inayoitwa Raspbian Buster. Ni toleo jipya la Raspbian kwa Raspberry pi's. Kwa hivyo leo katika mafundisho haya tutajifunza jinsi ya kufunga Raspbian Buster OS kwenye Raspberry pi 3 yako