將執行的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 想使用行內樣式,就是這樣的寫法 ...