Мазмуну:
- 1 -кадам: Эмне иштеген жана эмне болгон эмес
- 2 -кадам: Freenect Айдоочуларын жана Freenect_stackти орнотуу
- 3 -кадам: RTAB MAP картасын орнотуу
- 4 -кадам: Rtabmap_ros орнотуу
- 5 -кадам: Убакытты көрсөтүү
- 6 -кадам: Шилтемелер
Video: RGB-D SLAM Raspberry Pi 4 боюнча Kinect менен [Buster] ROS Мелодикалык: 6 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:39
Өткөн жылы мен 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ти орнотуу
Мен бул макаладан менин 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 картасын орнотуу
Биринчиден, биз орнотула турган көптөгөн көз карандылыктарга ээбиз:
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 репозиторийин 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 каналыма жазылыңыз, машина үйрөнүү жана робототехникага байланышкан кызыктуу долбоорлор жөнүндө кабардар болуу үчүн.
Сунушталууда:
ROS Melodic Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8: 6 Steps
ROS Melodic Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8: Бул макалада ROS Melodic Morenia'ны Raspberry Pi 4ке орнотуу процесси жана акыркы Debian Buster менен RPLIDAR A1M8ди биздин орнотуубузда кантип колдонуу керектиги каралат. Debian Buster бир нече жума мурун расмий түрдө чыгарылгандан бери (азыркы учурда
Робот техникасы боюнча этап-этабы менен комплект менен билим берүү: 6 кадам
Комплект менен робот техникасында этап-этабы менен билим берүү: Өз роботумду кургандан бир нече айдан кийин (мунун баарына кайрылыңыз), жана эки жолу тетиктери иштен чыккандан кийин, мен бир кадам артка кайтып, өзүмдү кайра ойлонууну чечтим. стратегия жана багыт. Бир нече айлык тажрыйба кээде абдан пайдалуу жана
Shoestring боюнча программалык камсыздоо менен аныкталган радио: 9 кадам (сүрөттөр менен)
Shoestringде программалык камсыздоого ылайыкталган радио: Башында кристалл топтому болгон - биринчи практикалык радио уктуруучу. Бирок ага узун антенна керек болчу жана жергиликтүү станцияларды гана кабыл ала алган. Клапандар пайда болгондо (түтүктөр, биздин америкалык досторубуз үчүн) алар дагы көп нерселерди курууга мүмкүндүк беришти
Raspberry Busterди Raspberry Pi 3ке орнотуу - Raspbian Buster менен иштөөнү баштоо Raspberry Pi 3b / 3b+: 4 кадам
Raspberry Busterди Raspberry Pi 3ке орнотуу | Raspbian Buster менен иштөөнү баштоо Raspberry Pi 3b / 3b+: Салам балдар, жакында Raspberry pi уюму Raspbian Buster деп аталган жаңы Raspbian ОСту ишке киргизди. Бул Raspberry пи үчүн Raspbianдин жаңы версиясы. Ошентип, бүгүн бул көрсөтмөлөрдө биз Raspberry Buster OSти Raspberry pi 3ке кантип орнотууну үйрөнөбүз
Pi боюнча алдын ала* SPI: Raspberry Pi менен SPI 3-огу акселерометр менен байланыш: 10 кадам
Алдын ала* Пи боюнча SPI: Raspberry Pi менен SPI 3 огунун акселерометри менен байланыш: Raspbianди кантип орнотуу боюнча кадамдык көрсөтмө жана bcm2835 SPI китепканасын колдонуп SPI түзмөгү менен баарлашуу (Бит эмес!) Бул дагы эле абдан алдын ала … Мен физикалык туташуунун жакшыраак сүрөттөрүн кошуп, ыңгайсыз коддун айрымдары аркылуу иштешим керек