概述
web_video_server包的主要功能是,在ROS系统中,比如某些话题发布了图像、视频的话题,通过这个功能包可以订阅这些话题,然后对图像压缩,通过网络传输出去,这样我们就可以通过网络的方式获取到这些图像和话题。
(This package provides a video stream of a ROS image transport topic that can be accessed via HTTP. )
详情:http://wiki.ros.org/web_video_server
安装web-video-server
#sudo apt-get install ros-indigo-web-video-server
web-video-server 只有一个节点 node名称为web-video-server
而且有很多参数,所以我们可以写一个launch文件进行配置
# roscd web_video_server
# mkdir launch
# vim web_video.launch
其中web_video.launch文件内容,参考如下:
<launch>
<node pkg="web_video_server" type="web_video_server" name="web_video_server" output="screen">
<param name="port" type="int" value="8080" />
<param name="address" type="string" value="127.0.0.1" />
<param name="server_threads" type="int" value="1" />
<param name="ros_threads" type="string" value="2" />
<param name="width" type="int" value="1280" />
<param name="height" type="int" value="1080" />
<param name="quality" type="int" value="90" />
</node>
</launch>
详细参数可查看ROS官方文档:http://wiki.ros.org/web_video_server
使用web_video_server首先要有一个视频流,这里我们可以使用uvc_camera软件包,提供电脑自带摄像头捕获的视频流
安装uvc_camera
首先,需要配置自己的.launch文件:
# roscd uvc_camera
# ls
# cd launch //定位到 uvc_camera的launch文件夹下(其实launch文件的位置不限定,只是runlaunch的时候当前目录是软件包目录,使用相对路径比较简单而已)
# vim my_camera_node.launch
其中my_camera_node.launch文件如下:
<launch>
<node pkg="uvc_camera" type="uvc_camera_node" name="uvc_camera" output="screen">
<param name="width" type="int" value="1920" />
<param name="height" type="int" value="1080" />
<param name="fps" type="int" value="30" />
<param name="frame" type="string" value="wide_stereo" />
<param name="auto_focus" type="bool" value="False" />
<param name="focus_absolute" type="int" value="0" />
<!-- other supported params: auto_exposure, exposure_absolute, brightness, power_line_frequency -->
<param name="device" type="string" value="/dev/video0" />
<param name="camera_info_url" type="string" value="file://$(find uvc_camera)/example.yaml" />
</node>
</launch>
测试,自己的Launch文件,要在launch文件夹下运行
runlaunch my_camera_node.launch
启动
roslaunch uvc_camera my_camera.launch
测试和查看uvc_camera安装结果
为了验证自己uvc_camera是否安装成功,首先进行查看
# rospack list //查看package列表中是否有uvc_camera
# rospack find uvc_camera //这个就是我们刚才安装时候的路径
# roscd uvc_camera //定位到这个功能包的路径下
# rosls //查看它的文件结构
.launch文件是一个多节点同时运行的一个配置文件
src是源码文件夹
测试一下是否能用 uvc_camera获取到图像
# roscore
# rosrun uvc_camera uvc_camera_node
# rqt_image_view //选择话题为/image_raw
如果看到该话题传送的视频流图像,说明uvc_camera可以正常运行
使用web_video_server 传送视频流
启动web_video_server 来订阅视频流话题,然后压缩后发出
# roslaunch web_video_server web_video.launch
最后在浏览器中查看
http://127.0.0.1:8080/stream_viewer?topic=/image_raw
这里有在launch文件指定的IP 端口
/image_raw是uvc_camera发布的视频流话题名称**,如果有其他传送视频流的话题,也可以通过这个方式查看啦~**
最后
以上就是笨笨冰棍为你收集整理的ROS订阅视频流(获取摄像头视频流)的全部内容,希望文章能够帮你解决ROS订阅视频流(获取摄像头视频流)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复