参考链接:web_video_server - ROS Wiki
External Player - 哔哩哔哩嵌入式外链播放器
在ROS的使用中,无论是发布话题还是订阅话题等动作,都需要操作的设备上安装了ROS,这样在某些应用中就不太方便。
web_video_server功能包的功能是,对ROS中发布了图像、视频类的话题,通过这个功能包可以订阅这些话题,然后对图像压缩,通过网络传输出去,别可以通过网页的形式访问图像,这样就可以比较方便的获取ROS中的图像画面,而不需要在每一台需要访问图像的设备上都安装上ROS。
首先安装web_video_server功能包,如果使用其他版本的ROS,自行替换命令中的noetic字段
sudo apt install ros-noetic-web-video-server
安装完成后,启动摄像头节点,然后启动web_video_server节点
roslaunch usb_cam usb_cam-test.launch
rosrun web_video_server web_video_server
通过ifconfig
命令查看当前设备的IP地址。例如这里我的IP地址是192.168.31.132
web_video_server节点默认使用的8080端口,在本机或者局域网内其他设备上访问IP:8080,可以获得当前的图像列表。
点击对应的话题名即可预览当前的画面,点击Snapshot可以获得图像的一张快照
通过浏览器的地址栏可以看到,当前访问的地址为
http://192.168.31.132:8080/stream_viewer?topic=/usb_cam/image_raw
结合web_video_server功能包的wiki页面介绍,可以在地址中组合不同的参数调整图像格式、尺寸质量等。
例如给地址中加入quality=10调整图像质量,可以观察到图像的质量明显的下降,如果在网络不流畅的条件下,可以通过调整图像分辨率、质量等参数通过牺牲一定图像品质来换取更流畅的画面。