Съдържание:
- Стъпка 1: Какво работи и какво не
- Стъпка 2: Инсталиране на драйвери на Freenect и Freenect_stack
- Стъпка 3: Инсталиране на самостоятелна RTAB MAP
- Стъпка 4: Инсталиране на Rtabmap_ros
- Стъпка 5: Покажете времето
- Стъпка 6: Препратки
Видео: RGB-D SLAM с Kinect на Raspberry Pi 4 [Buster] ROS Мелодичен: 6 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:50
Миналата година написах статия за изграждането и инсталирането на ROS Melodic на нова (по това време) Raspberry Pi с Debian Buster OS. Статията е получила много внимание както тук на Instructables, така и на други платформи. Много се радвам, че помогнах на толкова много хора да инсталират успешно ROS на Raspberry Pi. В придружаващото видео също накратко демонстрирах получаване на дълбоко изображение от Kinect 360. По -късно много хора се свързаха с мен в LinkedIn и ме попитаха как успях да използвам Kinect с Raspberry Pi. Бях доста изненадан от въпроса, тъй като процесът на подготовка на Kinect ми отне около 3-4 часа и не изглеждаше изключително сложен. Споделих своите.bash_history файлове с всички хора, които ме питат за проблема и през април най-накрая намерих време да напиша статия за това как да инсталирам драйвери на Kinect и да изпълнявам RGB-D SLAM с RTAB-MAP ROS. Седмица безсънни нощи, след като започнах да пиша статията, сега разбирам защо толкова много хора ми зададоха този въпрос:)
Ще започна с кратко обяснение какви подходи са работили и кои не. След това ще обясня как да инсталирам драйвери на Kinect за използване с ROS Melodic и накрая как да настроите вашата машина за RGB-D SLAM с RTAB-MAP ROS.
Стъпка 1: Какво работи и какво не
Има няколко налични драйвери за Kinect на Raspberry Pi - два от тях се поддържат от ROS.
OpenNI драйвери - пакет openni_camera за ROS
libfreenect драйвери - пакет freenect_stack за ROS
Ако погледнете съответните им хранилища на GitHub, можете да откриете, че драйверът на OpenNI е актуализиран за последно преди години и на практика е EOL за дълго време. ibfreekinect от друга страна се актуализира своевременно. Същото за съответните им ROS пакети, freenect_stack беше пуснат за ROS мелодичен, докато последният дистрибутор openni_camera е изброил поддръжката за Fuerte …
Възможно е да се компилира и инсталира OpenNI драйвер и пакет openni_camera на Raspberry Pi за ROS Melodic, въпреки че при мен не работи. За да направите това, следвайте това ръководство, стъпки 1, 2, 3, на стъпки 2 и 3 премахнете флага "-mfloat-abi = softfp" от файла Platform/Linux/Build/Common/Platform. ARM (според съветите за това Проблем с Github). След това клонирайте пакета openni_camera към работното си пространство и го компилирайте с catkin_make. При мен обаче не работи, грешката беше, че създаването на генератор на дълбочина не успя. Причина: USB интерфейсът не се поддържа!
Използването на libfreenect и freenect_stack донесе успех в крайна сметка, но имаше доста проблеми за решаване и решението беше малко хакерско, макар и работещо много стабилно (1 час + продължителна работа).
Стъпка 2: Инсталиране на драйвери на Freenect и Freenect_stack
Предполагам, че използвате моето ROS Melodic Desktop изображение от тази статия. Ако искате да направите инсталация в различна среда, например ros_comm image или в Ubuntu за Raspberry Pi, уверете се, че имате достатъчно познания за ROS, за да разрешите проблеми, които могат да възникнат от тази разлика.
Нека започнем с изграждането на драйвери на libfreenect от източника, тъй като предварително изградената версия на хранилището apt-get е твърде остаряла.
sudo apt-get update
sudo apt-get install libusb-1.0-0-dev
git clone
cd libfreenect
mkdir build && cd build
cmake -L..
направете
sudo make install
Надяваме се, че процесът на изграждане ще бъде безпроблемен и пълен със зелени приятелски съобщения. След като инсталирате драйвера libfreenect, следващото нещо, което трябва да направите, е да инсталирате пакета freenect_stack за ROS. Има доста други пакети, от които зависи, ще трябва да ги клонираме и изградим заедно с catkin_make. Преди да започнете, уверете се, че работното ви място е правилно настроено и снабдено!
От папката на работното ви пространство catkin src:
git клонинг
git clone
git клонинг
git clone
git clone
git clone
Уау, това беше много клониране.
ПОСЛЕДНО РЕДАКТИРАНЕ: Както беше посочено от един от моите читатели, хранилището на vision_opencv трябва да бъде настроено на мелодичен клон. За това cd към src/vision_opencv и изпълнете
git checkout мелодичен
След това се върнете в папката работно пространство. За да проверите дали имаме зависимости за всички налични пакети, изпълнете тази команда:
rosdep install --from-paths src --ignore-src
Ако успешно сте клонирали всички необходими пакети, той ще поиска да изтеглите libfreekinect с apt-get. Отговорете не, тъй като вече сме го инсталирали от източника.
sudo apt-get install libbullet-dev libharfbuzz-dev libgtk2.0-dev libgtk-3-dev
catkin_make -j2
Време за чай;) или каквото и да е любимата ви напитка.
След като процесът на компилиране приключи, можете да опитате да стартирате стека kinect и да проверите дали той извежда правилно дълбочината и цветните изображения. Използвам Raspberry Pi без глава, така че трябва да стартирам RVIZ на настолния си компютър.
На Raspberry Pi do (Променете IP адреса на IP адреса на вашия Raspberry Pi!):
експортиране на ROS_MASTER_URI = https://192.168.0.108: 11311
експортиране ROS_IP = 192.168.0.108
roslaunch freenect_launch freenect.launch дълбочина_регистрация: = вярно
Ще видите изход като на снимка на екрана 1. "Спиране на RGB на устройството и потока на дълбочина." показва, че Kinect е готов, но все още нищо не е абонирано за неговите теми.
На вашия настолен компютър с инсталиран ROS Melodic направете:
експортиране на ROS_MASTER_URI = https://192.168.0.108: 11311
експортирайте ROS_IP = [вашият настолен компютър-ip] rviz
Сега би трябвало да можете да виждате RGB и Depth потоци от изображения в RVIZ, както на снимка на екрана 2 по -горе … но не едновременно.
Добре, тук започват хакерски неща. Прекарах 3 дни, опитвайки различни драйвери и подходи и нищо не проработи - веднага щом се опитах да получа достъп до два потока едновременно, Kinect ще започне да изтече времето, както можете да видите на Снимка 3. Опитах всичко: по -добро захранване, по -стари ангажименти на libfreenect и freenect_stack, спиране на usb_autosuspend, инжектиране на белина на USB портове (добре, не последният! не го правете, това е шега и не трябва да представлява технически съвет:)). Тогава в един от проблемите на Github видях акаунт на човек, който каза, че Kinect е нестабилен, докато не „заредят USB шината“чрез свързване на WiFi ключ. Опитах това и се получи. От една страна се радвам, че се получи. От друга страна, някой наистина трябва да поправи това. Е, междувременно като (някак) поправихме това, нека преминем към следващата стъпка.
Стъпка 3: Инсталиране на самостоятелна RTAB MAP
Първо трябва да инсталираме куп зависимости:
Въпреки, че за PCL е наличен предварително изграден пакет armhf, ще трябва да го компилираме от източника поради този проблем. Консултирайте се с хранилището на PCL GitHub, за да видите как да го компилирате от източника.
sudo apt-get install libvtk6-dev libvtk6-qt-dev libvtk6-java libvtk6-jni
sudo apt-get install libopencv-dev cmake libopenni2-dev libsqlite3-dev
Сега нека клонираме rtab map самостоятелен пакет git хранилище в нашата домашна папка и да го изградим. Използвах последната версия (0.18.0).
git clone
cd rtabmap/build
cmake..
направи -j2
sudo make install
sudo ldconfig rtabmap
Сега, когато сме съставили самостоятелна RTAB MAP, можем да преминем към последната стъпка - компилиране и инсталиране на ROS обвивка за RTAB MAP, rtabmap_ros.
Стъпка 4: Инсталиране на Rtabmap_ros
Ако сте стигнали дотук, вероятно вече знаете тренировката:) Клонирайте хранилището rtabmap_ros във вашата папка src работно пространство catkin. (Изпълнете следващата команда от папката src в работното пространство на catkin!)
git clone
Ще ни трябват и тези ROS пакети, че rtabmap_ros зависи от:
git клонинг
git clone
git clone
git clone
git clone
Преди да започнете компилация, можете да се уверите, че не пропускате никакви зависимости със следната команда:
rosdep install --from-paths src --ignore-src
Инсталирайте повече зависимости от ap-get (те няма да прекъснат свързването, но ще хвърлят грешка по време на компилацията)
sudo apt-get install libsdl-image1.2-dev
След това преминете към папката на работното пространство и започнете да компилирате:
cd..
catkin_make -j2
Надявам се, че не сте поставили любимата си напитка за компилация никъде твърде далеч. След като компилацията приключи, ние сме готови да направим картографирането!
Стъпка 5: Покажете времето
Направете този хакерски трик, като добавите нещо като WiFi или Bluetooth ключ към USB порт - използвах 2 USB 2.0 порта, единия за Kinect, другият за WiFi ключа.
На Raspberry Pi do (Променете IP адреса на IP адреса на вашия Raspberry Pi!): 1 -ви терминал:
експортиране на ROS_MASTER_URI = https://192.168.0.108: 11311
експортиране ROS_IP = 192.168.0.108
roslaunch freenect_launch freenect.launch дълбочина_регистрация: = true data_skip: = 2
2 -ри терминал:
roslaunch rtabmap_ros rgbd_mapping.launch rtabmap_args: = -delete_db_on_start --Vis/MaxFeatures 500 --Mem/ImagePreDecimation 2 --Mem/ImagePostDecimation 2 --Kp/DetectorStrategy 6 --OdomF2Modom2: = невярно
Ще видите изход, както на Екранна снимка 1. "Спиране на RGB на устройството и потока на дълбочина." показва, че Kinect е готов, но все още нищо не е абонирано за неговите теми. Във втория терминал трябва да виждате съобщения за качеството на odom. Ако преместите Kinect твърде бързо, качеството на odom ще достигне 0 и ще трябва да се преместите на предишно местоположение или да започнете от чиста база данни.
На вашия настолен компютър с инсталиран пакет ROS Melodic и rtab_map (препоръчвам ви да използвате компютъра Ubuntu за това, тъй като готовите пакети са налични за архитектура amd64):
експортиране на ROS_MASTER_URI = https://192.168.0.108: 11311
експортиране на ROS_IP = [вашият настолен компютър-ip]
rviz
Добавете дисплеите MapGraph и MapCloud към rviz и изберете съответните теми, идващи от rtab_map. Е, това е, сладкият вкус на победата! Продължете и направете малко картографиране:)
Стъпка 6: Препратки
Докато пишех тази статия, имах редица ресурси, които консултирах, най -вече форуми и проблеми с GitHub. Ще ги оставя тук.
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
Добавете ме в LinkedIn, ако имате въпроси и се абонирайте за канала ми в YouTube, за да получавате известия за по -интересни проекти, включващи машинно обучение и роботика.
Препоръчано:
ROS Melodic на Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8: 6 стъпки
ROS Melodic на Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8: Тази статия ще обхваща процеса на инсталиране на ROS Melodic Morenia на Raspberry Pi 4 с най -новия Debian Buster и как да използвате RPLIDAR A1M8 с нашата инсталация. Тъй като Debian Buster беше официално пуснат само преди няколко седмици (към момента
Инсталирайте ROS Kinetic, TurtleBot3, Raspicam на Raspberry Pi 4b: 5 стъпки
Инсталирайте ROS Kinetic, TurtleBot3, Raspicam на Raspberry Pi 4b: TurtleBot3 Burger се доставя с Raspberry Pi 3 B/B+ и не поддържа новия (от 9/2019 г.) Raspberry Pi 4b. Следвайте стъпките по -долу, за да накарате TurtleBot3 да работи на Raspberry Pi 4b, включително изграждането на ROS Kinetic от източници на Raspberry Pi 4b Raspbian
Първи стъпки с ROS Melodic на Raspberry Pi 4 Модел B: 7 стъпки
Първи стъпки с ROS Melodic на Raspberry Pi 4 Модел B: Роботната операционна система (ROS) е набор от софтуерни библиотеки и инструменти, използвани за изграждане на роботизирани системи и приложения. Настоящата версия за дългосрочно обслужване на ROS е Melodic Morenia. ROS Melodic е съвместим само с Ubuntu 18.04 Bionic Beaver
Мелодичен глас: 4 стъпки
Мелодичен глас: La conception de cet instrument est assez particuli è re et peu commune mais tr è s simple à утилизатор. Et pour ce faire, on a bien fait recours au circuit int é gr é. Той оуи! C'est le coeur m ê me de Melodic Voice qu
Инсталиране на Raspbian Buster на Raspberry Pi 3 - Първи стъпки с Raspbian Buster с Raspberry Pi 3b / 3b+: 4 стъпки
Инсталиране на Raspbian Buster на Raspberry Pi 3 | Първи стъпки с Raspbian Buster с Raspberry Pi 3b / 3b+: Здравейте момчета, наскоро организацията Raspberry pi стартира нова Raspbian OS, наречена Raspbian Buster. Това е нова версия на Raspbian за Raspberry pi's. Така че днес в тези инструкции ще научим как да инсталирате Raspbian Buster OS на вашия Raspberry pi 3