ዝርዝር ሁኔታ:

RGB-D SLAM ከ Kinect ጋር በ Raspberry Pi 4 [Buster] ROS Melodic: 6 Steps
RGB-D SLAM ከ Kinect ጋር በ Raspberry Pi 4 [Buster] ROS Melodic: 6 Steps

ቪዲዮ: RGB-D SLAM ከ Kinect ጋር በ Raspberry Pi 4 [Buster] ROS Melodic: 6 Steps

ቪዲዮ: RGB-D SLAM ከ Kinect ጋር በ Raspberry Pi 4 [Buster] ROS Melodic: 6 Steps
ቪዲዮ: የባንክ አካወንታቺንን እንዴት ዩቱብ ላይ አስገብተን ገንዘብ መቀበል እንችላለን 2024, ህዳር
Anonim
Image
Image

ባለፈው ዓመት ROS Melodic ን በአዲሱ (በዚያን ጊዜ) Raspberry Pi ከዴቢያን Buster OS ጋር ስለመገንባት እና ስለመጫን አንድ ጽሑፍ ጽፌ ነበር። ጽሑፉ እዚህ በመምህራን እና በሌሎች የመሣሪያ ስርዓቶች ላይ ብዙ ትኩረት አግኝቷል። ብዙ ሰዎች ROS ን በ Raspberry Pi ላይ በተሳካ ሁኔታ እንዲጭኑ በመርዳቴ በጣም ደስተኛ ነኝ። በተጓዳኝ ቪዲዮ ውስጥ እኔ ደግሞ ከ Kinect 360 የጥልቀት ምስል ማግኘቴን በአጭሩ አሳየሁ። በኋላ ላይ ብዙ ሰዎች በ LinkedIn ላይ አገኙኝ እና ኪኔክን ከ Raspberry Pi ጋር እንዴት እንደምጠቀም ጠየቁኝ። በዚያን ጊዜ ኪኔክን የማዘጋጀት ሂደት 3-4 ሰዓት ያህል ስለወሰደኝ እና በጣም የተወሳሰበ ስላልነበረ በጥያቄው በጣም ተገረምኩ። ስለ ጉዳዩ ለሚጠይቁኝ ሰዎች ሁሉ የእኔን ።bash_history files አጋርቼ በመጨረሻ ሚያዝያ ውስጥ የኪኔክት ነጂዎችን እንዴት እንደሚጭኑ እና RGB-D SLAM ን ከ RTAB-MAP ROS ጋር እንዴት እንደሚያደርጉ አንድ ጽሑፍ ለመጻፍ ጊዜ አገኘሁ። ጽሑፉን መጻፍ ከጀመርኩ የሳምንት እንቅልፍ የሌላቸው ምሽቶች ብዙ ሰዎች ይህንን ጥያቄ ለምን እንደጠየቁኝ አሁን ተረድቻለሁ:)

ምን ዓይነት አቀራረቦች እንደሠሩ እና እንዳልሠሩ በአጭሩ ማብራሪያ እጀምራለሁ። ከዚያ የ Kinect ነጂዎችን ከ ROS Melodic ጋር እንዴት እንደሚጫኑ እና በመጨረሻም ማሽንዎን ለ RGB-D SLAM ከ RTAB-MAP ROS ጋር እንዴት እንደሚያዋቅሩ እገልጻለሁ።

ደረጃ 1 - የሚሠራው እና ያልሠራው

Raspberry Pi ላይ ለ Kinect የሚገኙ ጥቂት አሽከርካሪዎች አሉ - ከእነሱ ውስጥ ሁለቱ በ ROS የተደገፉ ናቸው።

የ OpenNI አሽከርካሪዎች - openni_camera ጥቅል ለ ROS

libfreenect ሾፌሮች - freenect_stack ጥቅል ለ ROS

የእነሱን የ GitHub ማከማቻዎች ከተመለከቱ ፣ የ OpenNI ነጂ ለመጨረሻ ጊዜ የዘመነው ከብዙ ዓመታት በፊት እና በተግባር EOL ለረጅም ጊዜ መሆኑን ነው። በሌላ በኩል ibfreekinect ወቅታዊ እየተዘመነ ነው። ለየራሳቸው የ ROS ጥቅሎች ተመሳሳይ ፣ freenect_stack ለ ROS ዜማ ተለቋል ፣ እሱ የመጨረሻው distro openni_camera ድጋፍን ዘርዝሯል Fuerte ነው…

ለእኔ ባይሠራም የ OpenNI ሾፌር እና የ openni_camera ጥቅል በ Raspberry Pi ላይ ለ ROS Melodic ማጠናቀር እና መጫን ይቻላል። ይህንን መመሪያ ለመከተል በደረጃ 2 እና 3 ላይ ደረጃዎች 1 ፣ 2 ፣ 3 ፣ “-mfloat-abi = softfp” ባንዲራውን ከመሣሪያ ስርዓት/ሊኑክስ/ግንባታ/የጋራ/የመሣሪያ ስርዓት። ARM ፋይል (በዚህ ምክር ላይ) Github ጉዳይ)። ከዚያ ወደ ክፍት የሥራ ቦታዎ የ openni_camera ጥቅልን ይክፈቱ እና ከ catkin_make ጋር ያጠናቅሩ። ምንም እንኳን ለእኔ አልሰራም ፣ ስህተቱ ጥልቅ ጄኔሬተር መፍጠር አልተሳካም። ምክንያት - የዩኤስቢ በይነገጽ አይደገፍም!

Libfreenect እና freenect_stack ን በመጠቀም በመጨረሻ ስኬት አስገኝቷል ፣ ግን በጣም ጥቂት ችግሮች ነበሩ እና መፍትሔው በጣም የተረጋጋ ቢሆንም (1 ሰዓት + የቀጠለ ክወና)።

ደረጃ 2 - የፍሪኔክት ነጂዎችን እና Freenect_stack ን መጫን

Freenect Drivers እና Freenect_stack ን በመጫን ላይ
Freenect Drivers እና Freenect_stack ን በመጫን ላይ

እኔ ከዚህ ጽሑፍ የ ROS Melodic Desktop ምስሌን እንደሚጠቀሙ እገምታለሁ። በተለያዩ አከባቢዎች ውስጥ መጫንን ከፈለጉ ፣ ለምሳሌ የ ros_comm ምስል ወይም በኡቡንቱ ለ Raspberry Pi ፣ ከዚያ ልዩነት ሊነሱ የሚችሉ ችግሮችን ለመፍታት ስለ ROS በቂ እውቀት እንዳለዎት ያረጋግጡ።

ተስማሚ-ማግኘት ማከማቻ አስቀድሞ የተገነባ ስሪት በጣም ጊዜ ያለፈበት ስለሆነ libfreenect ነጂዎችን ከምንጩ በመገንባት እንጀምር።

sudo apt-get ዝማኔ

sudo apt-get install libusb-1.0-0-dev

git clone

ሲዲ libfreenect

mkdir ግንባታ && ሲዲ ግንባታ

cmake -L..

ማድረግ

sudo አድርግ ጫን

የግንባታ ሂደቱ ያልተጠበቀ እና በአረንጓዴ ወዳጃዊ መልዕክቶች የተሞላ እንደሚሆን ተስፋ እናደርጋለን። የ libfreenect ነጂን ከጫኑ በኋላ የሚቀጥለው መሰናክል ለ ROS የ freenect_stack ጥቅል መጫን ነው። በእሱ ላይ የሚመረኮዙ ሌሎች ጥቂት ጥቅሎች አሉ ፣ እኛ እነሱን መዝጋት እና በ catkin_make ሁሉንም መገንባት አለብን። ከመጀመርዎ በፊት የካትኪን የሥራ ቦታዎ በትክክል መዋቀሩን እና መገኘቱን ያረጋግጡ!

ከእርስዎ ካትኪን የሥራ ቦታ src አቃፊ ፦

git clone

git clone

git clone

git clone

git clone

git clone

ዋው ፣ ያ ብዙ ክሎኒንግ ነበር።

የኋሊት አርትዕ - በአንባቢዎቼ በአንዱ እንደጠቆመው ፣ ራዕይ_ኦፔንክቪቭ ማከማቻ ወደ ዜማ ቅርንጫፍ መዘጋጀት አለበት። ለዚያ ሲዲ ለ src/vision_opencv እና ለማስፈጸም

git checkout melodic

ከዚያ ወደ ካትኪን የሥራ ቦታ አቃፊዎ ይመለሱ። በቦታው ላሉት ሁሉም ጥቅሎች ጥገኞች መሆናችንን ለመፈተሽ ይህንን ትእዛዝ ያስፈጽሙ

rosdep ጫን -ከመንገዶች src --ignore-src

ሁሉንም አስፈላጊ ፓኬጆች በተሳካ ሁኔታ ካቆሙ libfreekinect ን ከ apt-get ጋር ለማውረድ ይጠይቃል። አይመልሱ ፣ እኛ ቀድሞውኑ ከምንጭ ስለጫንነው።

sudo apt-get install libbullet-dev libharfbuzz-dev libgtk2.0-dev libgtk-3-dev

catkin_make -j2

የሻይ ጊዜ;) ወይም የሚወዱት መጠጥ ምንም ይሁን ምን።

የማጠናቀር ሂደቱ ከተጠናቀቀ በኋላ የኪነቴክ ቁልል ለመጀመር እና ጥልቀቱን እና የቀለም ምስሎችን በትክክል ካወጣ ለመፈተሽ መሞከር ይችላሉ። Raspberry Pi ራሴን አልባ እጠቀማለሁ ፣ ስለዚህ በዴስክቶፕ ኮምፒተርዬ ላይ RVIZ ን ማሄድ አለብኝ።

Raspberry Pi do ላይ (የአይፒ አድራሻውን ወደ የእርስዎ Raspberry Pi አድራሻ ይለውጡ!)

ወደ ውጭ ላክ ROS_MASTER_URI = https://192.168.0.108: 11311

ወደ ውጭ ላክ ROS_IP = 192.168.0.108

roslaunch freenect_launch freenect.launch deep_registration: = እውነት

በቅጽበታዊ ገጽ እይታ 1. እንደሚታየው ውጤትን ያያሉ። Kinect ዝግጁ መሆኑን ያመለክታል ፣ ግን ለርዕሰ ጉዳዩ ገና ምንም የተመዘገበ የለም።

በ ROS Melodic የተጫነ በዴስክቶፕ ኮምፒተርዎ ላይ የሚከተሉትን ያድርጉ

ወደ ውጭ ላክ ROS_MASTER_URI = https://192.168.0.108: 11311

ወደ ውጭ ላክ ROS_IP = [የእርስዎ-ዴስክቶፕ-ኮምፒውተር-ip] rviz

አሁን ከላይ ባለው ቅጽበታዊ ገጽ እይታ 2 ላይ በ RVIZ ውስጥ የ RGB እና ጥልቅ የምስል ዥረቶችን ማየት መቻል አለብዎት… ግን በተመሳሳይ ጊዜ አይደለም።

እሺ ፣ አደገኛ ነገሮች የሚጀምሩት እዚህ ነው። የተለያዩ አሽከርካሪዎችን እና አቀራረቦችን ለመሞከር 3 ቀናት አሳልፌያለሁ እና ምንም አልሰራም - ወዲያውኑ ሁለት ዥረቶችን ለመድረስ እንደሞከርኩ ቅጽበታዊ ገጽ እይታ ውስጥ ማየት የሚችሉት Kinect ጊዜን ይጀምራል። freenect_stack ፣ usb_autosuspend ን ማቆም ፣ ወደ ዩኤስቢ ወደቦች ብሌሽ በመርጨት (እሺ ፣ የመጨረሻው አይደለም! አታድርገው ፣ ቀልድ ነው እና የቴክኒክ ምክር መሆን የለበትም:))። ከዚያ በአንደኛው የጊቱብ ጉዳዮች ላይ ዋይፋይ ዶንግሌን በማገናኘት ‹የዩኤስቢ አውቶቡሱን እስኪጭኑ› ድረስ ኪኔታቸው ያልተረጋጋ ነው የሚል አንድ ሰው አየሁ። ያንን ሞከርኩ እና ውጤታማ ሆነ። በአንድ በኩል ፣ በመስራቱ ደስተኛ ነኝ። በሌላ በኩል ፣ አንድ ሰው ያንን ማስተካከል አለበት። ደህና ፣ እስከዚያ (ያንን ዓይነት) አስተካክለን ወደ ቀጣዩ ደረጃ እንሂድ።

ደረጃ 3: ራሱን የቻለ RTAB ካርታ መጫን

ገለልተኛ RTAB ካርታ በመጫን ላይ
ገለልተኛ RTAB ካርታ በመጫን ላይ

በመጀመሪያ ለመጫን ብዙ ጥገኞች አሉን-

ለፒ.ሲ.ኤል አስቀድሞ የተገነባ የ armhf ጥቅል ቢኖርም ፣ በዚህ ጉዳይ ምክንያት ከምንጩ ማጠናቀር ያስፈልገናል። ከምንጩ እንዴት ማጠናቀር እንደሚቻል ለማየት የ PCL GitHub ማከማቻን ያማክሩ።

sudo apt-get install libvtk6-dev libvtk6-qt-dev libvtk6-java libvtk6-jni

sudo apt-get install libopencv-dev cmake libopenni2-dev libsqlite3-dev

አሁን የሪታብ ካርታ ራሱን የቻለ ጥቅል የጊት ማከማቻ ወደ ቤታችን አቃፊ እንሸጋገር እና እንገንባ። የቅርብ ጊዜውን ልቀት (0.18.0) ተጠቅሜያለሁ።

git clone

ሲዲ rtabmap/ግንባታ

አድርግ..

ማድረግ -j2

sudo አድርግ ጫን

sudo ldconfig rtabmap

አሁን ለብቻው የ RTAB ካርታ ስናጠናቅቅ ወደ መጨረሻው ደረጃ መሄድ እንችላለን - ለ RTAB MAP ፣ rtabmap_ros የ ROS መጠቅለያ ማጠናቀር እና መጫን።

ደረጃ 4: Rtabmap_ros ን በመጫን ላይ

Rtabmap_ros ን በመጫን ላይ
Rtabmap_ros ን በመጫን ላይ

ያን ያህል ርቀት ከደረሱ ምናልባት መሰርሰሪያውን አሁን ያውቁ ይሆናል:) የ rtabmap_ros ማከማቻን ወደ ካትኪን የሥራ ቦታዎ src አቃፊ ይቅረጹ። (ቀጣዩን ትዕዛዝ ከእርስዎ የ catkin workspace src አቃፊ ያስፈጽሙ!)

git clone

እነዚህ የ ROS ጥቅሎችም ያስፈልጉናል ፣ ያ rtabmap_ros የሚወሰነው በ

git clone

git clone

git clone

git clone

git clone

ማጠናቀር ከመጀመርዎ በፊት በሚከተለው ትእዛዝ ማንኛውንም ጥገኛ አለመኖሩን ማረጋገጥ ይችላሉ-

rosdep ጫን -ከመንገዶች src --ignore-src

ከ ap-get ተጨማሪ ጥገኛዎችን ይጫኑ (እነዚህ ግንኙነቱን አያቋርጡም ፣ ግን በማጠናቀር ጊዜ ስህተት ይጥላሉ)

sudo apt-get install libsdl-image1.2-dev

ከዚያ ወደ ካትኪን የሥራ ቦታ አቃፊዎ ይሂዱ እና ማጠናቀር ይጀምሩ-

ሲዲ..

catkin_make -j2

በጣም የሚወዱትን የማጠናከሪያ መጠጥ በጣም ሩቅ ቦታ ላይ እንዳላደረጉ ተስፋ ያድርጉ። ቅንብሩ ከተጠናቀቀ በኋላ ካርታውን ለመሥራት ዝግጁ ነን!

ደረጃ 5 - ሰዓት አሳይ

ሰዓት አሳይ
ሰዓት አሳይ
ሰዓት አሳይ
ሰዓት አሳይ

እንደ ዋይፋይ ወይም ብሉቱዝ ዶንግልን ወደ ዩኤስቢ ወደብ በመጨመር ያንን አደገኛ ዘዴ ያድርጉ - እኔ 2 ዩኤስቢ 2.0 ወደቦችን እጠቀም ነበር ፣ አንዱ ለ Kinect ፣ ሌላውን ለ WiFi dongle።

Raspberry Pi do ላይ (የአይፒ አድራሻውን ወደ የእርስዎ Raspberry Pi አድራሻ ይለውጡ!) - 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.lat rtabmap_args =: = ሐሰት

በቅጽበታዊ ገጽ እይታ 1. እንደሚታየው ውጤትን ያያሉ። Kinect ዝግጁ መሆኑን ይጠቁማል ፣ ግን ለርዕሰ ጉዳዩ ገና ምንም አልተመዘገበም። በሁለተኛው ተርሚናል ውስጥ ስለ ኦዶም ጥራት መልዕክቶችን ማየት አለብዎት። Kinect ን በጣም በፍጥነት ከወሰዱ ፣ የኦዶም ጥራት ወደ 0 ይሄዳል እና ወደ ቀዳሚው ቦታ መሄድ ወይም ከንጹህ የመረጃ ቋት መጀመር ያስፈልግዎታል።

በ ROS Melodic እና rtab_map ጥቅል ተጭኖ በዴስክቶፕ ኮምፒተርዎ ላይ (ቅድመ-የተገነቡ ጥቅሎች ለ amd64 ሥነ ሕንፃ ስለሚገኙ የኡቡንቱን ኮምፒተር እንዲጠቀሙ እመክራለሁ)

ወደ ውጭ ላክ ROS_MASTER_URI = https://192.168.0.108: 11311

ወደ ውጭ ላክ ROS_IP = [የእርስዎ-ዴስክቶፕ-ኮምፒውተር-ip]

አርቪዝ

ወደ rviz የ MapGraph እና MapCloud ማሳያዎችን ያክሉ እና ከ rtab_map የሚመጡትን ተዛማጅ ርዕሶች ይምረጡ። ደህና ፣ ይህ ነው ፣ የድል ጣፋጭ ጣዕም! ይቀጥሉ እና አንዳንድ ካርታዎችን ያድርጉ:)

ደረጃ 6 - ማጣቀሻዎች

ይህንን ጽሑፍ በምጽፍበት ጊዜ እኔ ያማከርኳቸው በርካታ ሀብቶች ነበሩ ፣ አብዛኛዎቹ መድረኮች እና የጊት ሁብ ጉዳዮች። እዚህ እተዋቸዋለሁ።

github.com/OpenKinect/libfreenect/issues/338

www.reddit.com/r/robotics/comments/8d37gy/ros_wsp_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 ላይ ያክሉኝ እና ስለ ማሽን ትምህርት እና ሮቦቶች ስለተሳተፉ የበለጠ አስደሳች ፕሮጄክቶች ለማሳወቅ ለዩቲዩብ ጣቢያዬ ይመዝገቡ።

የሚመከር: