ROS03 基礎知識 架構及概念

2021-08-08 23:48:26 字數 2939 閱讀 3872

ros架構分為三部分,

1、工作空間

2、功能包

為了建立、修改功能包,ros的工具有如下這些

rosbash功能包提供了一些類似於linux命令的命令

3、元功能包

元功能包(簡稱元包)是一些只有乙個檔案的特殊包,這個檔案就是package.xml。它不包含其他檔案如**等。

使用遷移的特定規則,可以將ros fuerte中的功能包和功能包集轉換為kinetic和catkin。具體參考%\url。

%%%%注:hyperref與listings包有衝突

定位元功能包,使用命令如下\

rosstack find ros_tutorials
4、訊息

基本型別

序列化c++

python

bool

無符號8位int

uint8_t

bool

int8

有符號8位int

int8_t

intuint8

無符號8位int

uint8_t

intint16

有符號16位int

int16_t

intuint16

無符號16位int

uint16_t

intint32

有符號32位int

int32_t

intuint32

無符號32位int

uint32_t

intint64

有符號64位int

int64_t

intuint64

無符號64位int

uint64_t

intfloat32

32位ieeefloat

float

float

float64

64位ieeefloat

double

float

string

ascii string

std::string

string

time

secs/nsecs有符號32位ints

ros::time

rospy::time

duration

secs/nsecs有符號32位ints

ros::duration

rospy::duration

ros中的一種特殊資料型別是標頭型別,它主要用於新增時間、座標系和序列號等。標頭還允許對訊息進行編號。通過在標頭型別內部附加資訊,我們知道是哪個節點發出的訊息,或者可以新增對使用者透明的功能以及一些能夠被ros處理的功能。

標頭型別包含以下字段

uint32 seq

time stamp

string frame_id

5、服務

如果想要在ros中建立乙個服務,可以使用服務生成器。這些工具能夠從最基本的服務說明中生成**。只要在cmakelists.txt中加一行gensrv() 命令。

計算圖級的圖形化表示(節點狀態圖)表示了真實機械人在真實條件下系統的工作狀態。

用於建立改圖的工具是rqt_graph,這些概念在ros-comm軟體庫中實現。

1、節點與nodelet

ros有另一種型別的節點,稱為nodelet(動態載入節點)——內部可通訊的多個節點。

這類節點可以在單個程序中執行多個節點,每個nodelet為乙個執行緒(輕量級程序)。

這樣可以在不使用ros網路的情況下與其他節點通訊,節點通訊效率更高,並避免網路擁塞。nodelet對於攝像頭和3d感測器這類資料傳輸量非常大的裝置非常有用。

ros提供了處理節點和顯示節點資訊的工具

ros節點的乙個強大功能是可以在啟動該節點時更改引數。此功能使我們能夠改變節點名稱、主題名稱和引數名稱。

例如

rosrun book_tutorials tutorialx topic1 :=/level1/topic1
此命令將主題名稱topic1改為/level1/topic1.

更改引數和更改主題名稱類似,只要在引數名稱前新增乙個下劃線(_),例如\

rosrun book_tutorials tutorialx _parpam :=9.0
但是不能使用系統保留的關鍵字名稱

2、主題

主題是節點之間用來傳輸資料的匯流排。

每個主題都是強型別的,發布到主題上的訊息必須與主題的ros訊息型別相匹配。

ros的主題使用tcp/ip和udp傳輸,預設tcpros,還有udpros。

ros有乙個rostopic工具用於主題操作。

3、服務

當需要與節點通訊並以rpc方式獲得應答時,將無法通過主題實現,需要使用服務。

服務需要由使用者開發,節點並不提供標準服務。包含訊息源**的檔案儲存在srv資料夾中。

ros關於服務的命令列工具有兩個:rossrv與rosservice。

我們通過rossrv看到服務資料結構的資訊,並且與rosmsg具有完全相同的用法。

通過rosservice可以列出服務列表和查詢某個服務。支援的命令如下

4、訊息

ros使用命令列工具rosmsg來獲取有關訊息的資訊

5、節點管理器

節點管理器的作用是使ros節點之間能夠相互查詢。

6、引數伺服器

引數伺服器是可通過網路訪問的共享的多變數字典。節點使用此伺服器來儲存和檢索執行時的引數。

引數伺服器使用xmlrpc實現並在ros節點管理器下執行,這意味著它的api可以通過通用的xmlrpc庫進行訪問。xmlrpc是乙個使用xml編碼並以http作為傳輸機制的遠端呼叫協議。

引數伺服器使用xmlrpc資料型別為引數賦值,包括以下型別

ros中關於引數伺服器的工具是rosparam。其支援的引數如下

其概念主要是ros資源。包括

ROS 系統架構及概念

ros 系統架構主要被設計和劃分為三部分,每一部分代表乙個層級的概念 檔案系統級 the filesystem level 計算圖級 the computation graph level 和開源社群級 the community level 檔案系統級 ros 的內部結構 檔案結構和所需的核心檔案...

ios基礎知識 03

裝置 螢幕型別 螢幕尺寸 點 解析度 畫素 iphone 3gs 非 retina 3.5 inch 320 480 320x480 iphone4 4s retina 3.5 inch 320 480 640x960 iphone5 5c 5s retina 4 inch 320 568 640x...

03 Python 基礎知識

目錄 1.注釋 2.變數及型別 3.命名規則 4.運算子 coding utf 8 time 2021 1 23 author 大海 這是單行注釋 這是多行注釋1 這是多行注釋2 運算子 描述例項 加 兩個物件相加 a b 輸出結果 30 減 得到負數或是乙個數減去另乙個數 a b 輸出結果 10 ...