[ros-users] video streaming

Patrick Mihelich mihelich at willowgarage.com
Tue Nov 16 01:37:42 UTC 2010


Hi Daniel,

On Mon, Nov 15, 2010 at 1:50 PM, Daniel Radev <djradev at hotmail.com> wrote:

> After examining the code, I believe there is image_transport package (not a
> surprise) to publish camera data (either row, compressed images and theora
> video).
>
> However I need video streaming, i.e theora streamed over the network so
> that the device can show it. Currently it looks like not possible or I can't
> find how to do it.
> Do you have any further info or idea how to achieve this?
>

I'm not even sure decoding Theora video (or anything other than H.264) on
the iPhone is a solved problem. Are you able to run some version of
libtheora on the phone and get good performance?

image_transport provides plugins for various compression schemes, but these
(at least the existing ones) are limited to the transport protocols
currently supported by ROS, namely TCP and UDP. Whereas for streaming video,
something like RTP (real-time transport protocol) is more suitable.

Maybe you can extract something useful from theora_image_transport, or at
least use it to create Theora packets on the robot side. I'm an expert on
neither streaming video nor iPhone development, so I'm afraid I can't be of
much more help.

Some folks at SIUE have worked on a ROS interface for the Parrot AR.Drone
quadrotor, which uses H.263 for the video feed (ML
archive<http://code.ros.org/lurker/message/20101015.202439.18adb98f.en.html>).
Maybe they have some more experience interfacing ROS with streaming video.

Also is there a way to simulate a camera(even several images), just so I can
> continue with my work and tests, without actual hardware?
>

If you want images from a true simulated environment, you should investigate
the ROS wrappers for the Gazebo simulator,
http://www.ros.org/wiki/simulator_gazebo. In particular the GazeboRosCamera
plugin in gazebo_plugins.

If just publishing some images from disk is sufficient, mocking up a ROS
node that acts like a camera driver is pretty easy. There's some code
here<https://code.ros.org/gf/project/wg-ros-pkg/scmsvn/?action=browse&path=%2Fbranches%2Ftrunk_cturtle%2Fstacks%2Fbilliards%2Fbilliard_ball_detector%2Fsrc%2Fstatic_image_publisher.cpp&view=markup&revision=46393>(for
continually publishing a single image) that should get you started.

A final and maybe the best option is to record a bag file of actual data
from your robot, and use that while testing.

Cheers,
Patrick
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ros.org/pipermail/ros-users/attachments/20101115/ba310201/attachment-0003.html>


More information about the ros-users mailing list