Სარჩევი:
- ნაბიჯი 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 10:16
შარშან დავწერე სტატია ROS Melodic– ის მშენებლობისა და დაყენების შესახებ ახალ (იმ დროს) Raspberry Pi– ზე Debian Buster OS– ით. სტატიას დიდი ყურადღება დაეთმო როგორც აქ ინსტრუქციებზე, ასევე სხვა პლატფორმებზე. ძალიან მიხარია, რომ ამდენ ადამიანს დავეხმარე Raspberry Pi– ზე ROS– ის წარმატებით დაყენებაში. თანმხლებ ვიდეოში მე ასევე მოკლედ ვაჩვენე Kinect 360– დან სიღრმის სურათის მიღება. მოგვიანებით მრავალმა ადამიანმა დამიკავშირდა LinkedIn– ში და მკითხა, როგორ მოვახერხე Kinect– ის გამოყენება ჟოლოს პითან ერთად. მე გამიკვირდა კითხვაზე, რადგან იმ დროს 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" დროშა პლატფორმიდან/Linux/Build/Common/Platform. ARM ფაილიდან (ამის შესახებ რჩევისთვის გიტუბის საკითხი). შემდეგ კლონირება openni_camera პაკეტი თქვენს catkin სამუშაო სივრცეში და compile ერთად catkin_make. ჩემთვის ეს არ მუშაობდა, შეცდომა იყო სიღრმის გენერატორის შექმნისას. მიზეზი: USB ინტერფეისი არ არის მხარდაჭერილი!
Libfreenect- ისა და freenect_stack- ის გამოყენებამ საბოლოოდ მიაღწია წარმატებას, მაგრამ საკმაოდ ბევრი პრობლემა იყო მოსაგვარებელი და გამოსავალი იყო ცოტა გარყვნილი, თუმცა ძალიან სტაბილურად მუშაობდა (1 საათი + ოპერაციის გაგრძელება).
ნაბიჯი 2: Freenect დრაივერების და Freenect_stack- ის დაყენება
მე ვივარაუდებ, რომ თქვენ იყენებთ ჩემს ROS მელოდიური დესკტოპის სურათს ამ სტატიიდან. თუ გსურთ გააკეთოთ ინსტალაცია სხვადასხვა გარემოში, მაგალითად 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 კლონი
უი, ეს იყო ბევრი კლონირება.
გვიან რედაქტირება: როგორც ერთ -ერთმა მკითხველმა აღნიშნა, 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. გაშვების სიღრმე_რეგისტრაცია: = მართალია
თქვენ იხილავთ გამომავალს, როგორც ეკრანის სურათზე 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. მე შევეცადე ყველაფერი: უკეთესი კვების წყარო, libfreenect- ის ძველი დანაშაული და freenect_stack, usb_autosuspend– ის შეჩერება, გათეთრების შეყვანა USB პორტებში (კარგი, არა უკანასკნელი! ნუ გააკეთებ, ეს ხუმრობაა და არ უნდა იყოს ტექნიკური რჩევა:)). შემდეგ Github– ის ერთ – ერთ ნომერში ვნახე ანგარიში იმ პიროვნების შესახებ, რომელმაც თქვა, რომ მათი Kinect არასტაბილური იყო, სანამ ისინი „არ ატვირთავდნენ USB ავტობუსს“WiFi დონლის შეერთებით. ეს ვცადე და იმუშავა. ერთის მხრივ, მოხარული ვარ, რომ მან იმუშავა. მეორეს მხრივ, ვიღაცამ ნამდვილად უნდა გაასწოროს ის. კარგად, ამასობაში (სახის) დაფიქსირებისას, მოდით გადავიდეთ შემდეგ საფეხურზე.
ნაბიჯი 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 რუკა standalone პაკეტი git საცავი ჩვენს სახლში საქაღალდეში და ავაშენოთ იგი. მე გამოვიყენე უახლესი გამოშვება (0.18.0).
git კლონი
cd rtabmap/build
სმეკა..
გააკეთე -j2
sudo make install
sudo ldconfig rtabmap
ახლა, როდესაც ჩვენ შევადგინეთ დამოუკიდებელი RTAB MAP, ჩვენ შეგვიძლია გადავიდეთ ბოლო ეტაპზე - RTA შეფუთვის შედგენა და ინსტალაცია RTAB MAP– ისთვის, 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: აჩვენე დრო
გააკეთეთ ეს უაზრო ხრიკი USB პორტში WiFi- ის ან Bluetooth dongle- ის დამატებით - მე ვიყენებდი 2 USB 2.0 პორტს, ერთი Kinect– ისთვის, მეორე WiFi dongle– სთვის.
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 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-ODrtF2M/MaxSimage" 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]
რვიზი
დაამატეთ 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: ეს სტატია მოიცავს Raspberry Pi 4 -ზე ROS Melodic Morenia– ს დაყენების პროცესს უახლესი Debian Buster– ით და როგორ გამოვიყენოთ RPLIDAR A1M8 ჩვენი ინსტალაციით. მას შემდეგ, რაც დებიან ბასტერი ოფიციალურად გაათავისუფლეს სულ რამდენიმე კვირის წინ (იმ მომენტისთვის
RGB კავშირი Arduino– სთან ერთად TinkerCad– ზე: 4 ნაბიჯი
RGB ინტერფეისის დამყარება Arduino– ს საშუალებით TinkerCad– ზე: ამ გაკვეთილში თქვენ შეიტყობთ Arduino RGB– ით მართული ინტერფეისის შესახებ. RGB led შედგება სამი განსხვავებული led- ისგან, სახელიდან შეგიძლიათ გამოიცნოთ, რომ ეს LED- ები არის წითელი, მწვანე და ლურჯი. ჩვენ შეგვიძლია მივიღოთ ბევრი სხვა ფერი ამ ფერების შერევით
DIY RGB LED სინათლის შერევის ნათურა არდუინოსთან ერთად: 3 ნაბიჯი
DIY RGB LED სინათლის შერევის ნათურა Arduino– სთან ერთად: ჩემი პროექტის ორიგინალური წყარო ემყარება ამ ვებგვერდს: აქ ამ პროექტში მე შევქმენი ნათურა RGB LED და LDR სენსორით. LDR სენსორის გადართვით, ნათურა იწყებს ბრწყინავს, როდესაც სიმსუბუქე დაბალია. ნათურა შეიძლება გამოყენებულ იქნას როგორც
მელოდიური ხმა: 4 ნაბიჯი
მელოდიური ხმა: La conception de cet instrument is assez particuli è re et peu commune mais tr è s simple à უტილიზატორი. სხვათა შორის, 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– სთვის. ასე რომ, დღეს ამ ინსტრუქციებში ჩვენ ვისწავლით თუ როგორ უნდა დააინსტალიროთ Raspbian Buster OS თქვენს Raspberry pi 3 – ზე