Мазмуну:

RGB-D SLAM Raspberry Pi 4 боюнча Kinect менен [Buster] ROS Мелодикалык: 6 кадам
RGB-D SLAM Raspberry Pi 4 боюнча Kinect менен [Buster] ROS Мелодикалык: 6 кадам

Video: RGB-D SLAM Raspberry Pi 4 боюнча Kinect менен [Buster] ROS Мелодикалык: 6 кадам

Video: RGB-D SLAM Raspberry Pi 4 боюнча Kinect менен [Buster] ROS Мелодикалык: 6 кадам
Video: RGB-D SLAM With Kinect on Raspberry Pi 4 ROS Melodic 2024, Июль
Anonim
Image
Image

Өткөн жылы мен ROS Melodicти Debian Buster OS менен жаңы (ошол кезде) Raspberry Piге куруу жана орнотуу жөнүндө макала жазгам. Бул макалада Instructablesде да, башка платформаларда да көп көңүл бурулду. Raspberry Piге ROSту ийгиликтүү орнотууга көптөгөн адамдарга жардам бергениме абдан кубанычтамын. Коштоочу видеодо мен дагы кыскача Kinect 360тан тереңдиктин сүрөтүн алууну көрсөттүм. Кийинчерээк көптөгөн адамдар мени менен LinkedIn аркылуу байланышып, Kinectти Raspberry Pi менен кантип колдоно алдым деп сурашты. Мен бул суроого таң калдым, анткени Kinectти даярдоо процесси мага 3-4 саатка созулган жана өтө татаал көрүнгөн эмес. Мен.bash_history файлдарымды бардык адамдар менен бөлүшүп, маселе боюнча сурадым жана апрель айында акыры Kinect драйверлерин кантип орнотуу жана RTAB-MAP ROS менен RGB-D SLAMди аткаруу боюнча макала жазууга убакыт таптым. Макаланы жаза баштагандан кийин бир жума уктабай, түшүндүм, эмне үчүн көп адамдар мага бул суроону беришти:)

Мен кыскача түшүндүрүүдөн баштайм, кандай ыкмалар иштеди, кайсынысы жок. Андан кийин мен RIN 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-кадамдарда "-mfloat-abi = softfp" желегин Platform/Linux/Build/Common/Platform. ARM файлынан алып салыңыз (бул боюнча кеңеш боюнча) Github маселеси). Андан кийин openni_camera пакетин catkin жумушчу мейкиндигиңизге клондоп, catkin_make менен түзүңүз. Бул мен үчүн иштеген жок, ката тереңдик генераторун түзбөй калды. Себеп: USB интерфейси колдоого алынбайт!

Libfreenect жана freenect_stackти колдонуу акыры ийгиликке алып келди, бирок бир топ көйгөйлөр чечилди жана чечим абдан туруктуу иштеп турса да (1 саат + уланган операция) бир аз бузуку болду.

2 -кадам: Freenect Айдоочуларын жана Freenect_stackти орнотуу

Freenect Айдоочуларын жана Freenect_stackти орнотуу
Freenect Айдоочуларын жана Freenect_stackти орнотуу

Мен бул макаладан менин ROS Melodic Desktop сүрөтүмдү колдоносуз деп ойлойм. Эгерде сиз башка чөйрөдө, мисалы ros_comm сүрөтүндө же Raspberry Pi үчүн Ubuntuдо орноткуңуз келсе, анда бул айырмачылыктан келип чыгышы мүмкүн болгон көйгөйлөрдү чечүү үчүн ROS жөнүндө жетиштүү билимге ээ экениңизди текшериңиз.

Келгиле, libfreenect драйверлерин булактан куруудан баштайлы, анткени apt-get репозиторийинин алдын ала курулган версиясы өтө эскирген.

sudo apt-get update

sudo apt-get libusb-1.0-0-dev орнотуу

git clone

cd libfreenect

mkdir build && cd build

cmake -L..

жасоо

sudo make install

Үмүт кылабыз, куруу процесси эч кандай кыйынчылыксыз жана жашыл достук билдирүүлөргө толот. Libfreenect драйверин орноткондон кийин, кийинки иш - ROS үчүн freenect_stack пакетин орнотуу. Башка көптөгөн пакеттер бар, булардан көз каранды, биз аларды клондоштуруп, catkin_make менен бирге курушубуз керек. Баштоодон мурун, catkin жумушчу мейкиндигиңиздин туура орнотулганын жана булак экенин текшериңиз!

Сиздин catkin жумушчу мейкиндигиңиздеги src папкасынан:

git клону

git клону

git clone

git клону

git клону

git клону

Ой, бул көп клондоштуруу болду.

КИЙИН ӨНӨКТӨӨ: Менин окурмандарымдын бири белгилегендей, vision_opencv репозиторийи обондуу бутакка коюлушу керек. Бул CD үчүн src/vision_opencv жана аткаруу

git checkout мелодиялык

Андан кийин catkin workpace папкаңызга кайтыңыз. Бардык пакеттерге көз карандылыгыбызды текшерүү үчүн, бул буйрукту аткарыңыз:

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

Чай убактысы;) же сүйүктүү суусундугуңуз.

Компиляция процесси аяктагандан кийин, kinect стекин ишке киргизип, анын тереңдигин жана түстүү сүрөттөрдү туура чыгарганын текшерип көрсөңүз болот. Мен Raspberry Pi'ни башсыз колдоном, андыктан RVIZди рабочий компьютеримде иштетишим керек.

On 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 жана тереңдиктеги сүрөт агымдарын жогорудагы Скриншот 2дегидей көрүшүңүз керек … бирок ошол эле учурда эмес.

Макул, бул жерде хакердик нерселер башталат. Мен 3 күн ар кандай драйверлерди жана ыкмаларды сынап көрдүм, бирок эч нерсе иштеген жок - мен бир эле убакта эки агымга кирүүгө аракет кылар замат, Kinect скриншот 3тө көрүнүп тургандай убакыттын башталышын баштайт. freenect_stack, usb_autosuspend токтотуу, USB портторуна агартуучу каражаттарды киргизүү (макул, акыркы эмес! муну жасабаңыз, бул тамаша жана техникалык кеңеш болбошу керек:)). Андан кийин, Githubдун бир санында, мен алардын Kinectти туруксуз деп айткан адамдын эсебин көрдүм, алар WiFi донглун туташтырып "USB шинаны жүктөгөнгө чейин". Мен муну сынап көрдүм жана ал иштеди. Бир чети, анын иштегенине кубанычтамын. Экинчи жагынан, кимдир бирөө муну оңдошу керек. Муну, ошол эле учурда (кандайдыр бир) оңдоп, кийинки кадамга өтөлү.

3 -кадам: RTAB MAP картасын орнотуу

Өз алдынча RTAB картасын орнотуу
Өз алдынча 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 картанын өзүнчө пакет гиттин репозиторийин клон кылып, аны куралы. Мен акыркы чыгарылышын колдондум (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 орнотулууда
Rtabmap_ros орнотулууда

Эгер сиз буга чейин жетсеңиз, анда сиз азырынча бургулоону билесиз:) rtabmap_ros репозиторийин catkin workpace src папкасына клондоштуруңуз. (Сизден кийинки команданы аткарыңыз жумушчу мейкиндиги 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 workpace папкаңызга өтүңүз жана компиляциялоону баштаңыз:

CD..

catkin_make -j2

Сүйүктүү компиляция суусундугуңузду өтө алыс койгон жоксуз деп үмүттөнөбүз. Компиляция аяктагандан кийин биз картаны түзүүгө даярбыз!

5 -кадам: Убакытты көрсөтүү

Убакытты көрсөтүү
Убакытты көрсөтүү
Убакытты көрсөтүү
Убакытты көрсөтүү

USB портуна WiFi же Bluetooth донгл сыяктуу бир нерсе кошуп, ушундай трюк жасаңыз - мен 2 USB 2.0 портун колдончумун, бири Kinect үчүн, экинчиси WiFi донгл үчүн.

On Raspberry Pi do (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: = -delete_db_on_start --Vis/MaxFeatures 500 --Mem/ImagePreDecimation 2 --Mem/ImagePostDecimation 2 --Kp/DetectorStrategy 6 --OdomF2M/MaxDizil-MaxSize 1000-: = жалган

Сиз Скриншот 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 каналыма жазылыңыз, машина үйрөнүү жана робототехникага байланышкан кызыктуу долбоорлор жөнүндө кабардар болуу үчүн.

Сунушталууда: