在使用ros的时候,会使用到许多数据的发布与接收,有的时候我们希望能够将某一个数据记录下来,这时候我们可以使用rosbag功能包记录所发布的数据。注意,只能记录publisher的数据不能记录subscriber的数据。可以使用:
rostopic list -v
查看publisher以及subscriber。例如这里我们可以看到所发布的一系列数据,上面published topics是我们可以记录的数据。
然后如果我们要记录下其中的某一个数据,例如这里的scan,可以使用下列的命令:
rosbag record -o bagfiles /scan
-o指定了我们要保存的文件名字,例如这里我使用的是bagfiles,/scan为我实际需要记录的数据。于是当我运行这条命令时会生成一个.bag文件,默认路径为home路径,另外文件名后面会自动后缀时间。如果想要保存在指定路径下,可以在指定路径下打开终端输入同样的命令就可以了:
对于一个bag文件可能不太方便查看,此时可以转化为txt文本格式:
rostopic echo -b bagfiles_name.bag -p /topic_name > txt_name.txt
这里bagfiles_name.bag为保存下来的bag文件的名称,/topic_name为具体要转为txt文件的内容,txt_name.txt为最后保存的文件名称。最后打开txt文件可以看到所保留的数据如下:
这里的数据比较混乱,后来的参考了另外一篇博客,修改了我的命令:
rostopic echo -b bagfiles_name.bag /topic_name > txt_name.txt
然后这时可以看到保存下来的数据会整齐很多。
参考:
https://blog.csdn.net/Tansir94/article/details/81513517
https://blog.csdn.net/qq_29985391/article/details/90675924?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.nonecase