2016-10-12 3 views
2

У меня возникла проблема, когда я не могу подключиться к камере AR Drone 2, когда гудок подключен через ROS, используя ardrone_autonomy ardrone.launch.Доступ к AR.Drone камерам с OpenCV при подключении к ROS

Я думаю, проблема связана с тем, что я пытаюсь получить доступ к беспилотной камеры через IP-адрес с помощью OpenCV и Python при подключении через ardrone_autonomy. Ниже приведен фрагмент кода, как я это делаю.

video_capture = cv2.VideoCapture() 

video_capture.open('tcp://192.168.1.1:5555') 

vidWidth = video_capture.get(cv2.CAP_PROP_FRAME_WIDTH) 

vidHeight = video_capture.get(cv2.CAP_PROP_FRAME_HEIGHT) 

Как вы можете видеть, я использую IP-адрес камеры. Это отлично работает, когда беспилотный мост не подключен через ROS, который по существу похож на веб-камеру.

Моя конечная цель - отслеживание и навигация с использованием изображений, полученных с камеры, с использованием OpenCV, что означает, что мне придется выдавать команды перемещения (cmd_vel), которые требуют подключения через ardrone_autonomy на основе изображений, полученных и обработанных OpenCV ,

В любом случае я могу выполнить это, используя IP-камеру от беспилотника, подключенного к ROS?

Спасибо за помощь!

ответ

1

http://wiki.ros.org/video_stream_opencv может открыть видео поток из HTTP/TCP URL:

<launch> <!-- video stream from URL to ROS topic - see http://wiki.ros.org/video_stream_opencv --> 
    <include file="$(find video_stream_opencv)/launch/camera.launch" >   
     <arg name="camera_name" value="drone_webcam" /> <!-- node name and ros graph name -->   
     <arg name="video_stream_provider" value="http://192.168.1.227:8080/video?x.mjpeg" /> <!-- ?x.mjpeg see http://answers.opencv.org/question/13139/cvvideocapture-works-for-webcams-but-not-ip-cameras/ --> 
     <arg name="fps" value="10" /><!-- throttling the querying of frames to 10Hz -->   
     <arg name="frame_id" value="webcam" /> <!-- setting TF frame_id -->   
     <arg name="camera_info_url" value="file:///abc/xyz.yaml" /> <!-- camera info loading, take care as it needs the "file:///" at the start , e.g.: 
     "file:///$(find your_camera_package)/config/your_camera.yaml" -->   
     <arg name="flip_horizontal" value="false" /> <!-- flip the image horizontally (mirror it) --> 
     <arg name="flip_vertical" value="false" /> <!-- flip the image vertically -->   
     <arg name="visualize" value="true" /> <!-- visualize on an image_view window the stream generated --> 
    </include> 
</launch> 

Обратите внимание на /video?x.mjpeg в конце URL.