ROS學習 ROS通訊架構

2021-10-05 04:06:15 字數 1889 閱讀 8810

作用:每個node啟動時都要想master註冊,管理node之間的通訊(可實現點對點通訊)

$roscore 啟動ros master

pkg裡面的可執行檔案執行的例項。

啟動乙個node

$rosrun[包名][節點名]

rosnode

$rosnode list檢視當前執行的node資訊

$rosnode info [node_name]現實node的詳細資訊

$rosnode kill [node_name]結束node

roslaunch

$roslaunch [pkg_name] [file_name.launch]啟動master和多個node

.launch 檔案包含啟動規則

ros中的非同步通訊方式,node間通過publish-subscribe機制通訊

nodea->傳送》/topic->訂閱》nodeb

可以多個publisher和subscriber共用乙個topic

message
topic內容的資料型別,定義在.msg檔案中,相當於「類」。
相關主要命令
rostopic

$rostopic list列出當前所有topic

$rostopic info/topic_name顯示某個topic的屬性資訊

$rostopic echo/topic_name顯示某個topic的內容

$rostopic pub/topic_name向某個topic發布內容

rosmsg

$rosmsg list列出系統上所有msg

$rosmsg show/msg_name顯示某個msg內容

ros中的同步通訊方式,node間可以通過request-reply方式通訊
srv

service通訊的資料格式,定義在.srv檔案中

srv檔案只能巢狀msg檔案

相關主要命令
rosservice

$rosservice list列出當前所有活躍的service

$rosservice info service_name顯示某個service的屬性資訊

$rosservice call service_name args呼叫某個service

rossrv

$rossrv list列出系統上所有的srv

$rossrv show srv_name顯示某個srv內容

儲存各種引數的字典,可用命令列,launc**件和node(api)讀寫
命令列設定引數(rosparam)
$rosparam list列出當前所有引數

$rosparam get param_key顯示某個引數的值

$rosparam set param_key param_value設定某個引數的值

$rosparam dump file_name儲存引數到檔案

$rosparam load file_name從檔案讀取引數

$rosparam delete param_key刪除引數

launc**件設定引數
使用和標籤
類似於service,但是是service的公升級版,是帶有狀態的通訊方式,通常用在長時間、可搶占的任務中。
action
action通訊的資料格式,定義在.action檔案中。

ROS學習(3) ROS通訊架構

ros有三個層級的概念,分別是 檔案系統級 計算圖級和開源社群級。ros計算圖 主要是指程序之間 節點之間 的通訊。ros建立了乙個連線所有程序的網路,通過這個網路節點之間完成互動,獲取其他節點發布的資訊。圍繞計算圖級和節點,一些重要的概念也隨即產生 節點,節點管理器,引數伺服器,訊息,服務,主題 ...

ROS系統架構

ros的架構分為三部分 檔案系統級 計算圖級 開源社群級 乙個ros程式的不同元件放在不同的資料夾下 package 功能包 package manifest 功能包清單 metapackage 綜合功能包 metapackage manifest 綜合功能包清單 message msg type ...

ROS通訊機制

ros的核心功能是提供一種軟體點對點通訊機制,基於這一機制,開發人員可以非常靈活和高效地組織智慧型機械人的軟體實現。ros的執行架構是一種基於socket網路連線的松耦合 架構。在這個執行架構中包括一系列程序,這些程序可以駐留在多個不同的主機上並且在執行的過程中通過點對點的拓撲結構實現通訊。ros將...