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分布式控制的节点配置的主要内容,如果未能解决你的问题,请参考以下文章