ROS高效图传的一些方法

原链接
运行测试平台:小强ROS机器人

图传是大家经常会遇到的一个问题,ROS中图传的方法也有很多。下面就总结一下常用到的方法。

1.设置ROS_MASTER_URI的方式
通过设置ROS_MASTER_URI,我们能够直接和远程主机进行通信。这样只要在远程端发出 image topic 然后在本地订阅这个 topic 就可以显示了。下面是一个具体例子
假设远程端已经有一个image topic 名称为 /camera_node/image_raw,远程端计算机名为 xiaoqiang-desktop, 其ip为 192.168.0.130

a. 在本地计算机 /etc/hosts文件添加

192.168.0.130 xiaoqiang-desktop

b. 在本地计算机设置 ROS_MASTER_URI环境变量

export ROS_MASTER_URI=http://xiaoqiang-deskstop:11311

c. 在本地计算机输入rostopic list就可以看到远程计算机的topic
在本地计算机上输入

rosrun image_view image_view image:=/camera_node/image_raw

就可以通过 image_view打开远程图传了。

然而默认的传输方式图像是没有压缩的,占用的带宽非常大。可以通过添加压缩参数来传输。

rosrun image_view image_view image:=/camera_node image_raw compressed

这里实际上使用了image_transport这个包进行了压缩。这个包不仅能够压缩视频图像也可以压缩深度图像信息。不过这个压缩算法是逐帧压缩的,所以压缩的效率并不高,带宽使用率也比较高。但是实时性是比较高的。

2.使用 web_video_server软件包
在远程端安装这个包。安装方法如下
在自己的工作空间中

git clone https://github.com/RobotWebTools/web_video_server
cd ..
catkin_make

等待编译完成,启动节点

rosrun web_video_server web_video_server

启动后在本地浏览器输入http://192.168.0.130:8080/stream?topic=/camera_node/image_raw&type=vp8,就可以在浏览器中打开远程视频了。这种方法也是不仅能够压缩一般图像数据也可以压缩深度图像数据,同时可以设置多种压缩方式。由于视频传输是采用的标准的http格式,所以客户端读取视频的时候可以完全脱离ROS的框架,使用起来也比较容易。这种压缩方式压缩效率也比第一种高很多。但是实际使用中发现实时性要差一点,这个和客户端如果处理数据关系比较大,比如缓存设置的比较大,就会有较大的延时。

参考资料:
ROS wiki: image_transport
ROS wiki: web_video_server

  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
ROS(Robot Operating System)是一个灵活的框架,用于构建机器人应用程序。下面是制作ROS智能车的一般步骤: 1. 硬件选择:选择适合你项目需求的硬件平台,例如树莓派、NVIDIA Jetson等。 2. 安装ROS:根据硬件平台的要求,安装适合的ROS版本。ROS有多个版本可供选择,如ROS Kinetic、ROS Melodic等。 3. 创建工作空间:在ROS中,使用工作空间来组织和管理你的项目。创建一个新的工作空间,并设置ROS环境变量。 4. 创建ROS包:ROS包是ROS中最基本的组织单元,用于组织和管理代码、配置文件和数据等。使用命令行工具创建一个新的ROS包。 5. 编写节点:节点是ROS中的基本执行单元,用于实现不同的功能。编写节点代码,可以使用C++或Python等编程语言。 6. 定义消息和服务:在ROS中,消息和服务用于节点之间的通信。根据你的需求,定义自己的消息和服务类型。 7. 配置launch文件:launch文件用于启动和配置ROS系统。根据你的需求,编写launch文件来启动和配置你的节点。 8. 构建和编译:使用catkin工具构建和编译你的ROS包。确保没有错误和警告。 9. 运行ROS系统:使用roslaunch命令来启动你的ROS系统。观察节点之间的通信和功能是否正常。 10. 测试和调试:对你的ROS系统进行测试和调试,确保它能够正常工作。 11. 部署和优化:根据你的需求,将ROS系统部署到实际的智能车平台上,并进行性能优化和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值