Mundarija:
- 1 -qadam: Nima ishladi va nima ishlamadi
- 2 -qadam: Freenect drayverlarini va Freenect_stack -ni o'rnatish
- 3 -qadam: Mustaqil RTAB xaritasini o'rnatish
- 4 -qadam: Rtabmap_ros -ni o'rnatish
- 5 -qadam: Vaqtni ko'rsatish
- 6 -qadam: Adabiyotlar
Video: RGB-D SLAM Raspberry Pi 4 Kinect bilan [Buster] ROS melodik: 6 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:24
O'tgan yili men Debian Buster OS bilan yangi (o'sha paytda) Raspberry Pi -da ROS Melodic -ni yaratish va o'rnatish haqida maqola yozdim. Maqola Instructables -da ham, boshqa platformalarda ham katta e'tiborga sazovor bo'ldi. Men juda ko'p odamlarga Raspberry Pi -da ROS -ni muvaffaqiyatli o'rnatishga yordam berganimdan juda xursandman. Qo'shimcha videoda men ham Kinect 360 -dan chuqur tasvirni olishni qisqacha namoyish qildim. Keyinchalik ko'p odamlar LinkedIn orqali men bilan bog'lanishdi va men Kinect -ni Raspberry Pi bilan qanday ishlatganimni so'rashdi. Men savolga hayron bo'ldim, chunki Kinectni tayyorlash jarayoni menga 3-4 soat davom etdi va unchalik murakkab ko'rinmadi. Men.bash_history fayllarimni muammo bilan qiziqqan barcha odamlar bilan baham ko'rdim va nihoyat Kinect drayverlarini o'rnatish va RTAB-MAP ROS bilan RGB-D SLAMni bajarish haqida maqola yozishga vaqt topdim. Maqolani yozishni boshlaganimdan keyin uyqusiz tunlar haftasi, nega ko'p odamlar menga bu savolni berishganini endi tushundim:)
Men qanday yondashuvlar ishlaganini va qaysi biri ishlamaganligini qisqacha tushuntirishdan boshlayman. Keyin men ROS Melodic-dan foydalanish uchun Kinect drayverlarini qanday o'rnatishni va nihoyat RTAB-MAP ROS bilan RGB-D SLAM uchun mashinangizni qanday o'rnatishni tushuntiraman.
1 -qadam: Nima ishladi va nima ishlamadi
Raspberry Pi -da Kinect uchun bir nechta haydovchilar mavjud - ulardan ikkitasi ROS tomonidan qo'llab -quvvatlanadi.
OpenNI drayverlari - ROS uchun openni_camera to'plami
libfreenect drayverlari - ROS uchun freenect_stack to'plami
Agar siz ularning tegishli GitHub omborlariga qarasangiz, OpenNI drayveri oxirgi marta yillar oldin yangilanganligini va amalda uzoq vaqt EOL ekanligini topishingiz mumkin. Boshqa tomondan, ibfreekinect o'z vaqtida yangilanmoqda. O'zlarining ROS paketlari uchun xuddi shunday, freenect_stack ROS melodikasi uchun chiqarildi, shu bilan birga openni_camera qo'llab -quvvatlagan oxirgi tarqatish - Fuerte …
ROS Melodic uchun Raspberry Pi -da OpenNI drayverini va openni_camera paketini kompilyatsiya qilish va o'rnatish mumkin, lekin bu men uchun ishlamagan. Buni amalga oshirish uchun ushbu qo'llanmani bajaring, 1, 2, 3-bosqichlar, 2 va 3-qadamlarda "-mfloat-abi = softfp" bayrog'ini Platform/Linux/Build/Common/Platform. ARM faylidan olib tashlang (bu boradagi tavsiyalar bo'yicha). Github muammosi). Keyin openni_camera paketini catkin ish joyingizga klonlang va catkin_make bilan kompilyatsiya qiling. Bu men uchun ishlamadi, lekin chuqurlik generatorini yaratishda xatolik yuz berdi. Sababi: USB interfeysi qo'llab -quvvatlanmaydi!
Libfreenect va freenect_stack -dan foydalanish oxir -oqibat muvaffaqiyat qozondi, lekin hal qilinishi kerak bo'lgan juda ko'p muammolar bor edi va hal etilishi biroz barqaror bo'lsa -da (1 soat + davomli ish).
2 -qadam: Freenect drayverlarini va Freenect_stack -ni o'rnatish
O'ylaymanki, siz ushbu maqoladagi ROS melodik ish stoli tasviridan foydalanasiz. Agar siz boshqa muhitda o'rnatishni xohlasangiz, masalan, ros_comm image yoki Raspberry Pi uchun Ubuntu -da, bu farqdan kelib chiqadigan muammolarni hal qilish uchun ROS haqida etarli ma'lumotga ega ekanligingizga ishonch hosil qiling.
Keling, libfreenect drayverlarini manbadan yaratishni boshlaylik, chunki apt-get omborining oldindan o'rnatilgan versiyasi juda eskirgan.
sudo apt-get yangilanishi
sudo apt-get libusb-1.0-0-dev o'rnatish
git klon
CD libfreenect
mkdir build && cd build
smake -L..
qilmoq
sudo make install
Umid qilamanki, qurilish jarayoni muammosiz va do'stona xabarlar bilan to'la bo'ladi. Libfreenect drayverini o'rnatganingizdan so'ng, keyingi ish - ROS uchun freenect_stack paketini o'rnatish. Bunga bog'liq bo'lgan bir nechta boshqa paketlar bor, biz ularni klonlashimiz va catkin_make bilan birgalikda tuzishimiz kerak bo'ladi. Ishni boshlashdan oldin, catkin ish maydoni to'g'ri sozlanganligiga va manbaga ega ekanligiga ishonch hosil qiling!
Catkin ish maydoni src papkasidan:
git klon
git klon
git klon
git klon
git klon
git klon
Voy, bu juda ko'p klonlash edi.
LATER EDIT: O'quvchilarimdan biri ta'kidlaganidek, vision_opencv omborini melodik bo'limga o'rnatish kerak. Buning uchun src/vision_opencv ni bajaring
git checkout melodik
Keyin catkin ish maydoni papkasiga qayting. Hamma paketlarga bog'liqligimizni tekshirish uchun ushbu buyruqni bajaring:
rosdep o'rnatish --from-paths src --ignore-src
Agar siz barcha kerakli paketlarni muvaffaqiyatli klonlagan bo'lsangiz, u libfreekinect-ni apt-get bilan yuklab olishni so'raydi. Yo'q, deb javob bering, chunki biz uni manbadan o'rnatganmiz.
sudo apt-get libbullet-dev libharfbuzz-dev libgtk2.0-dev libgtk-3-dev ni o'rnating
mushuk_make -j2
Choy vaqti;) yoki sizning eng sevimli ichimlikingiz.
Kompilyatsiya jarayoni tugagandan so'ng, siz kinetik to'plamini ishga tushirishga urinib ko'rishingiz va uning chuqurlik va rangli tasvirlarni to'g'ri chiqarishini tekshirishingiz mumkin. Men Raspberry Pi -ni boshsiz ishlataman, shuning uchun RVIZ -ni ish stoli kompyuterimda ishlatishim kerak.
Raspberry Pi -da (IP -manzilni Raspberry Pi -ning IP -manziliga o'zgartiring!):
eksport qilish ROS_MASTER_URI = https://192.168.0.108: 11311
eksport qilish ROS_IP = 192.168.0.108
roslaunch freenect_launch freenect.launch deep_registration: = rost
Siz ekran tasviridagi 1 kabi chiqishni ko'rasiz. "Qurilmani to'xtatish RGB va chuqurlik oqimi." Kinect tayyor ekanligini ko'rsatadi, lekin uning mavzulariga hali hech narsa yozilmagan.
ROS Melodic o'rnatilgan ish stoli kompyuteringizda quyidagilarni bajaring:
eksport qilish ROS_MASTER_URI = https://192.168.0.108: 11311
ROS_IP = [your-desktop-computer-ip] rviz-ni eksport qiling
Endi siz RVIZ -dagi RGB va Chuqurlikdagi tasvir oqimlarini yuqoridagi 2 -rasmda bo'lgani kabi ko'rishingiz kerak … lekin bir vaqtning o'zida emas.
Xo'sh, bu erda xakerlik ishlari boshlanadi. Men 3 kun davomida har xil haydovchilar va yondashuvlarni sinab ko'rdim, lekin hech narsa ishlamadi - men bir vaqtning o'zida ikkita oqimga kirishga harakat qilsam, Kinect ekranning 3 -rasmida ko'rinib turganidek, vaqtni uzaytira boshladi. Men hamma narsani sinab ko'rdim: elektr ta'minoti yaxshiroq, libfreenectning eski vazifalari va freenect_stack, usb_autosuspendni to'xtatish, USB portlariga oqartirish vositalarini yuborish (yaxshi, oxirgi emas! buni qilmang, bu hazil va texnik maslahat bo'lmasligi kerak:)). Keyin Github sonlaridan birida men o'z Wi -Fi dongle -ni ulab, "USB -avtobusni yuklamaguncha", Kinect beqaror ekanligini aytgan odamning hisobini ko'rdim. Men buni sinab ko'rdim va u ishladi. Bir tomondan, bu ishlaganidan xursandman. Boshqa tomondan, kimdir haqiqatan ham buni tuzatishi kerak. Xo'sh, shu vaqt ichida buni tuzatib, keyingi bosqichga o'tamiz.
3 -qadam: Mustaqil RTAB xaritasini o'rnatish
Birinchidan, biz o'rnatadigan ko'plab bog'liqliklar bor:
PCL uchun oldindan qurilgan armhf to'plami mavjud bo'lsa -da, bu muammo tufayli biz uni manbadan kompilyatsiya qilishimiz kerak bo'ladi. Uni manbadan qanday kompilyatsiya qilishni bilish uchun PCL GitHub omboriga murojaat qiling.
sudo apt-get libvtk6-dev libvtk6-qt-dev libvtk6-java libvtk6-jni o'rnatish
sudo apt-get install libopencv-dev cmake libopenni2-dev libsqlite3-dev
Keling, rtab xaritasining mustaqil paketli git omborini o'z uy papkamizga klonlaymiz va uni tuzamiz. Men oxirgi versiyani ishlatdim (0.18.0).
git klon
cd rtabmap/build
smake..
qilish -j2
sudo make install
sudo ldconfig rtabmap
Endi biz mustaqil RTAB xaritasini tuzganimizda, biz oxirgi bosqichga o'tishimiz mumkin - RTAB MAP, Rtabmap_ros uchun ROS o'rashni yig'ish va o'rnatish.
4 -qadam: Rtabmap_ros -ni o'rnatish
Agar siz shuncha masofani bosib o'tgan bo'lsangiz, ehtimol siz hozircha matkapni bilasiz:) rtabmap_ros omborini catkin workpace src papkasiga klonlang. (Catkin workspace src papkasidan keyingi buyruqni bajaring!)
git klon
Bizga ham ROS paketlari kerak bo'ladi, bu rtabmap_ros quyidagilarga bog'liq.
git klon
git klon
git klon
git klon
git klon
Kompilyatsiyani boshlashdan oldin, siz quyidagi buyruq yordamida hech qanday bog'liqlik yo'qligiga ishonch hosil qilishingiz mumkin:
rosdep o'rnatish --from-paths src --ignore-src
Ap-get-dan ko'proq bog'liqliklarni o'rnating (bu ulanishni to'xtatmaydi, lekin kompilyatsiya paytida xato qiladi)
sudo apt-get libsdl-image1.2-dev ni o'rnating
Keyin catkin ish maydoni papkasiga o'ting va kompilyatsiya qilishni boshlang:
CD..
mushuk_make -j2
Umid qilamanki, siz o'zingiz yoqtirgan kompilyatsiya ichimlikini hech qaerga qo'ymadingiz. Kompilyatsiya tugagandan so'ng biz xaritalashga tayyormiz!
5 -qadam: Vaqtni ko'rsatish
USB portiga WiFi yoki Bluetooth dongle kabi narsalarni qo'shib, bu hiyla -nayrangni ishlating - men ikkita USB 2.0 portidan foydalanardim, biri Kinect uchun, ikkinchisi WiFi dongle uchun.
Raspberry Pi -da (IP -manzilni Raspberry Pi -ning IP -manziliga o'zgartiring!): 1 -terminal:
eksport qilish ROS_MASTER_URI = https://192.168.0.108: 11311
eksport qilish ROS_IP = 192.168.0.108
roslaunch freenect_launch freenect.launch deep_registration: = true data_skip: = 2
2 -terminal:
rtablaun rtabmap_ros rgbd_mapping.launch rtabmap_args: = -delete_db_on_start --Vis/MaxFeatures 500 --Mem/ImagePreDecimation 2 --Mem/ImagePostDecimation 2 --Kp/DetectorStrategy 6 --OdomF2M/MaxDizayn-MaxDizayn 1000-: = noto'g'ri
Siz ekran tasviridagi 1 kabi chiqishni ko'rasiz. "Qurilmani to'xtatish RGB va chuqurlik oqimi." Kinect tayyor ekanligini ko'rsatadi, lekin uning mavzulariga hali hech narsa yozilmagan. Ikkinchi terminalda siz odom sifati haqidagi xabarlarni ko'rishingiz kerak. Agar siz Kinect -ni juda tez harakatlantirsangiz, odom sifati 0 ga ko'tariladi va siz avvalgi joyga ko'chishingiz yoki toza ma'lumotlar bazasidan boshlashingiz kerak bo'ladi.
ROS Melodic va rtab_map to'plami o'rnatilgan ish stoli kompyuteringizda (buning uchun Ubuntu kompyuteridan foydalanishni tavsiya qilaman, chunki amd64 arxitekturasi uchun oldindan o'rnatilgan paketlar mavjud):
eksport qilish ROS_MASTER_URI = https://192.168.0.108: 11311
eksport qilish ROS_IP = [ish stoli-kompyuter-ip]
rviz
Rviz -ga MapGraph va MapCloud displeylarini qo'shing va rtab_map -dan keladigan mavzularni tanlang. Mana, g'alabaning shirin ta'mi! Davom eting va xaritani tuzing:)
6 -qadam: Adabiyotlar
Ushbu maqolani yozish paytida men maslahat bergan bir qator manbalar bor edi, asosan forumlar va GitHub muammolari. Men ularni shu erda qoldiraman.
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
Agar sizda savollar bo'lsa, meni LinkedIn -ga qo'shing va mening YouTube kanalimga obuna bo'ling, mashinasozlik va robototexnika bilan bog'liq qiziqarli loyihalar haqida xabardor bo'ling.
Tavsiya:
Kinect bilan maneken boshini ovozli lokalizatsiya qilish: 9 qadam (rasmlar bilan)
Kinect bilan tovushni lokalizatsiya qiluvchi maneken boshi: Margaret bilan tanishing, haydovchining charchoqni nazorat qilish tizimi uchun qo'g'irchoq. U yaqinda o'z vazifalarini bajarib nafaqaga chiqdi va bizning ofisimizga yo'l topdi va o'shandan beri o'zini "dahshatli" deb hisoblaganlarning e'tiborini tortdi. Adolat manfaati uchun men
ROS Melodic Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8: 6 qadamda
ROS Melodic Raspberry Pi 4 -da [Debian Buster] + RPLIDAR A1M8: Ushbu maqola ROS Melodic Morenia -ni Raspberry Pi 4 -ga so'nggi Debian Buster -ni o'rnatish jarayonini va RPLIDAR A1M8 -ni bizning o'rnatishda qanday ishlatishni o'z ichiga oladi. Debian Buster bir necha hafta oldin rasman chiqarilganidan beri (hozircha
Melodik ovoz: 4 qadam
Melodik Ovoz: "Conception de cet instrument assez particuli & egravere re pe peu comme mais tr & egrave's s simple à" tushunchasi. utilizator. Qachonki, bir xil vaqtga to'g'ri kelsa, elektron sxemasi int é gr é U aaa! Melodik Ovozli ovozni
Fadecandy, ishlov berish va Kinect bilan interaktiv LED gumbaz: 24 qadam (rasmlar bilan)
Fadecandy, Processing va Kinect bilan interaktiv LED gumbaz: WhatWhen in Dome - 4378 LED bilan qoplangan 4,2 metrli geodezik gumbaz. LEDlarning har biri alohida xaritada joylashtirilgan. Ular Windows ish stolida Fadecandy va Processing tomonidan boshqariladi. Gumbaz ustunlaridan biriga Kinect biriktirilgan, shuning uchun
Roomblock: Roomba, Raspberry Pi va RPLIDAR bilan ROS navigatsiyasini o'rganish platformasi: 9 qadam (rasmlar bilan)
Roomblock: Roomba, Raspberry Pi va RPLIDAR bilan ROS navigatsiyasini o'rganish platformasi: bu nima? &Quot; Roomblock " Robot platformasi Roomba, Raspberry Pi 2, lazer sensori (RPLIDAR) va mobil batareyadan iborat. O'rnatish ramkasi 3D -printerlar yordamida tayyorlanishi mumkin. ROS navigatsiya tizimi xonalar xaritasini tuzishga va i -dan foydalanishga imkon beradi