ROS 学习备忘录 - 04 - 使用 web_video_server 将 image 话题转发至局域网

ROS机器人编程-问题备忘

备忘 ROS 开发中本地视频端口转发问题。时间:2020/12/07

一、问题与动机
  • 简单介绍问题产生的场景,我有一台机器人搭载有相机,上面运行 ubuntu 18.04 + ros melodic ,同时 ros master 在该机器人上运行,该机器人和另外一台电脑 A 处于同一局域网,这里记为 192.168.1.X 通过配置多机通信(参考另一篇)可以在台式机上获取到机器人发布的 image 话题。
  • 现在有一个需求,另外有几台电脑 B、C、D 处于另一个局域网下,记为 192.168.2.X ,另外,电脑 A 也处于该局域网下,即,电脑 A 既在 192.168.1.X 内,也在 192.168.2.X 内。现在想要在电脑 B、C、D 通过网络展示机器人的摄像头画面。
  • 问题不是个复杂的问题,但是一般可能不会有这个应用场景,这次偶然遇到了,由于网络通信知识薄弱,也是查了挺久,记录一下。
二、利用 web_video_server 解决思路
  • 对于上述需求,经查阅资料后提出一种解决方案,用到了这个功能包 web_video_server

  • 解决流程,电脑 A 通过 192.168.1.X 局域网订阅机器人的 image 话题,同时运行 web_video_server 节点,将转换后的本地视频流的网络地址 设置为电脑 A192.168.2.X 下的 ip 加上自己喜欢的端口号(例如 5000,随便你设置),在电脑 B、C、D 上打开浏览器,输入 192.168.2.IP:5000 (替换IP和端口号),即可看到图像流。

  • web_video_server 建议从源码安装:

cd catkin_ws/src
git clone https://github.com/RobotWebTools/web_video_server.git
cd ..
catkin_make
  • 编译好后,该功能包没有提供 launch 文件,进入该功能包,新建一个:
roscd web_video_server
mkdir launch && cd launch
gedit web_video_server.launch
  • 接着编辑 launch 文件,例如,电脑 A 在两个局域网下的 ip192.168.1.10192.168.2.10 这里注意,一定要 “address” 填写 192.168.2.10 ,也就是跟电脑 B、C、D 一样的局域网网段,否则无法访问, 其他参数的设置可以自行修改,参考wiki
<launch>
  <node pkg="web_video_server" type="web_video_server" name="web_video_server" output="screen">
    <param name="port" type="int" value="5000" />
    <param name="address" type="string" value="192.168.2.10" />
    <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" />
    <param name="height" type="int" value="1080" />
  </node>
</launch>
三、命令流程
  1. 在机器人上运行 roslaunch usb_cam usb_cam-test.launch
  2. 在电脑 A 上运行 roslaunch web_video_server web_video_server.launch
  3. 在电脑 B、C、D 上打开浏览器,输入 192.168.2.10:5000 (注意替换 ip 和端口)。
  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值