rosbag包的回放,使用腳本提取txt

ROS框架下可以很方便的進行數據記錄,並且將其轉換爲txt文件進行matlab處理,下面介紹一下rosbag的日常使用方法

  1. 錄製rosbag包後,回放前需要先開啓roscore

roscore

# 不開啓roscore會報錯:
# Failed to contact master at [localhost:11311].  Retrying...

  2. 回放rosbag

rosbag play xxx.bag

# 這句命令需要和bag包在同一目錄下,按錄製時間的長短,rosbag包回放時長也不相同

  3. 提取話題爲txt文件,方便後續matlab處理

rostopic echo -b xxx.bag  -p /topic > yyy.txt

# 這句是將xxx.bag中的話題名爲"/topic"的話題內容提取出來放入yyy.txt中
# matlab也開放了對rosbag包的接口,可以直接導入並提取,但是還是沒有提txt快捷,特別是用腳本的情況下

  4. 使用腳本一次提取多個話題,一鍵改包名
  第一步,在rosbag包的相同目錄下新建一個sh文件

gedit autoRosbagToTxt.sh

  第二步,將如下內容複製到sh文件中

#!/bin/bash

class=xxx
bag=$class.bag

echo "話題1開始提取"
gnome-terminal -x bash -c "rostopic echo -b $bag  -p /topic1 > topic1$class.txt"
sleep 5
echo "提取完成"

echo "話題2開始提取"
gnome-terminal -x bash -c "rostopic echo -b $bag  -p /topic2> topic2$class.txt"
sleep 5
echo "提取完成"

  第三步,修改class=你的包名(不要加".bag",比如你的包是"subset.bag",那麼這裏直接class = subset即可),修改topic1爲你要提取的話題名,然後

bash autoRosbagToTxt.sh

  sleep時間自己修改,電腦性能好的話,同時10來個話題一起提取都可以~

隨喜打賞

本文到此結束,感謝閱讀!

如有疑問,請郵件聯繫: [email protected]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章