ROS分布式控制的节点配置

本文介绍如何配置ROS(机器人操作系统)实现跨计算机的分布式控制。主要内容包括设置网络连接、配置hosts文件、设定ROS_MASTER_URI环境变量等步骤,最终实现远程控制端能够与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机器人操作系统分布式控制的节点 配置方法

转载于:https://www.cnblogs.com/21207-iHome/p/8289186.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值