两个或者多个ros之间的信息通信

本文详细介绍了ROS(Robot Operating System)在分布式多机环境下的通信配置过程,包括时间同步、网络设置、SSH通信建立及节点间通信测试。通过具体实例演示了如何在两台虚拟机之间实现ROS节点的交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

两个或者多个ros之间的信息通信

  1. 【必做】

时间同步sudo apt-get install chrony

 

1、【问题:】

E: 无法获得锁 /var/lib/apt/lists/lock - open (11: 资源暂时不可用)

E: 无法对目录 /var/lib/apt/lists/ 加锁

解决:

sudo rm /var/lib/apt/lists/lock

2、【知识】

ROS分布式多机通信

ROS是一种分布式软件框架,节点之间通过松耦合的方式进行组合,在很多应用场景下,节点可以运行在不同的计算平台上,通过Topic、Service进行通信。但是“一山不容二虎”,ROS只允许存在一个Master,在多机系统中Master只能运行在一个机器上,其他机器需要通过 ssh 的方式和Master取得联系。所以在多级ROS系统中需要一些配置。

 

我们以两台虚拟计算机为例,介绍分布式多机通信的配置步骤,其中计算机wlzxzq作为主机运行Master,计算机bei作为从机运行节点。

 

  1. 通过ifconfig查看计算机ip

Master计算机wlzxzq:192.168.161.132

从机计算机bei:192.168.161.132

  1. 修改~/.bashrc文件

Master计算机wlzxzq:192.168.161.132

# Set ROS Kinetic【以下是3个工作空间】

source /opt/ros/kinetic/setup.bash

source ~/catkin_ws/devel/setup.bash

source ~/ros_tutorials/devel/setup.bash

 

# Set ROS alias command

alias cw='cd ~/catkin_ws'

alias cs='cd ~/catkin_ws/src'

alias cm='cd ~/catkin_ws && catkin_make'

 

# Set ROS Network

export ROS_HOSTNAME=192.168.161.132

#ros主机IP  如机器人

# export ROS_MASTER_URI=http://192.168.161.132:11311  可以放开注释

#PC IP

从机计算机bei:192.168.161.132

# Set ROS Network

export ROS_HOSTNAME=192.168.161.133

export ROS_MASTER_URI=http://192.168.161.132:11311

# Set ROS alias command

alias cw='cd ~/catkin_ws'

alias cs='cd ~/catkin_ws/src'

alias cm='cd ~/catkin_ws && catkin_make'

source /opt/ros/kinetic/setup.bash

source ~/catkin_ws/devel/setup.bash  

  1. 测试通信

A:Master计算机wlzxzq:192.168.161.132

B:从机计算机bei:192.168.161.132

重新打开terminor

A: ping 192.168.161.132

B: ping 192.168.161.133

正常通信。

在A中打开我们的roscore

在A中使用例程ros_tutorials下面的talk

rosrun roscpp_tutorial talk

在B中使用例程listen

rosrun roscpp_tutorial listen

  1. ssh通信

①Master: sudo apt-get install openssh-server

从机: sudo apt-get install openssh-client

开启服务: sudo service ssh start

修改配置:sudo gedit /etc/ssh/sshd_config

把配置文件中的"PermitRootLogin without-password"加一个"#"号注释掉,再增加一句"PermitRootLogin yes",保存文件,是为了允许root用户登录。 

 ssh bei@192.168.194.133

 sudo gedit /etc/hosts

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值