مساء الخير عزيزي habratchiteli!أظهرت الملاحظات الأخيرة والتجربة الشخصية أن توصيل كاميرا Microsoft Kinect Xbox 360 للاستخدام في ROS Indigo من تحت Ubuntu 14.04 غالبًا ما يسبب مشاكل. على وجه الخصوص ، عند بدء تشغيل حزمة openni_launch ROS ، لا يمكن الكشف عن الجهاز ويتم إنشاء خطأ "لا يوجد جهاز متصل". في هذه المقالة ، سأصف طريقة خطوة بخطوة لإعداد البيئة لاستخدام Microsoft Kinect من ROS Indigo. من هو مهتم ، من فضلك ، تحت الخفض!كاميرا Microsoft Kinect
تمت كتابة هذا المستشعر بالفعل بالتفصيل في المقالة . باختصار ، Microsoft Kinect هي كاميرا ثلاثية الأبعاد (RGB-D ، وهي الأحمر والأخضر والأزرق والعمق) ، تعتمد على تقنية الإضاءة المنظمة ، والتي تتيح لك الحصول على خريطة عميقة لأسطح الأشياء التي تقع في مجال رؤية الكاميرا. يمكن تحويل خريطة العمق إلى "سحابة" ثلاثية الأبعاد للنقاط ، حيث تحتوي كل نقطة على الإحداثيات الدقيقة X و Y و Z في الفضاء ، وفي بعض الحالات ، اللون بتنسيق RGB. تُستخدم "غيوم" النقاط في إعادة بناء الأشياء ، وبناء خرائط التضاريس في روبوتات الخدمة ، والتعرف على الأشياء ، والعديد من المهام الأخرى في مجال رؤية الكمبيوتر بأبعاد ثلاثية.
يوفر ROS دعمًا لمستشعر Kinect. يمكن عرض "سحابة" النقاط التي يستقبلها المستشعر بشكل مرئي في برنامج rviz.
لدى ROS حزم openni_launch و openni_camera خاصة لاستخدام مستشعر Kinect.تثبيت برنامج تشغيل مستشعر Microsoft Kinect
تحتاج أولاً إلى تثبيت مكتبة OpenNI ، المخصصة لعدد من أجهزة استشعار RGB-D (Kinect ، ASUS Xtion ، PrimeSense).قم بتثبيت بعض الحزم الإضافية التي يتطلب OpenNI تثبيتها:sudo apt-get install git build-essential python libusb-1.0-0-dev freeglut3-dev openjdk-7-jdk
sudo apt-get install doxygen graphviz mono-complete
الآن قم بتثبيت OpenNI 1.5.4 مباشرة من المصادر:git clone https://github.com/OpenNI/OpenNI.git
cd OpenNI
git checkout Unstable-1.5.4.0
cd Platform/Linux/CreateRedist
chmod +x RedistMaker
./RedistMaker
الآن قم بتنزيل مكتبة avin-KinectSensor لمستشعر Kinect من هنا .unzip avin2-SensorKinect-v0.93-5.1.2.1-0-g15f1975.zip
cd avin2-SensorKinect-15f1975/Bin
بناءً على نوع النظام (32 أو 64 بت) ، حدد المثبت المناسب. بالنسبة لنظام 32 بت ، قم بالخطوات التالية:tar -xjf SensorKinect093-Bin-Linux-x86-v5.1.2.1.tar.bz2
cd Sensor-Bin-Linux-x86-v5.1.2.1
بالنسبة لنظام 64 بت ، سنقوم بما يلي:tar -xjf SensorKinect093-Bin-Linux-x64-v5.1.2.1.tar.bz2
cd Sensor-Bin-Linux-x64-v5.1.2.1
أخيرًا ، أكمل التثبيت:sudo ./install.sh
قم بتثبيت حزم openni_ *
آخر شيء يتعين علينا القيام به - هو لتثبيت حزم openni_launch و openni_camera ، والذي يسمح لتلقي والعمل مع البيانات الكاميرات OpenNI المتوافقة عمق ROS. تثبيت هذه الحزم بسيط للغاية:sudo apt-get install ros-indigo-openni-camera ros-indigo-openni-launch
التحقق من تثبيت برنامج التشغيل
الآن كل شيء جاهز! تحقق من نجاح التثبيت. تعمل في محطات طرفية مختلفة:roscore
roslaunch openni_launch openni.launch depth_registration:=true
rosrun rviz rviz
ضبط الوسيطة deep_registration: = true يشير إلى أننا نريد تمكين تسجيل OpenNI وتلقي بيانات XYZRGB من الكاميرا (العمق واللون).أولاً ، في rviz ، قم بتوسيع قسم الخيارات العامة في عمود العرض الأيسر وقم بتعيين قيمة / camera_link لحقل الإطار الثابت كما في الصورة:
وهكذا ، قمنا بتعيين نظام الإحداثيات الضروري للعرض الصحيح للبيانات من كاميرا Kinect.في rviz نقوم بإنشاء عرض جديد. للقيام بذلك ، انقر فوق الزر "إضافة" وحدد نوع العرض PointCloud2 كما في الصورة:
حدد الموضوع / الكاميرا / deep_registered / نقاط للعرض الجديد
، ثم حدد القيمة "RGB8" لحقل "محول الألوان".الآن سنرى صورة مماثلة:
تسمح لك قيمة "RGB8" بعرض "سحابة نقطية" ملونة ، حيث تحتوي كل نقطة على إحداثيات X و Y و Z ولون RGB.أود أن ألفت انتباهك إلى حقيقة أن Microsoft Kinect Xbox 360 يعمل فقط مع USB 2.0. يمكن أن يؤدي توصيل الكاميرا عبر USB 3.0 إلى خطأ في اكتشاف الجهاز ، والذي تحدثت عنه في بداية المقالة.تحتوي بوابة ROS الرسمية على برامج تعليمية حول العمل مع بيانات كاميرا RGB-D باستخدام Point Point Library . توفر هذه البرامج التعليمية جميع المعلومات التي تحتاجها لبدء السحب النقطية.أتمنى لك حظًا سعيدًا في استخدام كاميرات RGBD في ROS لحل مشاكل رؤية جهاز الكمبيوتر الخاص بك!