Բովանդակություն:
- Քայլ 1: Ինչն էր աշխատում և ինչը ՝ ոչ
- Քայլ 2: Freenect վարորդների և Freenect_stack- ի տեղադրում
- Քայլ 3. Տեղադրեք ինքնուրույն RTAB քարտեզ
- Քայլ 4: Rtabmap_ros- ի տեղադրում
- Քայլ 5: Showույց տալ ժամանակը
- Քայլ 6: Հղումներ
Video: RGB-D SLAM With Kinect on Raspberry Pi 4 [Buster] ROS Melodic: 6 Steps
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:46
Անցյալ տարի ես հոդված գրեցի 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 melodic- ի համար, մինչդեռ նա ամենավերջին դիստրոյցը 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 թողարկում): Այնուհետև clone openni_camera փաթեթը ձեր catkin աշխատանքային տարածքի վրա և կազմեք 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 թարմացում
sudo apt-get տեղադրել libusb-1.0-0-dev
git կլոն
cd libfreenect
mkdir build && cd build
սմակե -Լ..
կատարել
sudo make install
Հուսանք, որ շինարարական գործընթացը կլինի առանց իրադարձությունների և լի կանաչ բարեկամական հաղորդագրություններով: Libfreenect վարորդը տեղադրելուց հետո հաջորդ քայլը ROS- ի համար freenect_stack փաթեթը տեղադրելն է: Կան մի քանի այլ փաթեթներ, որոնցից կախված է, մենք ստիպված կլինենք դրանք կլոնավորել և միասին կառուցել catkin_make- ով: Նախքան սկսելը, համոզվեք, որ ձեր կատուի աշխատանքային տարածքը պատշաճ կերպով կազմված և աղբյուրված է:
Ձեր catkin workspace src թղթապանակից.
git կլոն
git կլոն
git կլոն
git կլոն
git կլոն
git կլոն
Վայ, դա շատ կլոնավորում էր:
ՎԵՐ ED ԽՄԲՈԹՅՈՆ. Ինչպես նշվեց իմ ընթերցողներից մեկի կողմից, vision_opencv շտեմարանը պետք է դնել մեղեդային ճյուղի վրա: Այդ cd- ի համար src/vision_opencv և կատարեք
git checkout մեղեդային
Հետո վերադառնաք ձեր catkin աշխատանքային տարածքի թղթապանակ: Ստուգելու համար, թե արդյոք մենք կախվածություն ունենք բոլոր առկա փաթեթների համար, կատարեք այս հրամանը.
rosdep install-from-paths src --ignore-src
Եթե դուք հաջողությամբ կլոնավորեք բոլոր անհրաժեշտ փաթեթները, այն կպահանջի ներբեռնել libfreekinect- ը apt-get- ով: Պատասխան ՝ ոչ, քանի որ մենք այն արդեն տեղադրել ենք աղբյուրից:
sudo apt-get տեղադրել libbullet-dev libharfbuzz-dev libgtk2.0-dev libgtk-3-dev
catkin_make -j2
Թեյի ժամանակ;) կամ ինչ էլ որ լինի ձեր սիրած ըմպելիքը:
Կոմպիլյացիայի գործընթացն ավարտվելուց հետո կարող եք փորձել գործարկել kinect stack- ը և ստուգել, արդյոք այն պատշաճ կերպով դուրս է բերում խորությունը և գունավոր պատկերները: Ես օգտագործում եմ Raspberry Pi- ն անգլուխ, այնպես որ ես պետք է աշխատեմ RVIZ- ով իմ աշխատասեղանի համակարգչում:
Raspberry Pi do (Փոխեք IP հասցեն ձեր Raspberry Pi- ի IP հասցեով):
արտահանել ROS_MASTER_URI = https://192.168.0.108: 11311
արտահանում ROS_IP = 192.168.0.108
roslaunch freenect_launch freenect.launch deep_registration: = true
Դուք կտեսնեք ելքը, ինչպես Սքրինշոթ 1 -ում: «Սարքի RGB և Խորքային հոսքի հոսքի դադարեցում»: ցույց է տալիս, որ Kinect- ը պատրաստ է, բայց դեռևս ոչինչ բաժանորդագրված չէ դրա թեմաներին:
ROS Melodic- ով տեղադրված ձեր աշխատասեղանի համակարգչում կատարեք.
արտահանել ROS_MASTER_URI = https://192.168.0.108: 11311
արտահանել ROS_IP = [your-desktop-computer-ip] rviz
Այժմ դուք պետք է կարողանաք տեսնել RGB և Depth պատկերի հոսքերը RVIZ- ով, ինչպես վերը նշված 2 -րդ նկարում … բայց ոչ միևնույն ժամանակ:
Լավ, ահա թե որտեղից են սկսվում հաքերային իրերը: Ես 3 օր անցկացրի տարբեր վարորդների և մոտեցումների վրա, և ոչինչ չստացվեց. Հենց որ փորձեի միաժամանակ երկու հոսք մուտք գործել, Kinect- ը կսկսեր ժամանակի ավարտը, ինչպես տեսնում եք Սքրինշոթ 3 -ում: Ես փորձեցի ամեն ինչ. freenect_stack, դադարեցնել usb_autosuspend- ը, սպիտակեցում ներարկել USB պորտերին (լավ, ոչ վերջինը: մի արա դա, դա կատակ է և չպետք է տեխնիկական խորհուրդ լինի:)): Հետո Github- ի համարներից մեկում ես տեսա մի մարդու պատմություն, ով ասաց, որ իրենց Kinect- ն անկայուն է, մինչև նրանք «չբեռնեցին USB ավտոբուսը» `միացնելով WiFi դոնգը: Ես դա փորձեցի և ստացվեց: Մի կողմից, ուրախ եմ, որ ստացվեց: Մյուս կողմից, ինչ -որ մեկը իսկապես պետք է շտկի դա: Դե, մինչդեռ (մի տեսակ) դա շտկելով, եկեք անցնենք հաջորդ քայլին:
Քայլ 3. Տեղադրեք ինքնուրույն RTAB քարտեզ
Նախ, մենք ունենք մի շարք կախվածություններ, որոնք պետք է տեղադրվեն.
Չնայած PCL- ի համար առկա է նախապես կառուցված armhf փաթեթ, մենք այս խնդրի պատճառով պետք է այն կազմենք աղբյուրից: Խորհրդակցեք PCL GitHub պահեստի հետ ՝ տեսնելու, թե ինչպես այն կազմել աղբյուրից:
sudo apt-get տեղադրել libvtk6-dev libvtk6-qt-dev libvtk6-java libvtk6-jni
sudo apt-get տեղադրել 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- ի համար ROS փաթաթան կազմել և տեղադրել, rtabmap_ros:
Քայլ 4: Rtabmap_ros- ի տեղադրում
Եթե այդքան հեռու եք հասել, հավանաբար արդեն գիտեք վարժությունը:) Կլոնավորեք rtabmap_ros պահեստը ձեր catkin workspace src պանակին: (Կատարեք հաջորդ հրամանը catkin workspace src թղթապանակից):
git կլոն
Մեզ նույնպես պետք կգան այս ROS փաթեթները, այդ rtabmap_ros- ը կախված է.
git կլոն
git կլոն
git կլոն
git կլոն
git կլոն
Նախքան կազմելը սկսելը, կարող եք համոզվել, որ որևէ կախվածություն բաց չեք թողնում հետևյալ հրամանով.
rosdep install-from-paths src --ignore-src
Տեղադրեք ավելի շատ կախվածություններ ap-get- ից (դրանք չեն ընդհատի կապը, այլ կազմման ընթացքում սխալ կթողնեն)
sudo apt-get տեղադրել libsdl-image1.2-dev
Այնուհետև անցեք ձեր catkin աշխատանքային տարածքի թղթապանակ և սկսեք կազմել.
cd..
catkin_make -j2
Հուսով եմ, որ ձեր սիրած հավաքածուն խմիչքը ոչ մի տեղ շատ հեռու չեք դրել: Կազմման ավարտից հետո մենք պատրաստ ենք կատարել քարտեզագրումը:
Քայլ 5: Showույց տալ ժամանակը
Կատարեք այդ հնարքային հնարքը ՝ USB պորտին WiFi կամ Bluetooth dongle նման բան ավելացնելով. Ես օգտագործում էի 2 USB 2.0 նավահանգիստ, մեկը Kinect- ի, մյուսը WiFi dongle- ի համար:
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
2 -րդ տերմինալ.
roslaunch rtabmap_ros rgbd_mapping.launch rtabmap_args.: = կեղծ
Դուք կտեսնեք ելքը, ինչպես Սքրինշոթ 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- ը մեր տեղադրմամբ: Քանի որ Դեբիան Բասթերը պաշտոնապես ազատ էր արձակվել ընդամենը մի քանի շաբաթ առաջ (տվյալ պահին
Տեղադրեք 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- ի վրա, ներառյալ Raspberry Pi 4b Raspbian- ի աղբյուրներից ROS Kinetic- ի ստեղծումը
Սկսելով ROS Melodic- ով Raspberry Pi 4 մոդել B: 7 քայլ
Սկսելով ROS Melodic- ով Raspberry Pi 4 -ի մոդել B: Robot օպերացիոն համակարգը (ROS) ծրագրային գրադարանների և գործիքների մի շարք է, որոնք օգտագործվում են ռոբոտային համակարգեր և ծրագրեր կառուցելու համար: ROS- ի ներկայիս երկարաժամկետ ծառայության տարբերակը Melodic Morenia- ն է: ROS Melodic- ը համատեղելի է միայն Ubuntu 18.04 Bionic Beaver- ի հետ
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- ի համար: Այսպիսով, այսօր այս ձեռնարկում մենք կսովորենք, թե ինչպես տեղադրել Raspbian Buster OS ձեր Raspberry pi 3 -ի վրա
ROS MoveIt Robotic Arm Մաս 2. Robot Controller: 6 Steps
ROS MoveIt Robotic Arm Մաս 2: Robot Controller ՝ https://github.com/AIWintermuteAI/ros-moveit-arm.git Հոդվածի նախորդ մասում մենք ստեղծել ենք URDF և XACRO ֆայլեր մեր ռոբոտացված թևի համար և գործարկել ենք RVIZ- ը ռոբոտացված ձեռքը մոդելավորված միջավայրում: Այս անգամ մենք դա կանենք ռեալի հետ