ROS學習筆記2 基本概念

2022-03-11 05:54:12 字數 2491 閱讀 9194

本筆記**於:

ros檔案系統級別

檔案系統級別主要包含了你能在ros的磁碟上遇到的資源,包括:包(packages):

包是ros中資源組織的主要單元,乙個包可以包含ros執行時程序(nodes),可以是乙個ros依賴庫,資料庫,配置檔案等任何有用的組織單元。

包是ros中可以編譯和發布的元單元。

元包(metapackages

元包是一種特殊的包,他僅用來表示其它一組包的組織方式。最常見的元包是rosbuild棧的後向相容轉換器。

包資訊(package manifests

包資訊檔案(package.xml)包含包的名稱、版本、描述、許可證資訊、依賴項以及其它元資訊,例如匯出包。包資訊檔案package.xml在rep-0127中進行了定義。

倉庫(repositories

倉庫是乙個包集合,該集合中的包共享乙個版本控制系統(vcs),這些包有相同版本並且可以通過catkin自動發布工具bloom進行發布。乙個倉庫可以對映為乙個rosbuild棧,乙個**倉庫也可以只包含乙個包。

訊息(msg)型別

訊息描述,儲存在my_package/msg/mymessagetype.msg,用於表示傳送到ros中的訊息的資料結構。

服務(srv)型別

服務型別,儲存在my_package/srv/myservicetype.srv, 用於定義在ros中使用的服務(services)請求或響應的資料。

ros計算圖級別

計算圖是ros用於程序間傳遞資料的p2p網路,最基礎的計算圖概念包括如下,在ros_comm的倉庫中進行實現:

節點(nodes:)

節點是ros中進行計算的程序,個人理解乙個node實現乙個功能模組,比如機械人控制系統中,乙個node用於測距,乙個用於定位,乙個用於控制電機等。

乙個節點用client library進行編寫,例如用roscpp或rospy。(看文件,ros支援很多開發語言,詳情可以參見client library)。

主機(master

主機用於提供其它計算圖的命名註冊和查詢等功能,沒有主機的話,每個節點將找不到其他節點,不能進行通訊,也不能呼叫服務。

引數伺服器(parameter server

引數伺服器用於提供將資料通過鍵來儲存在中心位置(類似整個系統中的全域性變數?),引數伺服器現在是主機中的乙個部分。

訊息(messages

節點中通過訊息傳遞進行通訊,訊息是乙個帶有資料型別成員的簡易資料結構,該資料結構支援標準的基本資料結構(整型、浮點型和邏輯型變數等)及其陣列。類似與c語言中的結構體。

主題(topics

訊息通過發布者/訂閱者機制進行傳遞,節點通過將訊息發布給乙個特定主題進行訊息傳送。主題是和訊息內容相關的命名。乙個程序可以發布或者訂閱多個主題,多個程序也可以發布和訂閱乙個主題。

主題的發布者和訂閱者不知道彼此的存在,這樣做可以使兩者解耦。

服務(services

發布/訂閱機制使用主題進行實現,而這種不適合於請求/響應機制,請求/響應機制用服務進行實現。服務通過兩種資料結構實現,乙個用於請求,乙個 用於傳送,提供節點通過乙個命名(name)來提供服務,

客戶節點通過傳送請求,來等待響應,實現資料交換。服務常用於遠端過程呼叫。

資料報(bags

資料報用於是一種用於ros訊息資料儲存和回放的資料格式,資料報是一種重要的儲存資料的機制,不好進行資料收集但是對演算法的開發和測試十分必要。

主機節點用於計算圖中各個節點的命名服務,用於儲存ros節點的註冊資訊,以及主題和服務資訊,當註冊資訊發生變化時,可以呼叫**函式來動態建立連線(節點啟動時自動進行主題的發布和訂閱?)。命名在ros中很重要,節點、主題、訊息和引數都有他們的命名。每個ros客戶端庫都提供了進行命名重對映的命令列工具。

ros社群級別

該部分無筆記,若要參考請直接點選英文wiki。

命名計算圖資源命名

圖資源命名具有層次命名結構,可以為所有計算圖資源命名,包括:節點(nodes)、主題(topics)、引數(parameters)和服務(services)。

命名規則

命名開頭必須為大小寫字母([a-z|a-z]), 波浪號 (~) 或者斜槓 (/,作為路徑層次劃分符號)。

後續可以為大小寫字母及數字([0-9|a-z|a-z]),下劃線(_)。

命名解析

包資源命名

除了不能有~之外,其它和圖資源命名一樣。

總結來說就是,斜槓(/)表示路徑層次,波浪(~)表示圖中的私有路徑,然後命名識別符號需要以字母開頭,後續可以用字母、數字或者下劃線。

**介面

命名有關的**介面見ros_cpp中的介面:roscpp::names api reference

Flume 學習筆記 2 基本概念

data flow data flow描述了資料從產生,傳輸 處理並最終寫入目標的一條路徑。多個資料流被組合成logical node用來傳輸或聚合他們收到的資料。logical node又組合鏈來填充資料流。邏輯節點通過配置檔案組織。下圖中實線為資料流。agent 從資料來源收集資料和生成日誌,並...

ros多個小烏龜 ROS基本概念

首先大家按照 ros 系統安裝與體驗 按照命令執行的順序,將小烏龜程式啟動起來。一.節點管理器 啟動小烏龜程式,執行的第一條ros指令是roscore,此即啟動了乙個節點管理器,顧名思義,其作用就是用於節點管理,在乙個ros系統中,有且只有乙個,它是ros節點執行的前提,所以在執行啟動ros節點前,...

2 深度學習基本概念

evernote export 1.基本概念 訓練集,測試集,特徵值,監督學習,非監督學習,半監督學習,分類,回歸 2.概念學習 人類學習概念 鳥,車,計算機 定義 概念學習是指從有關某個布林函式的輸入輸出訓練樣例中推斷出該布林函式 3.例子 學習 享受運動 這一概念 小明進行水上運動,是否享受運動...