Мазмұны:
- 1 -қадам: не жұмыс істеді және не істемеді
- 2 -қадам: Freenect драйверлері мен Freenect_stack орнату
- 3 -қадам: RTAB MAP картасын орнату
- 4 -қадам: Rtabmap_ros орнату
- 5 -қадам: Уақытты көрсету
- 6 -қадам: Әдебиеттер
Бейне: RGB-D SLAM Kinect on Raspberry Pi 4 [Buster] ROS әуендік: 6 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:23
Өткен жылы мен ROS Melodic -ті Debian Buster ОЖ -мен жаңа Raspberry Pi -ге құру және орнату туралы мақала жаздым. Мақала нұсқаулықтарда да, басқа платформаларда да үлкен назар аударды. Мен Raspberry Pi -ге ROS -ты сәтті орнатуға көптеген адамдарға көмектескеніме өте қуаныштымын. Ілеспе видеода мен Kinect 360 -тан тереңдіктің суретін алуды қысқаша көрсеттім. Кейінірек көптеген адамдар менімен LinkedIn -де байланысып, Kinect -ті Raspberry Pi -мен қалай қолданғанымды сұрады. Мен бұл сұраққа таң қалдым, себебі Kinect-ті дайындау процесі маған шамамен 3-4 сағатты алды және өте күрделі болып көрінбеді. Мен.bash_history файлдарымды барлық адамдармен сұрадым және сәуірде Kinect драйверлерін қалай орнату туралы және RTAB-MAP ROS көмегімен RGB-D SLAM орындау туралы мақала жазуға уақыт таптым. Мақаланы жазуды бастағаннан кейін ұйқысыз түндер апталығы, неге маған көптеген адамдар бұл сұрақты қойғанын түсінемін:)
Мен қысқаша түсіндіруден бастаймын, қандай әдістер жұмыс істеді және қайсысы болмады. Содан кейін мен ROS Melodic-те пайдалану үшін Kinect драйверлерін қалай орнату керектігін және соңында RTAB-MAP ROS көмегімен RGB-D SLAM құрылғысын қалай орнату керектігін түсіндіремін.
1 -қадам: не жұмыс істеді және не істемеді
Kinect үшін Raspberry Pi үшін бірнеше драйверлер бар - олардың екеуіне ROS қолдау көрсетеді.
OpenNI драйверлері - ROS үшін openni_camera пакеті
libfreenect драйверлері - ROS үшін freenect_stack пакеті
Егер сіз олардың GitHub репозиторийлеріне қарасаңыз, OpenNI драйвері соңғы рет бірнеше жыл бұрын жаңартылғанын және іс жүзінде ұзақ уақыт бойы EOL екенін көре аласыз. ibfreekinect екінші жағынан уақытылы жаңартылып отырады. Сәйкес ROS пакеттері үшін, freenect_stack ROS әуеніне шығарылды, ал openni_camera қолдау көрсеткен соңғы тарату - бұл Fuerte …
ROS Melodic үшін Raspberry Pi -де OpenNI драйвері мен openni_camera пакетін құрастыруға және орнатуға болады, бірақ бұл мен үшін жұмыс істемеді. Мұны істеу үшін осы нұсқаулықты орындаңыз, 1, 2, 3 қадамдар, 2 және 3 қадамдарда Platform/Linux/Build/Common/Platform. ARM файлынан «-mfloat-abi = softfp» жалаушасын алып тастаңыз (осы бойынша кеңес бойынша) Github мәселесі). Содан кейін openni_camera бумасын catkin жұмыс кеңістігіне клондап, catkin_make көмегімен құрастырыңыз. Бұл мен үшін жұмыс істемеді, бірақ тереңдік генераторын құру қатесі сәтсіз болды. Себеп: USB интерфейсіне қолдау көрсетілмейді!
Libfreenect және freenect_stack пайдалану ақыр соңында табысқа жетті, бірақ шешуге болатын мәселелер өте көп болды және шешім өте тұрақты жұмыс істегенмен (сәл 1 сағат + жалғастырылған жұмыс) сәл қате болды.
2 -қадам: Freenect драйверлері мен Freenect_stack орнату
Сіз бұл мақалада менің ROS Melodic Desktop суретін қолданасыз деп ойлаймын. Егер сіз басқа ортада, мысалы ros_comm кескінінде немесе Ubuntu Raspberry Pi үшін орнатқыңыз келсе, осы айырмашылықтан туындауы мүмкін мәселелерді шешу үшін ROS туралы жеткілікті біліміңіз бар екеніне көз жеткізіңіз.
Libfreenect драйверлерін көзден құрудан бастайық, себебі apt-get репозиторийінің алдын ала жасалған нұсқасы тым ескірген.
sudo apt-get жаңартуы
sudo apt-get install libusb-1.0-0-dev
git clone
cd libfreenect
mkdir build && cd build
смейк -Л..
жасау
sudo make install
Құрылыс процесі біркелкі және жасыл достық хабарламаларға толы болады деп үміттенемін. Libfreenect драйверін орнатқаннан кейін, келесі қадам - ROS үшін freenect_stack бумасын орнату. Бұл басқа пакеттерге байланысты, біз оларды клондауымыз керек және catkin_make көмегімен бірге құрастыруымыз керек. Бастамас бұрын, catkin жұмыс кеңістігінің дұрыс орнатылғанына және алынғанына көз жеткізіңіз!
Catkin жұмыс кеңістігінің src қалтасынан:
git клоны
git клоны
git клоны
git клоны
git клоны
git клоны
Уа, бұл көп клондау болды.
КЕДІН ӨҢДЕУ: Менің оқырмандарымның бірі атап өткендей, vision_opencv репозиторийі әуезді тармаққа орнатылуы керек. Бұл cd үшін src/vision_opencv және орындаңыз
git checkout әуенді
Содан кейін catkin жұмыс кеңістігі қалтасына оралыңыз. Барлық пакеттерге тәуелділікті тексеру үшін бұл пәрменді орындаңыз:
rosdep орнату --from-paths src --ignore-src
Егер сіз барлық қажетті пакеттерді клондаған болсаңыз, ол libfreekinect-ті apt-get арқылы жүктеуді сұрайды. Жоқ деп жауап беріңіз, өйткені біз оны көзден орнаттық.
sudo apt-get libbullet-dev libharfbuzz-dev libgtk2.0-dev libgtk-3-dev орнатыңыз
catkin_make -j2
Шай уақыты;) немесе сіздің сүйікті сусыныңыз.
Компиляция процесі аяқталғаннан кейін сіз кинект стегін іске қосып, оның тереңдігі мен түрлі -түсті суреттерді дұрыс шығаратынын тексере аласыз. Мен Raspberry Pi -ді бассыз қолданамын, сондықтан маған RVIZ -ді жұмыс үстелі компьютерінде іске қосу керек.
Raspberry Pi -де (IP мекенжайын Raspberry Pi -дің IP -мекен -жайына өзгертіңіз!):
экспорттау 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 = [your-desktop-computer-ip] rviz экспорттау
Енді сіз RVIZ -де RGB және тереңдіктегі сурет ағындарын жоғарыдағы 2 -скриншоттағыдай көре аласыз … бірақ бір уақытта емес.
Жарайды, бұл жерде хакерлік заттар басталады. Мен 3 күн бойы әр түрлі драйверлер мен тәсілдерді сынап көрдім, бірақ ештеңе нәтиже бермеді - мен бір мезгілде екі ағынға қол жеткізуге тырысқанымда, Kinect 3 -ші скриншотта көрсетілгендей уақытты бастайды. Мен бәрін сынап көрдім: жақсы қуат көзі, libfreenect -тің ескі міндеттері freenect_stack, usb_autosuspend тоқтату, USB порттарына ағартқыш енгізу (жақсы, соңғы емес! мұны жасамаңыз, бұл әзіл және техникалық кеңес болмауы керек:)). Содан кейін Github басылымдарының бірінде мен Kinect тұрақсыз деп айтқан адамның есебін көрдім, олар WiFi кілтін қосу арқылы «USB шинасын жүктегенше». Мен мұны көрдім және ол жұмыс істеді. Бір жағынан, бұл жұмыс істегеніне қуаныштымын. Екінші жағынан, біреу оны түзетуі керек. Сонымен, оны түзете отырып, келесі қадамға өтейік.
3 -қадам: RTAB MAP картасын орнату
Алдымен бізде көптеген тәуелділіктер орнатылады:
PCL үшін қол жетімді armhf пакеті бар болса да, біз бұл мәселеге байланысты оны көзден жинауымыз керек. Оны көзден қалай құрастыру керектігін білу үшін PCL GitHub репозиторийіне жүгініңіз.
sudo apt-get libvtk6-dev libvtk6-qt-dev libvtk6-java libvtk6-jni орнатыңыз
sudo apt-get install libopencv-dev cmake libopenni2-dev libsqlite3-dev
Енді rtab картасының оқшауланған пакеттік git репозиторийін үй қалтасына клондап, оны құрайық. Мен соңғы шығарылымды қолдандым (0.18.0).
git клоны
cd rtabmap/build
смейк..
жасау -j2
sudo make install
sudo ldconfig rtabmap
Енді біз RTAB MAP дербес картасын құрастырған кезде, біз соңғы қадамға - RTAB MAP, Rtabmap_ros үшін ROS орауышын құрастыруға және орнатуға көшуге болады.
4 -қадам: Rtabmap_ros орнату
Егер сіз бұған дейін жетсеңіз, сіз қазірге дейін жаттығуды білетін шығарсыз:) rtabmap_ros репозиторийін catkin жұмыс кеңістігінің src қалтасына клондау. (Catkin workspace src қалтасынан келесі пәрменді орындаңыз!)
git клоны
Бізге ROS пакеттері де қажет болады, бұл rtabmap_ros байланысты:
git клоны
git клоны
git клоны
git клоны
git клоны
Компиляцияны бастамас бұрын, келесі пәрменмен тәуелділіктің жоқтығына көз жеткізуге болады:
rosdep орнату --from-paths src --ignore-src
Ap-get-тен қосымша тәуелділіктерді орнатыңыз (бұл байланыстыруды үзбейді, бірақ компиляция кезінде қате жібереді)
sudo apt-get libsdl-image1.2-dev орнатыңыз
Содан кейін catkin жұмыс кеңістігінің қалтасына өтіп, компиляцияны бастаңыз:
CD..
catkin_make -j2
Сіз сүйікті компиляция сусынын тым алыс қоймадыңыз деп үміттенемін. Компиляция аяқталғаннан кейін біз картаны жасауға дайынбыз!
5 -қадам: Уақытты көрсету
USB портына WiFi немесе Bluetooth кілті сияқты нәрсені қосу арқылы осылай жасаңыз - мен 2 USB 2.0 портын қолдандым, біреуі Kinect үшін, екіншісі WiFi кілті үшін.
Raspberry Pi -де (IP мекенжайын Raspberry Pi -дің IP -мекен -жайына өзгертіңіз!): 1 -ші терминал:
экспорттау ROS_MASTER_URI = https://192.168.0.108: 11311
экспорттау ROS_IP = 192.168.0.108
roslaunch freenect_launch freenect.launch deep_registration: = true data_skip: = 2
Екінші терминал:
rtabbap 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--: = жалған
Сіз шығуды Скриншот 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
Rviz -ге MapGraph және MapCloud дисплейлерін қосыңыз және 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 мелодикалық Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8: 6 қадам
Rasp Melodic Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8: Бұл мақала ROS Melodic Morenia -ны Raspberry Pi 4 -ке соңғы Debian Buster -де орнату процесін және RPLIDAR A1M8 -ді біздің қондырғымен қалай қолдану керектігін қарастырады. Debian Buster бірнеше апта бұрын ресми түрде шығарылғаннан бері (қазіргі уақытта
Raspberry Pi 4 Model B -те ROS Melodic -пен жұмысты бастау: 7 қадам
Raspberry Pi 4 Model B ROS Melodic -пен жұмыс істеуді бастау: Робот операциялық жүйесі (ROS) - бұл роботтық жүйелер мен қосымшаларды құруға арналған бағдарламалық қамтамасыз ету кітапханалары мен құралдарының жиынтығы. ROS -тың ұзақ мерзімді қызмет көрсету нұсқасы - Melodic Morenia. ROS Melodic тек Ubuntu 18.04 Bionic Beaver -мен үйлесімді
Raspberry Pi 3 -ке Raspbian Buster орнату - Raspberry Pi 3b / 3b+бар Raspbian Buster бағдарламасын бастау: 4 қадам
Raspberry Pi 3 -ке Raspbian Buster орнату | Raspberry Pi 3b / 3b+көмегімен Raspbian Buster -ды бастау: Сәлеметсіздер ме, балалар, жақында Raspberry pi ұйымы Raspbian Buster деп аталатын жаңа Raspbian ОЖ -ны іске қосты. Бұл Raspberry pi үшін Raspbian жаңа нұсқасы. Бүгін біз осы нұсқаулықта Raspbian Buster ОЖ -ны Raspberry pi 3 -ке қалай орнатуды үйренеміз
Шпик -Buster немесе ұзартқыш сымның сызбасын жасау: 5 қадам
Шпик -Buster немесе Ұзартқыш сымның пішінін сызу: Бұл жазбада мен сізге Spike Buster немесе Ұзартқыш сымды нөлден қалай жасау керектігін көрсетемін. Алдымен бөліктер тізімін көрейік
Roomblock: Roomba, Raspberry Pi және RPLIDAR көмегімен ROS навигациясын үйренуге арналған платформа: 9 қадам (суреттермен)
Roomblock: Roomba, Raspberry Pi және RPLIDAR көмегімен ROS навигациясын үйренуге арналған платформа: бұл не? &Quot; Roomblock " бұл робот платформасы - Roomba, Raspberry Pi 2, лазерлік сенсор (RPLIDAR) мен мобильді батареядан тұрады. Монтаждық жақтауды 3D принтерлермен жасауға болады. ROS навигациялық жүйесі бөлмелердің картасын жасауға және i