جهاز يقوم بتشفير دفق فيديو على كاميرا Logitech C920 وإرساله إلى ROS عبر wifi مع تأخير أقل من 0.2 ثانية


في هذه التعليمات ، سوف نرسل دفق فيديو h264 بترميز الكاميرا Logitech C920 المرسلة من BeagleBone Blue عبر شبكة wifi إلى كمبيوتر محمول ، ثم سنأخذه إلى عقدة ROS gscam والبحث عن صور بطاقات التارو وزجاجة كاتشب على طول مسار الروبوت EduMIP.

هذا استمرار لسلسلة من مقالاتي ، في الماضي ركزنا على حقيقة أننا من خلال gstreamer أرسلنا فيديو إلى جهاز كمبيوتر محمول .

يحتوي ROS على حزمة يمكنها استقبال الفيديو من gstreamer ، والتي تسمى gscam ، إليك الوثائق الخاصة بها وشفرة المصدر .

نحتاج إلى أحدث إصدار من gscam مع دعم gstreamer-1.0 ، لذلك سنقوم بالتثبيت من أحدث إصدار من شفرة المصدر.

cd catkin_ws/src git clone https://github.com/ros-drivers/gscam cd .. catkin_make -DGSTREAMER_VERSION_1_x=On 

الآن نحن بحاجة إلى إنشاء ملف تشغيل وإدخال الأمر gstreamer هناك والذي سيرسل الفيديو إلى ffmpegcolorspace.

 -v udpsrc port=6666 ! application/x-rtp, encoding-name=H264 ! rtph264depay ! h264parse ! avdec_h264 ! videoconvert ! ffmpegcolorspace 

سيظهر الملف الناتج ~ / catkin_ws / src / gscam / أمثلة / streamc920_runch كما يلي:

 <launch> <!-- Set this to your camera's name --> <arg name="cam_name" value="creative_cam" /> <!-- Start the GSCAM node --> <env name="GSCAM_CONFIG" value="-v udpsrc port=6666 ! application/x-rtp, encoding-name=H264 ! rtph264depay ! h264parse ! avdec_h264 ! videoconvert ! ffmpegcolorspace" /> <node pkg="gscam" type="gscam" name="$(arg cam_name)"> <param name="camera_name" value="$(arg cam_name)" /> <param name="camera_info_url" value="package://localcam/calibrations/${NAME}.yaml" /> <remap from="camera/image_raw" to="$(arg cam_name)/image_raw" /> </node> <!-- Provide rectification --> <node pkg="image_proc" type="image_proc" name="creative_image_proc" ns="$(arg cam_name)" /> <!-- View the raw and rectified output --> <node pkg="image_view" type="image_view" name="creative_view" > <remap from="image" to="/$(arg cam_name)/image_raw" /> </node> </launch> 

الآن إذا قمنا بتشغيله:

 roslaunch gscam streamc920.launch 

سيتلقى دفق فيديو من الكاميرا ، الآن في ROS لدينا هذا الفيديو كموضوع creative_cam / image_raw.

من أحد الدروس السابقة ، سنبدأ البحث والتعرف على صور الخريطة عن طريق تغيير الموضوع:

 rosrun find_object_2d find_object_2d image:=/creative_cam/image_raw 

يمكنك رؤية نتيجة اختبار الروبوت EduMIP على مسار مرتجل في الفيديو في بداية المقال. على الرغم من الاهتزاز بسبب موازنة الروبوت ، لا يزال من الممكن التعرف على الصورة ، ولكن على روبوت ثلاثي العجلات أو رباعي العجلات ، أعتقد أن كل شيء سيكون أفضل بكثير.

قمت أيضًا بتوصيل الكمبيوتر المحمول بجهاز توجيه wifi مزدوج مجدول وخفض معدل البت إلى 1 ميجابت في الثانية مع إطارات رئيسية مرة واحدة في الثانية ، مما قلل من تأخير إرسال الفيديو إلى 0.2 ثانية.

 gst-launch-1.0 uvch264src initial-bitrate=1000000 average-bitrate=1000000 iframe-period=1000 name=src auto-start=true src.vidsrc ! video/x-h264,width=160,height=120,framerate=30/1 ! h264parse ! rtph264pay ! udpsink host=192.168.1.196 port=6666 



بالنسبة لأولئك الذين يرغبون في رؤية الروبوت مباشرة ، في 7 يوليو سوف أتحدث مع مشروع EduMIP في DIYorDIE Meetup في موسكو.

Source: https://habr.com/ru/post/ar415735/


All Articles