rosbag 錄製小烏龜的軌跡

本文最初目的是爲了使用rosbag 命令錄製自己的bag數據文件。發現了一個很好玩的例程就記錄一下。
rosbag record
首先打開terminal 分別運行一下三個命令

roscore
rosrun turtlesim turtlesim_node 
rosrun turtlesim turtle_teleop_key

運行一下代碼就能看到目前的published 和 subscribed 的topics

rostopic list -v
![topics](https://img-blog.csdn.net/20170829151724099?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjI2MzcwNDk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 同時會有看到一個藍底的窗口上有一隻小烏龜,用鍵盤控制其移動,可以產生軌跡。 運行一下的代碼生成存在bag文件的路徑,並開始錄製, -a參數表示錄製所有的topic
mkdir ~/bagfiles
cd ~/bagfiles
rosbag record -a

以下是我控制行走出的軌跡

![軌跡](https://img-blog.csdn.net/20170829151314802?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjI2MzcwNDk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 完成控制後,直接在rosbag 的 命令窗口 ctrl+c 就可以完成錄製。以上操作結束後就可以在bagfiles 目錄下看到一個以時間命名的.bag文件。 運行以下代碼就能看到.bag文件的信息
rosbag info <your bagfile>

如圖:

![這裏寫圖片描述](https://img-blog.csdn.net/20170829152444236?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjI2MzcwNDk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 可以看到錄製的topics一些信息。 **rosbag play** ———- 接下來運行命令
rosbag play <your bagfile>

這個時候小烏龜會按照之前錄製的軌跡自己跑了

![這裏寫圖片描述](https://img-blog.csdn.net/20170829153349134?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjI2MzcwNDk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 另外還可以改變運行的頻率
rosbag play -r 2 <your bagfile>
![這裏寫圖片描述](https://img-blog.csdn.net/20170829153509631?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjI2MzcwNDk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 驚奇的發現軌跡跟原來錄製的不一樣了。另外最後小烏龜撞牆了…我就看小烏龜懟牆懟了幾秒(這個是我寫這篇博客的主要原因),看了下terminal 上有消息的反饋:
![這裏寫圖片描述](https://img-blog.csdn.net/20170829153839973?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjI2MzcwNDk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) **rosbag record part of topics ** 很多時候topics 太多了,我們希望只錄制一部分的topics 所以就可以運行以下的命令:
rosbag record -O subset /turtle1/command_velocity /turtle1/pose

這樣只錄制了command_velocity 和 pose 兩個topics
kill 原來的turtlesim_node 、turtle_teleop_key 兩個terminal,然後重新運行

rosrun turtlesim turtlesim_node 
rosrun turtlesim turtle_teleop_key

運行record 部分topics 並控制小烏龜移動:


這裏寫圖片描述


這裏寫圖片描述

觀察topics確實只有兩個…
參考:
ROS/tutorials/recording and playing back data

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