通过ROS进行多机协同控制

远程通讯的建立

ros 本身就是一个分布式节点通讯架构,使节点之间进行信息通讯是其重要的作用。一般来说,我们都是在一个系统里进行ros系统的运行通讯的,其实一直这么做就有点让ros 的分布式通讯机制显得格局小了。其实ROS的这种分布式通讯机制是可以衍衍生到整个局域网的,处在同一个局域网中的设备都能进行通讯。下面就是对ros的多机通讯测试的说明:

在做这个之前,需要了解一下ROS的几个通讯配置,即ROS_MASTER_URIROS_IP

  • URI 是什么,因为我不是做网络通讯的,讲不出多么正确的定义,知道它是个标识就行了,即身份标识。
  • ROS_MASTER_URI 是 ROS 启动 roscore 时的地址,就是 master 的 地址。
  • ROS_IP 为本地的 ip 地址

而这个两者的意义或者作用在哪?——通讯上,更准确的是 远程通讯

  • 有拉回到本片文章所说的 同于局域网张同时协同控制多个设备,控制的想法就是 利用电脑(作为ros master 的运行者)作为主机,而处在局域网中的 其他 ros 机器人(比如A 、B 、C 等)作为从机机器人。
  • 此时ROS_MASTER_URI的地址就是主机的,即电脑

(1)连接到同一个wifi

  • 提示:两设备连接到同一个wifi后,使用ifconfig 查看两设备的各自 ip地址,最好再使用 ping + ip 方式 相互ping 一下,ping 通的情况下,后面的操作才能成功。

(2)如下方为例:

主机(虚拟机) ip :192.168.1.1
从机(jetson tx2) ip :192.168.1.2

(3)在主机和从机的环境配置文件 ~/.bashrc中添加:
11311 这个是端口号,roscore运行时的默认串口
主机:

export ROS_MASTER_URI=http://192.168.1.1:11311
export ROS_IP=192.168.1.1

从机

export ROS_MASTER_URI=http://192.168.1.1:11311
export ROS_IP=192.168.1.2

就是保证同一个master 地址

如何嫌使用ip麻烦,可以在 /etc/hosts 中声明

sudo gedit /etc/hosts

加入:

192.168.1.2	follow
192.168.1.1	master

中间使用 tab 键间隔,保存后,在使用ip时只需要用后面的名字就好了。

在测试中,我建议还是使用 jetson tx2 作为运行 master 的一方,因为使用了export ROS_MASTER_URI 后roscore的运行会被固定在这个ip上,但是当没有这个ip(也就是没有同一个wifi时),roscore就运行不了。这会给虚拟机独自运行产生不便。

启发

利用以上的方法,在同一局域网中,可以添加多个机器人,让一个机器人作为master运行者,其他只需设定ROS_MASTER_URIROS_IP 就可以实现多机器人系统控制了。

出现的问题

虚拟机的 ubuntu 能够 ping 通 处在同一局域网的 jetson tx2 设备,但是jetson tx2 只能 ping 通虚拟机所在主机window下的ip,但是ping 不通虚拟机的ip,从而导致了在进行ros通讯测试时,虚拟机只能作为一个订阅者接收到jetson tx2 作为发布者发送的消息,而虚拟机作为发布者时,jetson tx2作为订阅者却什么都接收不到。
通俗的讲,在同一局域网中,虚拟机找得到jetson tx2,但是jetson tx2找不到虚拟机
已经排除问题:
(1)windows的防火墙已关闭,ubuntu 的防护墙也关闭
(2)虚拟机使用net模式

解决

最终在csdn中提问得到了回答,虚拟机需要设置成桥接模式才行。

  • 1
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
随着科学技术的发展,移动机器人及其应用不断提高单个已 随着科学技术的发展,移动机器人及其应用不断提高单个已 随着科学技术的发展,移动机器人及其应用不断提高单个已 随着科学技术的发展,移动机器人及其应用不断提高单个已 随着科学技术的发展,移动机器人及其应用不断提高单个已 随着科学技术的发展,移动机器人及其应用不断提高单个已 随着科学技术的发展,移动机器人及其应用不断提高单个已 随着科学技术的发展,移动机器人及其应用不断提高单个已 随着科学技术的发展,移动机器人及其应用不断提高单个已 随着科学技术的发展,移动机器人及其应用不断提高单个已 随着科学技术的发展,移动机器人及其应用不断提高单个已 随着科学技术的发展,移动机器人及其应用不断提高单个已 随着科学技术的发展,移动机器人及其应用不断提高单个已 随着科学技术的发展,移动机器人及其应用不断提高单个已 随着科学技术的发展,移动机器人及其应用不断提高单个已 随着科学技术的发展,移动机器人及其应用不断提高单个已 随着科学技术的发展,移动机器人及其应用不断提高单个已 随着科学技术的发展,移动机器人及其应用不断提高单个已 随着科学技术的发展,移动机器人及其应用不断提高单个已 随着科学技术的发展,移动机器人及其应用不断提高单个已 随着科学技术的发展,移动机器人及其应用不断提高单个已 随着科学技术的发展,移动机器人及其应用不断提高单个已 随着科学技术的发展,移动机器人及其应用不断提高单个已 随着科学技术的发展,移动机器人及其应用不断提高单个已 随着科学技术的发展,移动机器人及其应用不断提高单个已 随着科学技术的发展,移动机器人及其应用不断提高单个已 随着科学技术的发展,移动机器人及其应用不断提高单个已 随着科学技术的发展,移动机器人及其应用不断提高单个已 随着科学技术的发展,移动机器人及其应用不断提高单个已 随着科学技术的发展,移动机器人及其应用不断提高单个已 随着科学技术的发展,移动机器人及其应用不断提高单个已 随着科学技术的发展,移动机器人及其应用不断提高单个已 经不能满足复杂的 自动化任务要求,多个机器人协作技术成为迫切需解决经不能满足复杂的 自动化任务要求,多个机器人协作技术成为迫切需解决经不能满足复杂的 自动化任务要求,多个机器人协作技术成为迫切需解决经不能满足复杂的 自动化任务要求,多个机器人协作技术成为迫切需解决经不能满足复杂的 自动化任务要求,多个机器人协作技术成为迫切需解决经不能满足复杂的 自动化任务要求,多个机器人协作技术成为迫切需解决经不能满足复杂的 自动化任务要求,多个机器人协作技术成为迫切需解决经不能满足复杂的 自动化任务要求,多个机器人协作技术成为迫切需解决经不能满足复杂的 自动化任务要求,多个机器人协作技术成为迫切需解决经不能满足复杂的 自动化任务要求,多个机器人协作技术成为迫切需解决经不能满足复杂的 自动化任务要求,多个机器人协作技术成为迫切需解决经不能满足复杂的 自动化任务要求,多个机器人协作技术成为迫切需解决经不能满足复杂的 自动化任务要求,多个机器人协作技术成为迫切需解决经不能满足复杂的 自动化任务要求,多个机器人协作技术成为迫切需解决经不能满足复杂的 自动化任务要求,多个机器人协作技术成为迫切需解决经不能满足复杂的 自动化任务要求,多个机器人协作技术成为迫切需解决经不能满足复杂的 自动化任务要求,多个机器人协作技术成为迫切需解决经不能满足复杂的 自动化任务要求,多个机器人协作技术成为迫切需解决经不能满足复杂的 自动化任务要求,多个机器人协作技术成为迫切需解决经不能满足复杂的 自动化任务要求,多个机器人协作技术成为迫切需解决经不能满足复杂的 自动化任务要求,多个机器人协作技术成为迫切需解决经不能满足复杂的 自动化任务要求,多个机器人协作技术成为迫切需解决经不能满足复杂的 自动化任务要求,多个机器人协作技术成为迫切需解决经不能满足复杂的 自动化任务要求,多个机器人协作技术成为迫切需解决经不能满足复杂的 自动化任务要求,多个机器人协作技术成为迫切需解决经不能满足复杂的 自动化任务要求,多个机器人协作技术成为迫切需解决经不能满足复杂的 自动化任务要求,多个机器人协作技术成为迫切需解决经不能满足复杂的 自动化任务要求,多个机器人协作技术成为迫切需解决经不能满足复杂的 自动化任务要求,多个机器人协作技术成为迫切需解决经不能满足复杂的 自动化任务要求,多个机器人协作技术成为迫切需解决经不能满足复杂的 自动化任务要求,多个机器人协作技术成为迫切需解决经不能满足复杂的 自动化任务要求,多个机器人协作技术成为迫切需解决经不能满足复杂的 自动化任务要求,多个机器人协作技术成为迫切需解决经不能满足复杂的 自动化任务要求,多个机器人协作技术成为迫切需解决经不能满足复杂的 自动化任务
多架无人机协同控制系统ROS(CSDN)是一种基于ROS(机器人操作系统)的多无人机协同控制系统。ROS是一种开源的、灵活的机器人开发平台,提供了一种快速构建机器人软件的方法。而CSDN(国软件开发者社区)则是一个广泛使用的技术社区,提供了大量的技术资源和交流平台。 多架无人机协同控制系统ROS(CSDN)的设计原则是通过ROS提供的开发工具和通信机制,实现多架无人机之间的高效合作和协同控制。该系统能够实现无人机之间的位置同步、任务分配和数据通信,从而实现多架无人机的协同工作。 该系统的核心功能包括位置估计、路径规划、避障和任务分配等。通过使用ROS提供的导航包,可以对每架无人机的位置进行估计和跟踪,并进行路径规划和导航控制。同时,系统还可以通过传感器数据,实现对障碍物的检测和避障功能,确保无人机能够安全飞行。 在任务分配方面,系统通过使用ROS的消息传递机制,可以实现无人机之间的任务协调和交互。通过任务发布和订阅的方式,系统能够将任务分配给合适的无人机,并实时更新任务状态和进度。 通过使用ROS(CSDN)多架无人机协同控制系统,可以实现多架无人机的协同工作,提高飞行效率和任务质量。该系统的开源性和灵活性,使得开发者可以基于此系统进行二次开发和定制,满足特定的需求和应用场景。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LionelMartin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值