rosbag資料記錄與回放(以烏龜移動為例)

2021-10-01 19:21:35 字數 1067 閱讀 6683

為了方便除錯,ros提供了資料記錄與回放的功能包:rosbag。該指令記錄了ros系統執行時的訊息流,開發者可以在離線狀態下回放這些資料。

以下以ros小烏龜為例進行實驗。

$ roscore

$ rosrun turtlesim turtlesim_node

$ rosrun turtlesim turtle_teleop_key

$ mkdir bagfiles && cd bagfiles

$ rosbag record -a

$ rosbag info bagfile.bag

$ rosbag play bagfile.bag

前面3條指令是啟動ros小烏龜,通過鍵盤控制小烏龜的移動;

第4條指令是建立資料夾存放記錄的bag包;

第5條指令是資料記錄,-a(all)引數意思是記錄所有發布的訊息。停止記錄在該視窗按下ctrl+c即可。停止後在bagfiles資料夾內會新生成乙個.bag檔案,該檔案的名稱是自動的,以時間進行的命名。這條指令也可以用如下指令:

$ rosbag record -o result /turtle1/cmd_vel /turtle1/pose
其中,-o引數的含義是指定了我們要儲存的bag檔案的名字,這裡會生成result.bag。後面的/turtle1/cmd_vel/turtle1/pose則指定了我們要記錄資訊的話題;

第6條指令是檢視bag包的相關資訊;

即:[ warn] [1576311065.082263288]: /use_sim_time set to true and no clock published.  still waiting for valid time...

表現出的現象是:暫停了,並沒有進行資料的錄製。解決方案如下:

#錄製前

$ rosparam set /use_sim_time false

$ rosparam set /use_sim_time true

ROS記錄回放資料

一 使用rostopic記錄資料 rostopic list 檢視所有topic列表 mkdir bagfile 新建乙個bagfile資料夾存放生成的rosbag檔案 cd bagfile rosbag record a 記錄所有topic資料,生成rosbag資料報 rosbag record ...

Vim 命令記錄與回放

步驟如下 q a.z 暫存器名 執行你要執行的操作 q 結束操作 呼叫為 暫存器 列子如下 在寫php 程式時用的比較多的是建立函式 如function add in q 結束 使用方法 add in f 為重複上一次呼叫 命令記錄的暫存器和用於yank和刪除命令的暫存器是同乙個東西 修改暫存器的內...

ROS錄製與回放資料

rosbag record a附加 a選項,該選項表示將當前發布的所有話題資料都錄製儲存到乙個bag檔案中,個以年份 日期和時間命名並以.bag作為字尾的檔案。rosbag info 檢視bag檔案中的內容而無需回放出來。rosbag play 回放bag檔案以再現系統執行過程rosbag play...