rosbag中的一些細節

2021-08-18 03:15:20 字數 3141 閱讀 8773

將執行的ros軟體上的資料記錄到乙個.bag檔案,然後重放資料再產生相同的效果。

1. 記錄資料(建立乙個bag檔案)

從乙個執行的ros系統中記錄topic的資料,這個topic資料會在乙個bag檔案中積累。

$ roscore

$ rosrun turtlesim turtlesim_node

$ rosrun turtlesim turtle_teleop_key

(1) 記錄所有發布的topics

$ rostopic list -v

published topics:

* /turtle1/color_sensor [turtlesim/color] 1 publisher

* /turtle1/cmd_vel [geometry_msgs/twist] 1 publisher

* /rosout [rosgraph_msgs/log] 2 publishers

* /rosout_agg [rosgraph_msgs/log] 1 publisher

* /turtle1/pose [turtlesim/pose] 1 publisher

subscribed topics:

* /turtle1/cmd_vel [geometry_msgs/twist] 1 subscriber

* /rosout [rosgraph_msgs/log] 1 subscriber

這些發布的topic只是可能被記錄在資料記錄檔案上的message檔案型別。

mkdir ~/bagfiles

cd ~/bagfiles

rosbag record -a

2. 檢驗和回放bag檔案

(1) 用info命令檢查bag的內容而不用回放它:

$ rosbag info

path:        your bagfile

version:     2.0

duration:    1:38s (98s)

start:       

end:         

size:        865.0 kb

messages:    12471

compression: none [1/1 chunks]

types:       geometry_msgs/twist [9f195f881246fdfa2798d1d3eebca84a]

rosgraph_msgs/log   [acffd30cd6b6de30f120938c17c593fb]

turtlesim/color     [353891e354491c51aabe32df673fb446]

turtlesim/pose      [863b248d5016ca62ea2e895ae5265cf9]

topics:      /rosout                    4 msgs    : rosgraph_msgs/log   (2 connections)

/turtle1/cmd_vel         169 msgs    : geometry_msgs/twist

/turtle1/color_sensor   6149 msgs    : turtlesim/color

/turtle1/pose           6149 msgs    : turtlesim/pose

顯示了topic的名字和型別還有每個topic在bag檔案中包含的messages數量。

(2) 重放bag檔案,以在執行系統上產生相同的效果。

在執行turtle_teleop_key的終端用ctrl+c殺死上個部分還在執行的teleop程式。讓turtle繼續執行。

在產生原始bag檔案的目錄中執行以下命令:

$ rosbag play

[ info] [1418271315.162885976]: opening  your bagfile.bag

waiting 0.2 seconds after advertising topics... done.

hit space to toggle paused, or 's' to step.

等待可以用-d來特別指定。而是使用-s引數在不是bag檔案開始的其他部分開始回放。

rosbag play -r 2 通過乙個特定的因子改變發布資料的速度

***********************************細節*************************==

3. 記錄資料子集

允許使用者值記錄它們感興趣的topics。在bag檔案目錄中執行:

$ rosbag record -o filename /turtle1/cmd_vel /turtle1/pose

檢查bag檔案的內容rosbag info subset.bag):

path:        filename.bag

version:     2.0

duration:    12.6s

start:       

end:         

size:        68.3 kb

messages:    813

compression: none [1/1 chunks]

types:       geometry_msgs/twist [9f195f881246fdfa2798d1d3eebca84a]

turtlesim/pose      [863b248d5016ca62ea2e895ae5265cf9]

topics:      /turtle1/cmd_vel    23 msgs    : geometry_msgs/twist

/turtle1/pose      790 msgs    : turtlesim/pose

4. rosbag record/play的侷限

注意到小烏龜的路徑跟你用鍵盤控制的路徑不是非常準確的吻合,即使大概的形狀是一樣的,但是小烏龜沒有非常完全跟蹤那個路徑。原因是小烏龜跟蹤的路徑對系統中時間變化非常敏感。在系統中,在messages被roscore記錄和處理時以及使用rosplay 產生和處理messages時,rosbag複製執行系統的行為的能力是有限的。

SeekBar Seekbar中的一些細節要點

1.修改seekbar中進度條的高度 android maxheight和android minheight 前者是用來指定進度條最大高度的 此高度並非seekbar整個控制項的高度 後者是用來指定最小高度,一般將這兩個屬性值設定成一致即可。2.滑塊和背景之間有截斷的問題 android thumb...

Soot Soot中的一些語句細節

見如下 private static void testcfg4 sootmethod method soot中對於switch的處理是分情況的,他提供了兩種建模方式,jtableswitchstmt以及jlookupswitchstmt,在其建模中認為case 區分主要為數字。兩者的區別在於 舉例...

react學習中的一些細節

1 css相關 react的css引用方式 var styles require category.css import styles from category.css 傳統的方式是 元件的使用方式 test 傳統的方式是test 要使用兩個類,classname 想使用行內樣式,就是這樣的寫法 ...