4 7 ROS分布式通訊

2021-10-22 16:28:51 字數 934 閱讀 6761

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

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

實現

1.準備

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

2.配置檔案修改

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

主機端:

從機的ip    從機計算機名
從機端:

主機的ip    主機計算機名
設定完畢,可以通過 ping 命令測試網路通訊是否正常。

ip位址檢視名: ifconfig

計算機名稱檢視: hostname

3.配置主機ip

配置主機的 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.反向測試,主機啟動發布節點,從機啟動訂閱節點,測試通訊是否正常

分布式通訊方式 分布式訊息傳遞

談到系統間的協作,目前常用兩種方式 1 基於http協議 通過客戶端發起的get post請求,服務端接收request請求,處理請求,得到響應內容,通過網路傳送到客戶端,由瀏覽器解析出乙個視覺化的頁面。這種互動最大的優勢是實時性,通過http請求連線各個子系統,從而跨伺服器來完成乙個完整的業務流程...

ROS分布式多機通訊(主從網路的設定)

在構建機械人的過程中,為了方便除錯和後期擴充套件,採用 pc 英偉達jetson nano 分布式的方式來處理資料。pc作為主機,跑網路,進行處理資料等主要工作 安裝在機械人上的英偉達jetson nano作為從機,主要用來採集各種感測器採集來的環境資料。據我了解,有些slam套件為了實現離線工作 ...

分布式 分布式鎖

本質是利用redis的setnx 方法的特性來加鎖,setnx 即key不存在則設定key,否則直接返回false,要求在分布式系統中使用同乙個redis服務,以下提供兩種解決方案 1 直接使用redistemplate 這其實並不能完全保證高併發下的安全問題,因為可能在鎖過期之後該執行緒尚未執行完...