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

这篇具有很好参考价值的文章主要介绍了【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图传!

【效果一展】

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

 【福利来了】

私信我,拿源码!!文章来源地址https://www.toymoban.com/news/detail-497773.html

到了这里,关于【ROS】基于WIFI网络实现图像消息跨机实时传输的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android开发—基于OpenCV实现相机实时图像识别跟踪

    xmlns:opencv=“http://schemas.android.com/apk/res-auto” xmlns:tools=“http://schemas.android.com/tools” android:id=“@+id/activity_img_recognition” android:layout_width=“match_parent” android:layout_height=“match_parent” tools:context=“com.sueed.imagerecognition.CameraActivity” org.opencv.android.JavaCameraView android:id=“@+id/jcv”

    2024年04月17日
    浏览(24)
  • 基于光流方法实时跟踪目标在图像中的运动轨迹(python和C++实现)

    光流方法是通过跟踪图像中的特征点(角点,边缘点等),分析这些点在帧与帧之间的运动,来计算物体运动轨迹和速度。具体实现目标如下: 1、选取图像中的易被识别的特征点,如Harris角点,FAST角点。 2、为每个特征点选取一个领域窗口,跟踪该窗口在连续视频帧中的变

    2023年04月24日
    浏览(29)
  • 基于ros和openpcdet使用自己的雷达进行实时三维目标检测

    参考博主hello689的教程,文中主要介绍了对于kitti的三维目标检测,本文对代码进行修改,添加旋转坐标轴的代码,以适配自己的雷达,可以参考这个博主的流程,再看本文对旋转参数的修改。 3.1 ros.py代码修改 3.2 pointpillar.launch代码修改 3.3 pointpillar.rviz代码修改 3.4 ros.py订阅话

    2024年01月23日
    浏览(30)
  • 实时消息传送:WebSocket实现系统后台消息实时通知

    在现代Web应用中,提供实时通知对于改善用户体验至关重要。WebSocket技术允许建立双向通信通道,从系统后台将消息实时传送给系统用户,并在前端以弹窗的形式通知用户。本文将深入探讨如何使用WebSocket来实现这一功能。 WebSocket是一种双向通信协议,与传统的HTTP通信不同

    2024年02月08日
    浏览(37)
  • 基于ARM树莓派实现智能家居:语音识别控制,Socket网络控制,火灾报警检测,实时监控

    目录 一   项目说明 ①   设计框架 ②   功能说明 ③   硬件说明 ④   软件说明 二   项目代码 1 mainPro.c 主函数 2 InputCommand.h 控制设备头文件 3 contrlDevices.h 外接设备头文件 4 bathroomLight.c 泳池灯 5 livingroomLight.c 卧室灯 6 restaurantLight.c 餐厅灯 7 upstairLight.c 二楼灯 8 fire.c 火焰

    2024年02月03日
    浏览(46)
  • 基于RAM树莓派实现智能家居:语音识别控制,Socket网络控制,火灾报警检测,实时监控

    目录 一   项目说明 ①   设计框架 ②   功能说明 ③   硬件说明 ④   软件说明 二   项目代码 1 mainPro.c 主函数 2 InputCommand.h 控制设备头文件 3 contrlDevices.h 外接设备头文件 4 bathroomLight.c 泳池灯 5 livingroomLight.c 卧室灯 6 restaurantLight.c 餐厅灯 7 upstairLight.c 二楼灯 8 fire.c 火焰

    2024年02月02日
    浏览(47)
  • 基于U-Net网络实现图像分割

    黎长淼,男,西安工程大学电子信息学院,2022级研究生 研究方向:控制科学与工程 电子邮件:1043626870@qq.com 陈梦丹,女,西安工程大学电子信息学院,2022级硕士研究生,张宏伟人工智能课题组 研究方向:机器视觉与人工智能 电子邮件:1169738496@qq.com U-Net是2015年提出的一种

    2024年02月09日
    浏览(29)
  • 【图像分类】基于卷积神经网络和主动学习的高光谱图像分类(Matlab代码实现)

     💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 文献来

    2024年02月12日
    浏览(35)
  • scrcpy实现手机屏幕与ubuntu共享、推流、实时分割(wifi环境下)

    有些时候我们需要将手机上的视频投到ubuntu上并进行处理,scrcpy就是一个非常低延时并且可以wifi共享的工具,本文主要针对其源码进行修改,实现ubuntu上实时分割手机画面,分为安装编译源(大坑)、修改源码、修改分割推理代码三部分。 scrcpy的使用和wifi连接可参考 Ubunt

    2024年02月12日
    浏览(28)
  • Java使用websocket实现消息实时通知

    博客仅做学习记录使用。 做项目中遇到这样一个实时通知需求,因为第一次接触这个,期间查了很多资料,看了很多博客,最后实现功能,查询的博客太多,就不一一放出来了,感谢各位大佬。 websocket方式主要代码来源于这个大佬的博客: https://blog.csdn.net/moshowgame/article/d

    2024年02月08日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包