فهرست مطالب:
- مرحله 1: چه چیزی کار می کرد و چه چیزی کار نمی کرد
- مرحله 2: نصب Freenect Drivers و Freenect_stack
- مرحله 3: نصب مستقل RTAB MAP
- مرحله 4: نصب Rtabmap_ros
- مرحله 5: نمایش زمان
- مرحله ششم: منابع
تصویری: RGB-D SLAM With Kinect on Raspberry Pi 4 [Buster] ROS Melodic: 6 Step
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:53
سال گذشته مقاله ای در مورد ساخت و نصب ROS Melodic در Raspberry Pi جدید (در آن زمان) با سیستم عامل Debian Buster نوشتم. این مقاله هم در اینجا در Instructables و هم در سایر سیستم عامل ها بسیار مورد توجه قرار گرفته است. من بسیار خوشحالم که به بسیاری از مردم کمک کردم تا ROS را با موفقیت در Raspberry Pi نصب کنند. در ویدئوی همراه من همچنین به طور خلاصه تصویر عمیق از Kinect 360 را نشان دادم. بعدها افراد زیادی با من در LinkedIn تماس گرفتند و از من پرسیدند که چگونه توانستم از Kinect با Raspberry Pi استفاده کنم. من به نوعی از این سوال شگفت زده شدم ، زیرا فرآیند آماده سازی Kinect در آن زمان حدود 3-4 ساعت طول کشید و بسیار پیچیده به نظر نمی رسید. من فایل های.bash_history خود را با همه افرادی که در مورد این مسئله از من سال می کردند به اشتراک گذاشتم و در ماه آوریل بالاخره زمان پیدا کردم تا مقاله ای در مورد نحوه نصب درایورهای Kinect و انجام RGB-D SLAM با RTAB-MAP ROS بنویسم. هفته ای از شبهای بی خوابی پس از شروع نوشتن مقاله ، من اکنون فهمیدم که چرا بسیاری از مردم این سوال را از من پرسیدند:)
من با توضیح مختصر در مورد اینکه چه رویکردهایی م workثر بودند و کدام م didn'tثر نبودند ، شروع می کنم. سپس نحوه نصب درایورهای 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 در حال به روز رسانی است. freenect_stack برای بسته های ROS مربوط به آنها ، برای 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) سپس بسته openni_camera را در فضای کاری catkin خود کلون کرده و با catkin_make کامپایل کنید. برای من کار نمی کند ، خطا در ایجاد ژنراتور عمق ناموفق بود. دلیل: رابط USB پشتیبانی نمی شود!
استفاده از libfreenect و freenect_stack در نهایت موفقیت آمیز بود ، اما مشکلات زیادی برای حل وجود داشت و راه حل کمی هک کننده بود ، اگرچه بسیار پایدار بود (1 ساعت + ادامه عملیات).
مرحله 2: نصب Freenect Drivers و Freenect_stack
فرض می کنم که از تصویر ROS Melodic Desktop من در این مقاله استفاده می کنید. اگر می خواهید نصب را در محیط های مختلف انجام دهید ، به عنوان مثال تصویر ros_comm یا در اوبونتو برای Raspberry Pi ، مطمئن شوید که اطلاعات کافی در مورد ROS برای حل مشکلات احتمالی ناشی از این تفاوت دارید.
بیایید با ایجاد درایورهای libfreenect از منبع شروع کنیم ، زیرا نسخه پیش ساخته apt-get repository بسیار قدیمی است.
sudo apt-get update
sudo apt-get install libusb-1.0-0-dev
git clone
سی دی libfreenect
mkdir build && cd build
cmake -L..
بساز
sudo make install
امیدوارم فرایند ساخت بدون هیچ گونه پیچیدگی و مملو از پیامهای دوستانه سبز باشد. پس از نصب درایور libfreenect ، راه حل بعدی نصب بسته freenect_stack برای ROS است. بسته های زیادی وجود دارد که بستگی دارد ، ما باید آنها را کلون کرده و با catkin_make همه با هم بسازیم. قبل از شروع ، مطمئن شوید که فضای کار catkin شما به درستی تنظیم و منبع شده است!
از پوشه src catkin your workpace:
git clone
git clone
git clone
git clone
git clone
git clone
وای ، این شبیه سازی زیادی بود.
ویرایش دیرتر: همانطور که توسط یکی از خوانندگان من اشاره شد ، مخزن vision_opencv باید در شاخه آهنگین تنظیم شود. برای آن cd به src/vision_opencv رفته و اجرا کنید
git checkout ملودیک
سپس به پوشه فضای کاری catkin خود بازگردید. برای بررسی اینکه آیا وابستگی همه بسته ها را داریم ، این دستور را اجرا کنید:
rosdep install --from-paths 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 (آدرس IP را به آدرس 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 مشاهده می کنید. من همه چیز را امتحان کردم: منبع تغذیه بهتر ، کارهای قدیمی libfreenect و freenect_stack ، توقف usb_autosuspend ، تزریق سفیدکننده به پورت های USB (خوب ، آخرین مورد نیست! این کار را نکنید ، یک شوخی است و نباید یک توصیه فنی باشد)). سپس در یکی از شماره های Github روایتی از شخصی را دیدم که می گفت Kinect آنها ناپایدار است ، تا اینکه آنها با اتصال دانگل WiFi "گذرگاه USB را بارگذاری کردند". امتحانش کردم، کار کرد. از یک طرف ، خوشحالم که کار کرد. از طرف دیگر ، کسی واقعاً باید آن را حل کند. خوب ، در حالی که (به نوعی) آن را برطرف کرده ایم ، بگذارید به مرحله بعدی برویم.
مرحله 3: نصب مستقل RTAB MAP
ابتدا مجموعه ای از وابستگی ها را برای نصب داریم:
با وجود این که یک بسته armhf از پیش ساخته شده برای PCL موجود است ، اما به دلیل این مسئله باید آن را از منبع کامپایل کنیم. برای مشاهده نحوه کامپایل آن از منبع با مخزن PCL GitHub مشورت کنید.
sudo apt-get نصب libvtk6-dev libvtk6-qt-dev libvtk6-java libvtk6-jni
sudo apt-get install libopencv-dev cmake libopenni2-dev libsqlite3-dev
حالا بیایید rtab map بسته مخزن مستقل git را در پوشه اصلی خود کلون کنیم و آن را بسازیم. من از آخرین نسخه (0.18.0) استفاده کردم.
git clone
cd rtabmap/build
cmake..
make -j2
sudo make install
sudo ldconfig rtabmap
اکنون که ما RTAB MAP مستقل را کامپایل کرده ایم ، می توانیم به آخرین مرحله برویم - کامپایل و نصب ROS wrapper برای RTAB MAP ، rtabmap_ros.
مرحله 4: نصب Rtabmap_ros
اگر تا اینجا پیش رفتید ، احتمالاً تا به حال تمرین را می دانید:) مخزن rtabmap_ros را در پوشه src catkin workpace خود کلون کنید. (دستور بعدی را از پوشه src catkin workpace اجرا کنید!)
git clone
ما به این بسته های ROS نیز نیاز داریم ، زیرا rtabmap_ros به موارد زیر بستگی دارد:
git clone
git clone
git clone
git clone
git clone
قبل از شروع کامپایل ، می توانید مطمئن شوید که هیچ گونه وابستگی را با دستور زیر از دست نداده اید:
rosdep install --from-paths src --ignore-src
وابستگی های بیشتری را از ap-get نصب کنید (اینها پیوند را قطع نمی کند ، اما هنگام تدوین خطا ایجاد می کند)
sudo apt-get install libsdl-image1.2-dev
سپس به پوشه فضای کاری catkin خود رفته و کامپایل را شروع کنید:
سی دی..
catkin_make -j2
امیدوارم که نوشیدنی تلفیقی مورد علاقه خود را زیاد دور نزده باشید. پس از اتمام کامپایل ، ما آماده انجام نقشه برداری هستیم!
مرحله 5: نمایش زمان
با افزودن چیزی مانند WiFi یا دانگل بلوتوث به درگاه USB ، این ترفند هک کننده را انجام دهید - من از 2 پورت USB 2.0 استفاده می کردم ، یکی برای Kinect ، دیگری برای دانگل WiFi.
در Raspberry Pi do (آدرس IP را به آدرس IP رزبری پای خود تغییر دهید!): ترمینال اول:
صادرات ROS_MASTER_URI = https://192.168.0.108: 11311
صادرات ROS_IP = 192.168.0.108
roslaunch freenect_launch freenect.launch deep_registration: = true_ship: = 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 --Odomrt2Mdom/MaxSab" 1000 ": = غلط
خروجی را در تصویر 1 مشاهده می کنید. "توقف RGB دستگاه و جریان عمیق". نشان می دهد که Kinect آماده است ، اما هنوز چیزی در موضوعات آن ثبت نشده است. در ترمینال دوم شما باید پیام هایی در مورد کیفیت odom مشاهده کنید. اگر Kinect را خیلی سریع حرکت دهید ، کیفیت odom به 0 می رسد و باید به مکان قبلی بروید یا از پایگاه داده تمیز شروع کنید.
در رایانه رومیزی خود با بسته ROS Melodic و rtab_map (توصیه می کنم از رایانه اوبونتو برای این کار استفاده کنید ، زیرا بسته های از پیش ساخته شده برای معماری amd64 در دسترس هستند) انجام دهید:
صادرات ROS_MASTER_URI = https://192.168.0.108: 11311
صادرات ROS_IP = [your-desktop-computer-ip]
rviz
نمایشگرهای MapGraph و MapCloud را به rviz اضافه کنید و موضوعات مربوطه را که از rtab_map آمده انتخاب کنید. خوب ، این است ، طعم شیرین پیروزی! پیش بروید و نقشه برداری کنید:)
مرحله ششم: منابع
در هنگام نوشتن این مقاله منابعی وجود داشت که من با آنها مشورت کردم ، بیشتر انجمن ها و مسائل 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
اگر س questionsالی دارید ، مرا در LinkedIn اضافه کنید و در کانال YouTube من مشترک شوید تا از پروژه های جالب تر مربوط به یادگیری ماشین و رباتیک مطلع شوید.
توصیه شده:
ROS Melodic در رزبری پای 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 & nbsp؛ 4b: 5 مرحله
ROS Kinetic ، TurtleBot3 ، Raspicam را روی Raspberry Pi نصب کنید & nbsp؛ 4b: TurtleBot3 Burger با Raspberry Pi 3 B/B+ عرضه می شود و از رزبری پای 4b جدید (از 9/2019) پشتیبانی نمی کند. مراحل زیر را دنبال کنید تا TurtleBot3 روی Raspberry Pi 4b کار کند ، از جمله ساخت ROS Kinetic از منابع Raspberry Pi 4b Raspbian
شروع کار با ROS Melodic در رزبری پای 4 مدل B: 7 مرحله
شروع کار با ROS Melodic در رزبری پای 4 مدل B: سیستم عامل ربات (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 را با نام Raspbian Buster راه اندازی کرد. این نسخه جدیدی از Raspbian برای Raspberry pi's است. بنابراین امروز در این دستورالعمل ها می آموزیم که چگونه سیستم عامل Raspbian Buster را روی Raspberry pi 3 خود نصب کنید
Roomblock: بستری برای یادگیری ROS Navigation با Roomba ، Raspberry Pi و RPLIDAR: 9 مرحله (همراه با تصاویر)
Roomblock: بستری برای یادگیری ROS Navigation با Roomba ، Raspberry Pi و RPLIDAR: این چیست؟ & quot؛ Roomblock & quot؛ یک پلت فرم روبات شامل Roomba ، Raspberry Pi 2 ، سنسور لیزری (RPLIDAR) و باتری تلفن همراه است. قاب نصب می تواند توسط چاپگرهای سه بعدی ساخته شود. سیستم ناوبری ROS امکان تهیه نقشه اتاقها و استفاده از i