导航

    蓝鲸ROS机器人论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 热门
    ROS交流群
    ROS Group
    产品服务
    Product Service
    开源代码库
    Github
    官网
    Official website
    技术交流
    Technological exchanges
    激光雷达
    LIDAR
    ROS教程
    ROS Tourials
    深度学习
    Deep Learning
    机器视觉
    Computer Vision

    ROS高效图传的一些方法

    技术交流
    ros教程
    1
    1
    4864
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • weijiz
      weijiz 最后由 weijiz 编辑

      图传是大家经常会遇到的一个问题,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

      1 条回复 最后回复 回复 引用 0
      • 1 / 1
      • First post
        Last post
      Copyright © 2015-2023 BlueWhale community