ROS學習筆記 rviz的一些示例

2021-10-22 23:58:34 字數 2047 閱讀 8348

在之前的一篇部落格裡,已經寫到了一種rviz的示例,呼叫本地攝像頭在rviz中顯示實時畫面:呼叫本地攝像頭並在rviz中顯示

這篇主要分享在ros wiki上的官方示例教程,有刪減,有補充。上篇也提到了,主要是以下幾個方面:

一、markers和interactive markers

這部分應該就是給剛接觸rviz的我們準備的,通過傳送一些基本形狀的訊息,rviz在接收之後便可以在檢視區顯示,這是markers的部分;當然interactive markers通過訪問滑鼠事件,可以讓我們在rviz上進行互動。

1.通過markers傳送基本的形狀資訊

參照wiki上的原始碼,我們可以傳送一些基本形狀。當我們在rviz新增marker外掛程式後,然後將fixed frame設定為原始碼中物體座標系「/my_frame"之後,便可以在檢視區觀察到一些變化的基本形狀。如下圖:

當然,同樣的,我們也可以傳送點線之類的,如下圖:

2.通過interactive marker傳送可以互動的基本形狀

interactive marker可以讓我們操縱這些基本形狀,進行移動、旋轉等。 參照wiki上的原始碼,就可以做乙個簡單豐富的示例。當我們在rviz上新增interactive marker後,選取適當的fixed frame,就可以對其進行滑鼠拖動;當然,這部分的原始碼有多個基本形狀,並且設計了不同的座標系,選取不同的fixed frame,我們還能看到不同frame之間的關係。如下圖:

二、plugins

上述的marker內容都是rviz給我們提供的,這部分內容是我們可以自行定義一些有意思的plugins,並在rviz中應用。這當然不只是一些顯示類的外掛程式,我們還可以通過一些控制類的plugins在rviz中發布控制指令。

1.a new diplay type

wiki上提供一種新的顯示型別,我們可以自己去定義一種外部imu資訊的顯示外掛程式。 這裡使用指令碼模擬了外部imu資訊的發布,如下圖:

2.a new dockable panel

在這裡那,我們就可以自定義乙個控制面板來發布控制資訊,wiki並沒有給出具體的示例,這裡我們以小海龜為例,通過自定義的控制面板,在rviz中發布小海龜的控制指令。執行小海龜節點之後,在rviz中新增自定義的控制面板,teleop控制面板訂閱小海龜的/turtle1/cmd_vel,我們就能用滑鼠進行控制小海龜的運動。如下圖:

這部分比較簡單,我們可以定義一些工具,幫助我們更好的開發。wiki上提供了一種新增標記小紅旗的教程。我們在工具面板新增新的工具,如下圖:

三、librviz

這裡告訴我們rviz不僅僅是乙個檢視顯示工具,它本身就是乙個library,所以我們可以通過呼叫其中的介面來進行自己的gui開發。wiki乙個簡單的示例如下,通過呼叫rviz的介面,建立乙個3d視覺化的小部件。如下圖:

以上就是在初學rviz過程中的乙個簡單總結~~ 

ROS學習筆記 rviz的基本介紹

rviz是ros中一款三維視覺化平台,一方面能夠實現對外部資訊的圖形化顯示,另外還可以通過rviz給物件發布控制資訊,從而實現對機械人的監測與控制。本文在參照ros wiki官方教程的基礎上,給出rviz的入門總結。一 rviz的安裝及介面簡介 在安裝ros時,如果執行的完全安裝,rviz已經安裝好...

ROS學習之tf在rviz中的顯示

昨天粗略看了一下ros中rviz的用法。事實,他就是乙個視覺化的工具。wiki的使用者手冊 筆者按照教程操作,在最後使用這個命令 rosrun rviz rviz d rospack find turtle tf rviz turtle rviz.rviz 顯示出來的並不是教程中截圖的那樣,而是 左...

ROS學習筆記(一) ROS術語

xmlrpc xml遠端過程呼叫 是一種rpc協議,其編碼形式採用xml編碼格式,而傳輸方式採用http協議,支援多種程式語言,但比較簡單,僅用於小資料型別或命令。主節點負責節點之間的連線和通訊,執行roscore命令即可啟動主節點,之後就可註冊其他節點的名字,並可建立節點間的通訊。主節點使用xml...