1. 程式人生 > >ROS分布式控制的節點配置

ROS分布式控制的節點配置

class you info tel run 鍵盤 電腦 org zh-cn

  首先在終端中輸入下面的指令查看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分布式控制的節點配置