1. 程式人生 > 其它 >4.7 ROS分散式通訊

4.7 ROS分散式通訊

4.7 ROS分散式通訊

ROS是一個分散式計算環境。一個執行中的ROS系統可以包含分佈在多臺計算機上多個節點。根據系統的配置方式,任何節點可能隨時需要與任何其他節點進行通訊。

因此,ROS對網路配置有某些要求:

  • 所有埠上的所有機器之間必須有完整的雙向連線。

  • 每臺計算機必須通過所有其他計算機都可以解析的名稱來公告自己。

實現

1.準備

先要保證不同計算機處於同一網路中,最好分別設定固定IP,如果為虛擬機器,需要將網路介面卡改為橋接模式;

2.配置檔案修改

分別修改不同計算機的 /etc/hosts 檔案,在該檔案中加入對方的IP地址和計算機名:

主機端:

從機的IP    從機計算機名

從機端:

主機的IP    主機計算機名

設定完畢重啟兩臺計算機保證配置檔案生效,可以通過 ping 命令測試網路通訊是否正常。

IP地址檢視名: ifconfig

計算機名稱檢視: hostname

3.配置主機IP(啟動Roscore代表主機)

配置主機的 IP 地址

~/.bashrc 追加

export ROS_MASTER_URI=http://主機IP:11311
export ROS_HOSTNAME=主機IP

4.配置從機IP

配置從機的 IP 地址,從機可以有多臺,每臺都做如下設定:

~/.bashrc 追加

export ROS_MASTER_URI=http://
主機IP:11311 export ROS_HOSTNAME=從機IP

測試

1.主機啟動 roscore(必須)

2.主機啟動訂閱節點,從機啟動釋出節點,測試通訊是否正常

3.反向測試,主機啟動釋出節點,從機啟動訂閱節點,測試通訊是否正常