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]