Mündəricat:
- Addım 1: Nə işləyib nələr etməyib
- Addım 2: Freenect Sürücüləri və Freenect_stack Quraşdırılması
- Addım 3: Bağımsız RTAB MAP -ın quraşdırılması
- Addım 4: Rtabmap_ros quraşdırın
- Addım 5: Zamanı göstərin
- Addım 6: İstinadlar
Video: Raspberry Pi 4-də Kinect ilə RGB-D SLAM [Buster] ROS Melodik: 6 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:44
Keçən il Debian Buster OS ilə yeni (o dövrdə) Raspberry Pi üzərində ROS Melodic qurmaq və quraşdırmaq haqqında bir məqalə yazdım. Məqalə həm Instructables -da, həm də digər platformalarda çox diqqət çəkdi. Çox adamın Raspberry Pi -də ROS -u uğurla quraşdırmasına kömək etdiyimə görə çox şadam. Əlavə olunan videoda Kinect 360 -dan dərinlik görüntüsü əldə etməyi də qısaca nümayiş etdirdim. Sonradan çox adam LinkedIn -də mənimlə əlaqə saxladı və Kinect -dən Raspberry Pi ilə necə istifadə etdiyimi soruşdu. Kinectin hazırlanması prosesi təxminən 3-4 saat çəkdiyindən və son dərəcə mürəkkəb görünmədiyindən bu suala təəccübləndim. Mən.bash_history sənədlərimi mövzu ilə maraqlanan bütün insanlarla paylaşdım və nəhayət Kinect sürücülərinin necə qurulacağına və RTAB-MAP ROS ilə RGB-D SLAM-ın yerinə yetirilməsinə dair bir məqalə yazmağa vaxt tapdım. Məqaləni yazmağa başladıqdan sonra yuxusuz gecələr həftəsi bu qədər insanın niyə bu sualı mənə verdiyini indi başa düşürəm:)
Hansı yanaşmaların işlədiyini və hansının işləmədiyini qısa izahla başlayacağam. Sonra ROS Melodic ilə istifadə üçün Kinect sürücülərinin necə qurulacağını və nəhayət RTAB-MAP ROS ilə RGB-D SLAM üçün maşınınızın necə qurulacağını izah edəcəyəm.
Addım 1: Nə işləyib nələr etməyib
Raspberry Pi -də Kinect üçün bir neçə sürücü var - bunlardan ikisi ROS tərəfindən dəstəklənir.
OpenNI sürücüləri - ROS üçün openni_camera paketi
libfreenect sürücüləri - ROS üçün freenect_stack paketi
Müvafiq GitHub depolarına baxsanız, OpenNI sürücüsünün sonuncu dəfə illər əvvəl yeniləndiyini və praktikada uzun müddət EOL olduğunu görə bilərsiniz. ibfreekinect digər tərəfdən vaxtında yenilənir. Müvafiq ROS paketləri üçün, freenect_stack ROS melodikası üçün buraxıldı, openni_cameranın dəstəyi siyahıya aldığı ən son dağılım isə Fuerte …
Mənim üçün işləməsə də, OpenNI sürücüsünü və openni_camera paketini Raspberry Pi -də ROS Melodic üçün tərtib edib quraşdırmaq mümkündür. Bunu etmək üçün bu təlimatı izləyin, addımlar 1, 2, 3, addım 2 və 3-də "-mfloat-abi = softfp" bayrağını Platform/Linux/Build/Common/Platform. ARM faylından silin (bu barədə verilən məsləhətlərə görə) Github məsələsi). Sonra openni_camera paketini catkin iş sahənizə klonlayın və catkin_make ilə tərtib edin. Mənim üçün işləməsə də, dərinlik generatoru yaratmaq xətası uğursuz oldu. Səbəb: USB interfeysi dəstəklənmir!
Libfreenect və freenect_stack -in istifadəsi sonda uğur qazandı, amma həll etmək üçün bir çox problem var idi və həll çox sabit işləsə də (1 saat + davam edən əməliyyat) bir az səhv idi.
Addım 2: Freenect Sürücüləri və Freenect_stack Quraşdırılması
Bu məqalədəki ROS Melodik Masaüstü şəklimdən istifadə etdiyinizi güman edirəm. Fərqli bir mühitdə, məsələn, ros_comm görüntüsündə və ya Raspberry Pi üçün Ubuntu -da quraşdırma etmək istəyirsinizsə, bu fərqdən yarana biləcək problemləri həll etmək üçün ROS haqqında kifayət qədər məlumatınız olduğundan əmin olun.
Libfreenect sürücüləri mənbədən qurmağa başlayaq, çünki apt-get repository əvvəlcədən qurulmuş versiyası çox köhnəlmişdir.
sudo apt-get yeniləməsi
sudo apt-get libusb-1.0-0-dev quraşdırın
git klonu
cd libfreenect
mkdir build && cd qurmaq
smake -L..
etmək
sudo qurun
İnşallah qurma prosesi problemsiz və yaşıl dostluq mesajları ilə dolu olacaq. Libfreenect sürücüsünü qurduqdan sonra, növbəti iş ROS üçün freenect_stack paketini qurmaqdır. Asılı olduğu bir çox başqa paket var, onları klonlaşdırmalı və hamısını birlikdə catkin_make ilə qurmalıyıq. Başlamadan əvvəl, catkin iş sahənizin düzgün qurulduğundan və qaynaqlandığından əmin olun!
Catkin iş sahənizdən src qovluğundan:
git klonu
git klonu
git klonu
git klonu
git klonu
git klonu
Vay, bu çox klonlaşdırma idi.
LATER EDIT: Oxucularımdan birinin qeyd etdiyi kimi, vision_opencv deposunu melodik bir sahəyə qurmaq lazımdır. Bunun üçün src/vision_opencv və icra edin
git checkout melodik
Sonra catkin iş qovluğuna qayıdın. Yerdə olan bütün paketlərdən asılılığımızı yoxlamaq üçün bu əmri icra edin:
rosdep install --from-paths src --ignore-src
Bütün lazımi paketləri müvəffəqiyyətlə klonladığınız təqdirdə, apt-get ilə libfreekinect yükləməyinizi xahiş edəcək. Xeyr cavabını verin, çünki artıq mənbədən quraşdırmışıq.
sudo apt-get libbullet-dev libharfbuzz-dev libgtk2.0-dev libgtk-3-dev quraşdırın
catkin_make -j2
Çay vaxtı;) və ya sevdiyiniz içki nə olursa olsun.
Kompilyasiya prosesi başa çatdıqdan sonra kinect yığınını işə salmağa və dərinliyi və rəngli şəkilləri düzgün çıxarıb çıxarmadığını yoxlamağa cəhd edə bilərsiniz. Raspberry Pi -ni başsız istifadə edirəm, buna görə də masaüstü kompüterimdə RVIZ -i işə salmalıyam.
Raspberry Pi -də (IP ünvanını Raspberry Pi -nin IP ünvanına dəyişdirin!):
ixrac ROS_MASTER_URI = https://192.168.0.108: 11311
ixrac ROS_IP = 192.168.0.108
roslaunch freenect_launch freenect.launch deep_registration: = doğru
Çıxışı Ekran Görüntüsü 1 -də olduğu kimi görəcəksiniz. "Cihazın RGB və Dərinlik axınının axmasını dayandırın." Kinect -in hazır olduğunu göstərir, lakin mövzularına hələ heç bir şey yazılmamışdır.
ROS Melodic quraşdırılmış masaüstü kompüterinizdə bunları edin:
ixrac ROS_MASTER_URI = https://192.168.0.108: 11311
ixrac ROS_IP = [masaüstünüz-kompüteriniz-ip] rviz
İndi yuxarıdakı Ekran 2 -də olduğu kimi RVIZ -də RGB və Dərinlik görüntü axınlarını görə bilməlisiniz … amma eyni zamanda deyil.
Tamam, hacky şeylərin başladığı yer budur. 3 gün fərqli sürücülər və yanaşmalar sınadım və heç bir nəticə vermədi - eyni anda iki axına daxil olmağa çalışdığım anda Kinect, Ekran Görüntüsü 3 -də gördüyünüz kimi vaxtını çıxarmağa başlayacaq. Mən hər şeyi sınadım: daha yaxşı enerji təchizatı, daha çox libfreenect və freenect_stack, usb_autosuspend'i dayandırmaq, USB portlarına ağartıcı vurmaq (tamam, sonuncu deyil! bunu etməyin, bu bir zarafatdır və texniki məsləhət olmamalıdır:)). Sonra Github -un bir sayında, WiFi dongle bağlayaraq "USB avtobusunu yükləyənə qədər" Kinect -in qeyri -sabit olduğunu söyləyən bir şəxsin hesabını gördüm. Bunu sınadım və işlədi. Bir tərəfdən, işlətdiyi üçün sevinirəm. Digər tərəfdən, kimsə bunu düzəltməlidir. Yaxşı, bu arada (bir növ) bunu düzəldərək, növbəti mərhələyə keçək.
Addım 3: Bağımsız RTAB MAP -ın quraşdırılması
Əvvəlcə quraşdırılacaq bir çox asılılıq var:
PCL üçün əvvəlcədən qurulmuş bir armhf paketi olmasına baxmayaraq, bu problem səbəbiylə onu mənbədən tərtib etməliyik. Mənbədən necə tərtib ediləcəyini görmək üçün PCL GitHub deposuna müraciət edin.
sudo apt-get libvtk6-dev libvtk6-qt-dev libvtk6-java libvtk6-jni quraşdırın
sudo apt-get install libopencv-dev cmake libopenni2-dev libsqlite3-dev
İndi ev qovluğumuza rtab map bağımsız paket git deposunu klonlayaq və quraq. Ən son versiyanı (0.18.0) istifadə etdim.
git klonu
cd rtabmap/qurmaq
vallah..
etmək -j2
sudo qurun
sudo ldconfig rtabmap
İndi müstəqil RTAB MAP tərtib etdikdə, son mərhələyə keçə bilərik - RTAB MAP, Rtabmap_ros üçün ROS sarmalayıcı tərtib etmək və quraşdırmaq.
Addım 4: Rtabmap_ros quraşdırın
Əgər o qədər uzağa getmisinizsə, yəqin ki, artıq qazmağı bilirsiniz:) rtabmap_ros deposunu catkin iş src qovluğunuza kopyalayın. (Catkin workspace src qovluğundan növbəti əmri icra edin!)
git klonu
Bu ROS paketlərinə də ehtiyacımız olacaq, rtabmap_ros asılıdır:
git klonu
git klonu
git klonu
git klonu
git klonu
Kompilyasiyaya başlamazdan əvvəl aşağıdakı əmrlə heç bir asılılıq itirmədiyinizə əmin ola bilərsiniz:
rosdep install --from-paths src --ignore-src
Ap-get-dən daha çox asılılıq qurun (bunlar əlaqəni kəsməyəcək, ancaq tərtib edərkən bir səhv atacaq)
sudo apt-get libsdl-image1.2-dev qurun
Sonra catkin iş sahənizin qovluğuna keçin və tərtib etməyə başlayın:
cd..
catkin_make -j2
Ümid edirik ki, ən çox sevdiyiniz içki içkisini heç yerə qoymadınız. Kompilyasiya bitdikdən sonra xəritələməyə hazırıq!
Addım 5: Zamanı göstərin
USB portuna WiFi və ya Bluetooth dongle kimi bir şey əlavə etməklə bu hiyləgərliyi edin - biri Kinect üçün, digəri WiFi dongle üçün 2 USB 2.0 portundan istifadə edirdim.
Raspberry Pi -də (IP ünvanını Raspberry Pi -nin IP ünvanına dəyişin!): 1 -ci terminal:
ixrac ROS_MASTER_URI = https://192.168.0.108: 11311
ixrac ROS_IP = 192.168.0.108
roslaunch freenect_launch freenect.launch deep_registration: = doğru data_skip: = 2
2 -ci 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/MaxDizayn--: = yalan
Çıxışı Ekran Görüntüsü 1 -də olduğu kimi görəcəksiniz. "Cihazın RGB və Dərinlik axınının axmasını dayandırın." Kinect -in hazır olduğunu, ancaq mövzularına hələ heç bir şeyin abunə olmadığını göstərir. İkinci terminalda odom keyfiyyəti ilə bağlı mesajlar görməlisiniz. Kinect'i çox sürətli hərəkət etdirsəniz, odom keyfiyyəti 0 -a yüksələcək və əvvəlki bir yerə keçməli və ya təmiz verilənlər bazasından başlamalısınız.
ROS Melodic və rtab_map paketi quraşdırılmış masaüstü kompüterinizdə (bunun üçün Ubuntu kompüterindən istifadə etməyi məsləhət görürəm, çünki əvvəlcədən qurulmuş paketlər amd64 arxitekturası üçün mövcuddur):
ixrac ROS_MASTER_URI = https://192.168.0.108: 11311
ixrac ROS_IP = [masaüstünüz-kompüter-ip]
rviz
Rviz -ə MapGraph və MapCloud ekranlarını əlavə edin və rtab_map -dan gələn müvafiq mövzuları seçin. Budur, zəfərin şirin dadı! Davam edin və bir az da xəritələşdirin:)
Addım 6: İstinadlar
Bu yazını yazarkən məsləhətləşdiyim bir çox resurs var idi, əsasən forumlar və GitHub məsələləri. Onları burada buraxacağam.
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
Suallarınız olarsa məni LinkedIn -ə əlavə edin və YouTube kanalıma abunə olun ki, maşın öyrənmə və robototexnika ilə bağlı daha maraqlı layihələrdən xəbərdar olasınız.
Tövsiyə:
Raspberry Pi 4 -də ROS Melodik [Debian Buster] + RPLIDAR A1M8: 6 addım
Raspberry Pi 4 -də ROS Melodic [Debian Buster] + RPLIDAR A1M8: Bu məqalə, ən son Debian Buster ilə işləyən Raspberry Pi 4 -də ROS Melodic Morenia qurma prosesini və RPLIDAR A1M8 -in quraşdırılmamızda necə istifadə olunacağını əhatə edəcək. Debian Buster cəmi bir neçə həftə əvvəl rəsmi olaraq sərbəst buraxıldığından (indiki anda
Melodik Səs: 4 addım
Melodik Səs: Sadə və cazibədar bir cihazdır. istifadəçi. Fərz edin, hər iki dövrə də bir dövrəyə qayıdır, q é O, vay! Me & Me Melodik Səsin co
ESP32 ilə PWM - Arduino IDE ilə ESP 32 -də PWM ilə LED Karartma: 6 addım
ESP32 ilə PWM | Arduino IDE ilə ESP 32 -də PWM ilə LED Karartma: Bu təlimatlarda Arduino IDE istifadə edərək ESP32 ilə PWM siqnallarının necə yaradılacağını görəcəyik. PWM əsasən hər hansı bir MCU -dan analoq çıxışı yaratmaq üçün istifadə olunur və bu analog çıxış 0V ilə 3.3V arasında ola bilər (esp32 vəziyyətində) & dan
Raspberry Pi 3 -də Raspbian Buster quraşdırılması - Raspberry Pi 3b / 3b+ilə Raspbian Buster -ə Başlama: 4 Addım
Raspberry Pi 3 -də Raspbian Buster qurmaq | Raspberry Pi 3b / 3b+ilə Raspbian Buster -ə Başlama: Salam uşaqlar, bu yaxınlarda Raspberry pi təşkilatı Raspbian Buster adlanan yeni Raspbian ƏS -ni istifadəyə verdi. Raspberry pi üçün Raspbian -ın yeni bir versiyasıdır. Beləliklə, bu gün bu təlimatlarda Raspberry Buster OS -ni Raspberry pi 3 -ə necə quracağınızı öyrənəcəyik
Roomblock: Roomba, Raspberry Pi və RPLIDAR ilə ROS naviqasiyasını öyrənmək üçün bir platforma: 9 addım (şəkillərlə)
Roomblock: Roomba, Raspberry Pi və RPLIDAR ilə ROS naviqasiyasını öyrənmək üçün bir platforma: bu nədir? &Quot; Roomblock " bir Roomba, bir Raspberry Pi 2, bir lazer sensoru (RPLIDAR) və bir mobil batareyadan ibarət bir robot platformasıdır. Montaj çərçivəsi 3D printerlər tərəfindən edilə bilər. ROS naviqasiya sistemi otaqların xəritəsini düzəltməyə və