【multimaster_fkie】多 ros master core 通信库,不配置主从机进行 ros 多机通信

1. 简介

多个 ros 系统之间可以通过配置 ros 主从机实现互相通信,但有的场景每个 ros 系统都需要运行 rosmaster/roscore ,这种情况下就需要使用 multimaster_fkie 库来实现 ros 通信。
Github:https://github.com/fkie/multimaster_fkie
ROS wiki:http://wiki.ros.org/multimaster_fkie/Tutorials/Setup a ROS master synchronization

2. 安装 multimaster_fkie

多个 ros 系统中都要进行以下安装步骤

2.1. 安装 python grpc 工具

# # 比 ubuntu-18.04 更早的系统
# pip install grpcio-tools  # 如果 ros 适配的是 python3 (viobot)# ubuntu-18.04
sudo add-apt-repository ppa:roehling/grpc
sudo apt update
sudo apt install python-grpcio python-grpc-tools# # ubuntu-18.10 以及更新的系统
# sudo apt install python-grpcio python-grpc-tools

2.2. 安装 fkie_multimaster

# 新建一个空的 catkin_ws
mkdir -p ~/catkin_ws_for_build/src
cd ~/catkin_ws_for_build/src
git clone https://github.com/fkie/multimaster_fkie.git multimasterrosdep update
rosdep install -i --as-root pip:false --reinstall --from-paths multimastercd ..
catkin build fkie_multimaster

如果最后的 catkin build 报错 catkin:未找到命令 ,运行以下指令

sudo apt install python-catkin-tools

2.3. 将安装好的库添加到 ros 环境和 python 环境中

~/.bashrc 内添加以下 ros 环境变量:

export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/catkin_ws_for_build/src

将 catkin build 生成的 python 包移到 python 环境中

# 如果 ros 是 python2
sudo cp -r ~/catkin_ws_for_build/devel/lib/python2.x/dist-packages/* /usr/local/lib/python2.x/dist-packages/# # 如果 ros 是 python3
# sudo cp -r ~/catkin_ws_for_build/devel/lib/python3.x/dist-packages/* /usr/local/lib/python3.x/dist-packages/

2.4. 设置网络

  1. 多个 ros 系统之间需要可以直接互相访问 ip 和全部端口(即之间没有防火墙),互相有线连接最佳。

  2. /etc/hosts 文件中添加行 <本机在网络中的 ip> <本机 hostname>,分别可以用 hostname -Ihostname 命令查询得。

  3. /etc/sysctl.conf 加入以下内容:

net.ipv4.ip_forward=1
net.ipv4.icmp_echo_ignore_broadcasts=0
  1. 使以上网络设置生效:sudo service procps restart

  2. 测试能否 multicast 连通其他主机:ping 224.0.0.1,出现本机和他机的 ping 结果即为成功

3. 测试多 ros master 通信

多个 ros 系统中,都在含有 fkie_master_xxx packages 的 python 环境中运行 multimaster_fkie

rosrun fkie_master_discovery master_discovery >/dev/null 2>&1 &
rosrun fkie_master_sync master_sync >/dev/null 2>&1 &

然后使用命令 rostopic list --host 查看可以访问的 rostopic,出现本机以及他机的 rostopic 即为成功。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/51588.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

本地搭建CFimagehost私人图床【公网远程访问】

文章目录 1.前言2. CFImagehost网站搭建2.1 CFImagehost下载和安装2.2 CFImagehost网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1 Cpolar临时数据隧道3.2 Cpolar稳定隧道&#xff08;云端设置&#xff09;3.3.Cpolar稳定隧道&#xff08;本地设置&#xff09; 4.公网访问测…

Redis数据结构之Set

Set 类型是一个无序并唯一的键值集合&#xff0c;它的存储顺序不会按照插入的先后顺序进行存储。Redis 中集合是通过哈希表实现的&#xff0c;所以添加&#xff0c;删除&#xff0c;查找的复杂度都是 O(1)。相对于列表&#xff0c;集合也有两个特点&#xff1a;无序、不可重复 …

js reverse实现数据的倒序

2023.8.25今天我学习了如何在数组顺序进行倒序排列&#xff0c;如&#xff1a; 原数组为&#xff1a; 我们只需要对数组使用reverse()方法 let demo [{id: 1, name: 一号},{id: 2, name: 二号},{id: 3, name: 三号},]demo.reverse()console.log(demo) 扩展&#xff1a; 当我…

jmeter入门:接口压力测试全解析

一.对接口压力测试 1.配置 1.添加线程组&#xff08;参数上文有解释 这里不介绍&#xff09; 2.添加取样器 不用解释一看就知道填什么。。。 3.添加头信息&#xff08;否则请求头对不上&#xff09; 也不用解释。。。 4.配置监听器 可以尝试使用这几个监听器。 2.聚合结果…

Tushare入门小册

Tushare入门小册 一、Tushare平台介绍 Pro版数据更稳定质量更好了&#xff0c;我们提供的不再是直接从互联网抓取&#xff0c;而是通过社区的采集和整理存入数据库经过质量控制后再提供给用户。但Pro依然是个开放的&#xff0c;免费的平台&#xff0c;不带任何商业性质和目的…

什么是服务端渲染?前后端分离的优点和缺点?

一.概念 服务端渲染简单点就是服务端直接返回给客户端一个完整的页面&#xff0c;也就是一个完整的html页面&#xff0c;这个页面上已经有数据了。说到这里你可能会觉得后端怎么写页面啊&#xff0c;而且服务端返回页面不是加载更慢吗&#xff1f;错了&#xff0c;因为我们现在…

4.网络设计与redis、memcached、nginx组件(一)

网络组件系列文章目录 第四章 网络设计与redis、memcached、nginx组件 文章目录 网络组件系列文章目录文章的思维导图前言一、网络相关的问题&#xff0c;网络开发中要处理那些问题&#xff1f;网络操作IO连接建立连接断开消息到达消息发送网络操作IO特性 二、网络中IO检测IO函…

VR、AR、MR 傻傻分不清楚?区别的底层逻辑?

VR是一种能够制作虚拟物体并与人互动的基础技术。它与操作者所处的环境无关。AR可以让在特定位置出现或消失。MR可以让虚拟物体与真实物体进行互动。 AR和MR的大部分应用场景都是随机的&#xff0c;所以硬件基本都采用手机和眼镜。提升了便携性。牺牲了性能。这就导致了AR与MR…

基于Springboot+vue的宠物服务管理系统——LW模板

摘 要 21世纪的今天&#xff0c;随着人类生活从低层次不断向高层次跃进&#xff0c;人类和宠物的关系已经密不可分。人们生活水平的进步进而带来了宠物生活水平的进步&#xff0c;因此对于宠物的管理也愈发的丰富起来&#xff0c;宠物的膳食安排&#xff0c;宠物的医疗安排等都…

罗勇军 →《算法竞赛·快冲300题》每日一题:“乘积” ← 动态规划

【题目来源】http://oj.ecustacm.cn/problem.php?id1781http://oj.ecustacm.cn/viewnews.php?id1023【题目描述】 给你一个长度为 n 的序列&#xff0c;序列中的元素只包括 1 和 -1。 请问有多少个连续的子序列乘积为正数。【输入格式】 输入第一行为正整数 n。&#xff08;n…

SpringBoot概述SpringBoot基础配置yml的使用多环境启动

&#x1f40c;个人主页&#xff1a; &#x1f40c; 叶落闲庭 &#x1f4a8;我的专栏&#xff1a;&#x1f4a8; c语言 数据结构 javaEE 操作系统 石可破也&#xff0c;而不可夺坚&#xff1b;丹可磨也&#xff0c;而不可夺赤。 SpringBoot简介 一、 SpringBoot概述1.1 起步依赖…

【深度学习】实验01 波士顿房价预测

文章目录 波士顿房价预测SklearnKeras 波士顿房价预测 Sklearn # 导入机器学习库 from sklearn.linear_model import LinearRegression, SGDRegressor, Ridge, LogisticRegression, RidgeCV from sklearn.datasets import load_boston from sklearn.model_selection import t…

ProxySQL+MGR高可用搭建

服务器点位 NODEIPmgr_node0192.165.26.200mgr_node1192.165.25.201mgr_node2192.165.26.202proxysql192.165.26.199 修改主机名 # 登录192.165.26.200 hostnamectl set-hostname mgr_node0 # 登录192.165.26.201 hostnamectl set-hostname mgr_node1 # 登录192.165.26.202 …

后端项目开发:集成接口文档(swagger-ui)

swagger集成文档具有功能丰富、及时更新、整合简单&#xff0c;内嵌于应用的特点。 由于后台管理和前台接口均需要接口文档&#xff0c;所以在工具包构建BaseSwaggerConfig基类。 1.引入依赖 <dependency><groupId>io.springfox</groupId><artifactId>…

Docker自学:利用FastAPI建立一个简单的web app

环境配置&#xff1a;下载Docker Desktop 文件一&#xff1a;main.py from typing import Unionfrom fastapi import FastAPIimport uvicornapp FastAPI()app.get("/") def read_root():return {"Hello": "World"}app.get("/items/{item…

线性代数的学习和整理10:各种特殊类型的矩阵(草稿-----未完成 建设ing)

目录 1 图形化分类 1.1对称矩阵 1.2 梯形矩阵 1.3 三角矩阵 1.3.1 上三角矩阵 1.4 对角线矩阵 2 按各自功能分 2.1 等价矩阵 2.2 增广矩阵 2.3 伴随矩阵 2.4 正交矩阵 2.5 正交矩阵 2.6 相似矩阵 1 图形化分类 1.1对称矩阵 1.2 梯形矩阵 1.3 三角矩阵 1.3.1 上…

有序充电运营管理平台是基于物联网和大数据技术的充电设施管理系统-安科瑞黄安南

随着我国能源战略发展以及低碳行动的实施&#xff0c;电动汽车已逐步广泛应用&#xff0c;而电动汽车的应用非常符合当今社会对环保意识的要求&#xff0c;以及有效节省化石燃料的消耗。 由于其没有污染排放的优点以及政府部门的关注&#xff0c;电动汽车将成为以后出行的重要…

OnePlus Open可折叠手机:规格、价格、发布日期等详细信息汇总!

我们知道OnePlus可折叠手机即将问世,无论它是否被命名为OnePlus Open。我们迫不及待地想让它到来,为该公司再添一根弦,为最好的可折叠手机增添一个新的竞争对手。 OnePlus以前没有生产过任何可折叠产品,但它确实拥有合作伙伴公司Oppo的丰富知识,并可以向三星、摩托罗拉和…

maven无法从阿里云中央仓库下载jar包的解决方法

这个方法不一定适用于所有人。 问题描述&#xff1a;启动公司的SpringBoot项目时&#xff0c;maven爆红提示从阿里云中央仓库找不到目标jar包&#xff0c;但我本地maven仓库是有这个jar包的&#xff08;版本也对的上&#xff09;&#xff0c;我就好奇maven为什么不从本地获取ja…

支持dolby vision的盒子接支持dolby vision的电视,在adaptive hdr时,播放非dv的hdr视频,输出sdr

支持dolby vision的盒子接支持dolby vision的电视&#xff0c;setting选择adaptive hdr&#xff0c;按照这个配置在播放非dv的hdr视频时&#xff0c;会输出sdr。 看起来是很不合理的&#xff0c;高级的产品播放高级的片源&#xff0c;却输出低级的画质。 想要搞清楚这个问题&am…