مرحبا بالجميع!
أريد مشاركة تجربتي مع كاميرا Intel RealSense ، طراز d435 . كما تعلم ، تتطلب العديد من خوارزميات رؤية الجهاز معايرة أولية للكاميرا . حدث ذلك أننا في مشروعنا نستخدم ROS لبناء مكونات فردية لنظام ذكي مؤتمت. ومع ذلك ، بعد دراسة الإنترنت باللغة الروسية ، لم أجد أي دروس معقولة حول هذا الموضوع. الغرض من هذا المنشور هو سد هذه الفجوة.
المتطلبات المسبقة للبرمجيات
نظرًا لأن ROS يعمل على أنظمة Unix ، سأفترض أن لدينا نظام Ubuntu 16.04 متاحًا. لن أصف تفاصيل التثبيت التفصيلية ، سأعطي فقط روابط للبرامج التعليمية المقابلة.
sudo apt-get install python-opencv
تثبيت برامج تشغيل RealSense
- بادئ ذي بدء ، تحتاج إلى تثبيت برامج تشغيل للكاميرا.
- حزمة ROS للكاميرا هنا . في وقت النشر ، كان الإصدار الأخير 2.0.3. لتثبيت الحزمة ، تحتاج إلى تنزيل كود المصدر وفك ضغطه في دليل الصفحة الرئيسية لـ ROS. بعد ذلك ، سنحتاج إلى تثبيته:
catkin_make clean catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release catkin_make install echo "source path_to_workspace/devel/setup.bash" >> ~/.bashrc source ~/.bashrc
اختبار الكاميرا
بعد تثبيت الكاميرا ، نحتاج إلى التأكد من أن برامج التشغيل تعمل كما ينبغي. للقيام بذلك ، نقوم بتوصيل الكاميرا عبر USB وتشغيل العرض التوضيحي:
roslaunch realsense2_camera demo_pointcloud.launch
سيفتح هذا الأمر تصور ROS ، الذي يمكنك من خلاله رؤية سحابة النقاط المسجلة في الموضوع /camera/depth/color/points
:

معايرة الكاميرا
يوجد أدناه نسخة معدلة من البرنامج التعليمي من OpenCV .
import numpy as np import cv2 import glob
لكي يعمل هذا النص البرمجي ، نحتاج إلى 10 صور شطرنج على الأقل مستلمة من الكاميرا. لهذا ، يمكننا استخدام ، على سبيل المثال ، حزمة image_view ROS أو أي برنامج آخر يمكنه التقاط لقطات شاشة من كاميرا USB. يجب وضع الصور الملتقطة في أي مجلد. مثال على الصورة:

بعد تنفيذ البرنامج النصي ، سيتم حفظ نتائج المعايرة في ملف
calibration.npy
. calibration.npy
. يمكن بعد ذلك استخدام هذه البيانات مع البرنامج النصي التالي:
calibration_data = np.load('path_to_images/calibration.npy') mtx = calibration_data[0] dist = calibration_data[1] rvecs = calibration_data[2] tvecs = calibration_data[3]
الخلاصة
تمكنا من معايرة كاميرا RealSense d435 بنجاح باستخدام OpenCV2 و ROS. يمكن استخدام نتائج المعايرة في تطبيقات مثل عناصر التتبع وعلامات aruco وخوارزميات الواقع المعزز والعديد من التطبيقات الأخرى. في المقالة التالية ، أود أن أوضح تفاصيل تتبع علامات aruco.