【ROS】基于WIFI网络实现图像消息跨机实时传输

【开发背景】

研究机器人目标检测算法的时候,常常需要把推理图像实时展示出来,以供观摩。而ROS1提供的跨机通信方法,要么是配置单Master,要么是配置多Master;一方面配置麻烦,另一方面传输效率低下,特别是在无线网络环境下,那叫一个鸡肋,仿佛我只需要喝一杯水,他却把整个太平洋给我搬来了一样。忍无可忍之下,萌生了自己动手开发一个图像消息传输中间件的冲动!于是乎,“ image_zmqpp ” —— 应运而生了!

【软件支持】

Ubuntu14.04 + ROS Indigo

Ubuntu16.04 + ROS Kinetic

Ubuntu18.04 + ROS Melodic

Ubuntu20.04 + ROS Noetic

【硬件支持】

X86架构

ARM架构

【依赖安装】

如果你的平台能够联网,那么只需要运行一句话即可:

sudo apt-get install libzmq3-dev

如果你的平台和我一样,处于不那么方便联网的情况 ,那也不用担心,只需要照着下面做即可:

1、把我提供的功能包下载下来,解压到任意一个ROS工作空间

2、找到 zmq_sup/third_party 路径下的 libzmq.tar.gz 压缩包,并解压

3、在该目录下打开一个终端,运行下面指令

mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr ..
sudo make install

4、然后便可以回到工作空间下进行 catkin_make 啦

【使用方法】

比如,你有三个机器人A、B、C,以及一台上位机,

  • 上位机这边需要运行
roslaunch image_zmqpp image_zmq_sub.launch

其中 launch 文件中的机器人个数以及IP地址等参数需要你根据实际情况做出修改

<?xml version="1.0"?>
<launch>
  <node pkg="image_zmqpp" type="image_zmqpp_sub" respawn="false" name="zmq_sub" output="screen">
    <param name="ip_num"     value="3"/>
    <param name="ip_addr_1"     value="tcp://192.168.30.26:5555"/>
    <param name="ip_addr_2"     value="tcp://192.168.1.54:5555"/>
    <param name="ip_addr_3"     value="tcp://192.168.1.55:5555"/>
    <param name="image_topic" value="img_zmq"/>
  </node>
</launch>
  • 机器人A、B、C上分别运行
roslaunch image_zmqpp image_zmq_pub.launch

这个launch文件中的IP地址也是要根据实际情况修改的

比如机器人A

<?xml version="1.0"?>
<launch>
  <node pkg="image_zmqpp" type="image_zmqpp_pub" respawn="false" name="zmq_pub" output="screen">
    <param name="ip_addr"     value="tcp://192.168.30.26:5555"/>
    <param name="image_topic" value="img_zmq"/>
  </node>
</launch>

机器人B

<?xml version="1.0"?>
<launch>
  <node pkg="image_zmqpp" type="image_zmqpp_pub" respawn="false" name="zmq_pub" output="screen">
    <param name="ip_addr"     value="tcp://192.168.1.54:5555"/>
    <param name="image_topic" value="img_zmq"/>
  </node>
</launch>

这样,你只需要把图像话题改成需要传输的话题,即可非常简单完成跨机WIFI图传!

【效果一展】

 【福利来了】

私信我,拿源码!!

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值