写在前面
根据自己最近的ROS下的编程和实践,发现这种国外最先发起的项目,如果想要找教程,第一时间还是先取google搜索才行,不然在国内网站搜索,搜出来的很多都是不相关,或者压根没有这方面的内容。如果英语能力不行,则按下面的顺序来:
1.先在百度搜,在搜到的结果里面,先找CSDN上的内容,一般都是技术人员写的心得,比较靠谱;
2.其次看一些个人博主的blog,这些一般也还能信得过;
3.如果是在找不到,一定要想到用google英文搜索你的问题,会有意外收获!
言归正传
因为我要录制机器人的整个运行过程中的位姿和里程计信息,用于实验结束后的分析,所以想着用rosbag来录制一下不就好了?于是开始搜索相关内容,发现都是在教你rosbag的基本用法,并不知道怎么把rosbag录制下来的包放到指定的文件目录下。后来经过google搜索才知道,
1. rosbag record -o xxx.bag topic-name
2. rosbag record -O xxx.bag topic-name
这个命令后面的xxx就是指定文件存储位置和文件名称的,不同之处在于小写的-o(第一行)是会自动的在你的文件名称后加上当前的时间戳如:xxx_2020-06-22-21-00.bag。而-O(第二行)则不会加这个时间戳,直接为:xxx.bag。注意现在生成的bag包都在你只定的文件目录下哦。
好了,有了这个就可以开始编写一个脚本文件来代替每次在终端输入那么长的一串命令的,毕竟实验不是一次就能成功的。所以我们选择用小写的-o来记录,毕竟每次文件名不同不会覆盖之前的,防止突然发现以前的很有用而被替换的尴尬场景。
在roslaunch里面写下如下语句就可以实现用launch实现录制了,并且每次录制结果不会覆盖:
<launch>
<node pkg="rosbag" type="record" name="bag_record" args="topic-name1 topic-name1 -o xxxx“/>
</launch>
注意,这里的xxx和上面的xxx都是包含路径和文件名称的,比如/home/xx/rosbag-name