<source : unsplash>

一、前言

ROS bag 是什麼呢?ROS bag 是用來紀錄和播放 topic 中的內容,對於系統的優化和除錯,有很大的助益。

本篇文章是參考 <clearpathrobotics> 教學,並將實作過程記錄下來。為什麼要將 ROS bag 資料轉換成CSV呢?我個人的理解當然是和 ROS bag 工具的開發原意一樣,將檔案紀錄保存,作為系統優化與除錯的依據。

此外,CSV檔已經廣泛應用在 Machine Learning (機器學習) 的領域,透過將 ROS bag 轉換成 CSV 的格式,或許有機會幫我們從資料中找到一些 pattern (模式),進而能實現一些預測性的應用,讓機器人更加完美。 


二、ROS bag的基本指令

(一)、紀錄 bag

$ rosbag record topic1 topic2 (topic可依需求延伸)

範例 : $ rosbag record rosout tf cmd_vel

(二)、檢視 bag 資訊

此指令為向使用者顯示 bag 檔案的資訊,包括起始時間、topics、message數量和平均頻率等資訊,通常以 yaml 的格式呈現。

$ rosbag info -y 檔案路徑

範例 : $ rosbag info -y /path/to/my.bag

(三)、播放 bag

此指令為播放 bag 所記錄的 topic 內容,如果在同一時間紀錄多個 topics ,則這些 topics 的內容被撥放時,會同步顯示。

當同時播放兩個時間不同的 bag,系統會將這兩個視為同一個 bag。舉例來說,假設你現在先錄製 bag A,一個小時後錄製 bag B。現在同時播放 bag A 和 bag B,bag B在一個小時後才會顯示。

$ rosbag play bag1 bag2 (bag可依需求延伸)

範例 : $ rosbag play recorded1.bag recorded2.bag

(四)、壓縮所有 bag 檔案

 $ rosbag compress *.bag

(五)、解壓縮 bag 檔案


$ rosbag decompress *.bag

三、Python程式碼實作




< 程式碼下載 >


---
參考資料 :

#rosbag #YAML

0 留言