ROS分布式控制的节点配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ROS分布式控制的节点配置相关的知识,希望对你有一定的参考价值。

  首先在终端中输入下面的指令查看ROS主节点主机的IP和远程控制端的IP:

ifconfig  

  比如机器人控制器中运行着ROS主节点,其IP地址为192.168.1.111,hostname为xubuntu;远程控制端电脑IP为192.168.1.138,hostname为ubuntu. 首先要确保两台电脑能相互ping通。

  然后在主节点和远程控制端的配置文件 /etc/hosts 中分别添加对方的IP地址和hostname信息(Add entries to your /etc/hosts file so that the machines can find each other)。在xubuntu中的 /etc/hosts文件中加入下面这一行:

192.168.1.138   ubuntu

  在ubuntu中的 /etc/hosts文件中加入下面这一行:

192.168.1.111   xubuntu

  如果主机的hosts文件中没有添加从机的信息,从机只能接收到从主机发来的信息,而无法向主机发送信息。建议主机和从机都要将对方的IP hostname添加到自己的 /etc/hosts 中

  整个系统只需要一个master,选择一个机器来运行master提供topic寻址、参数服务器等功能。所有的节点必须通过环境变量ROS_MASTER_URI配置为使用同一个master在远程控制端电脑ubuntu的 ~/.bashrc文件中加入下面环境变量,用于连接ROS主节点:

export ROS_MASTER_URI=http:/xubuntu:11311

  

  下面来进行一个测试,在xubuntu中输入roscore运行ROS 主节点,然后执行下面命令打开海龟仿真节点:

rosrun turtlesim turtlesim_node 

  在ubuntu中输入rosnode list查看当前节点,可以看到正运行着ros主节点和turtlesim节点:

  可以在ubuntu中用键盘远程控制xubuntu中的海龟运动,输入下面的指令:

rosrun turtlesim turtle_teleop_key

   在xubuntu中打开另一个键盘控制节点,重命名为teleop2:

rosrun turtlesim  turtle_teleop_key  __name:=teleop2

  然后在ubuntu中输入下面指令查看海龟速度信息:

rostopic echo /turtle1/cmd_vel

  在xubuntu中用键盘控制海龟运动,可以看出从节点(ubuntu)也能接收到正确的信息:

 

参考:

ROS-NetworkSetup

ubuntu永久修改主机名

ROS-EnvironmentVariables

ROS中配置主从机需注意的几点

ROS机器人操作系统分布式控制的节点 配置方法

以上是关于ROS分布式控制的节点配置的主要内容,如果未能解决你的问题,请参考以下文章

ROS nodelet的使用

两台电脑使用ROS通讯

ROS分布式多机通信(主从机配置)

07ROS运行管理

Ros 小乌龟节点启动

ROS 2 节点简介