4.7 ROS分散式通訊
阿新 • • 發佈:2021-06-25
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.反向測試,主機啟動釋出節點,從機啟動訂閱節點,測試通訊是否正常