ros网络

本文详细介绍了ROS(Robot Operating System)在多台机器间的通信配置,包括理解master和host的角色,如何配置hosts和bashrc文件,以及如何检查网络配置的成功。在实际操作中,可能遇到ROS网络连接的不稳定性,可以通过SSH工具进行远程连接作为补充。

在第一篇文章 ros的安装中提到过ros是一个伪分布式系统,允许多台机器合作计算,这篇文章讲一下ros多台机器通信的配置。
首先要搞清楚两个概念 master和host,说ros是伪分布式的系统,是因为各个节点有主次之分,master的地位无可动摇
Ros的分布式大概是这样的:

  1. 整个系统有两种节点构成,master和host。
  2. Host可以有很多,master只能有一个
  3. Host做完计算后数据通过rosout话题发布到master上,由master对机器人发布,进而控制机器人运动
  4. Master也是一个host,也可以进行运算
  5. Host根据bashrc里的配置,通过ip地址找到master

在系统中的相关配置:

  1. hosts文件的配置
    host文件是系统的网络配置文件,相当于本地dns,里面的内容是主机名和地址的键值对,配置host文件是为了确保主机名和ip地址对应,此步骤有点玄学的成分在里面,有时候需要配置,有时候不需要配置
    用到的所有电脑:
    先用gedit打开host文件
    sudo gedit /etc/host

将所有用得到的主机名和地址以文件本来内容的格式写上去即可。

  1. bashrc文件的配置

用gedit打开bashrc
sudo gedit ~/.bashrc

将以下内容添加到bashrc文件的底部
export ROS_MASTER_URI=http:// ip_of_master:11311
export ROS_HOSTNAME=ip_of_host

ip_of_master是master的ip地址,就是和机器人底盘直接相连的那台电脑的ip地址。
Ip_of_host 是host的ip地址,每台电脑都是host,所以每台电脑的ip_of_host都是自己的IP地址

保存退出后source ~/.bashrc

  1. 检查网络是否配置成功
    Master上:
    roscore 启动ros

host上:
rostopic list 查看话题,如果出现话题名则成功,报错连接不上ros主机则失败

注:不知道是我机器的问题还是怎么滴,ros的网络非常不稳定,常常出现连接失败的情况

除了使用ros本身的通信机制,还可以使用ssh工具进行远程连接,ssh工具只是远程登录发布命令,并不涉及分布计算,此处不做讲解。关于本文提到的话题节点,之后会讲到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值