rosbag数据记录与回放(以乌龟移动为例)

       为了方便调试,ROS提供了数据记录与回放的功能包:rosbag。该指令记录了ROS系统运行时的消息流,开发者可以在离线状态下回放这些数据。
       以下以ROS小乌龟为例进行实验。

$ roscore
$ rosrun turtlesim turtlesim_node
$ rosrun turtlesim turtle_teleop_key
$ mkdir bagfiles && cd bagfiles
$ rosbag record -a
$ rosbag info bagfile.bag
$ rosbag play bagfile.bag

        前面3条指令是启动ROS小乌龟,通过键盘控制小乌龟的移动;

        第4条指令是创建文件夹存放记录的bag包;

        第5条指令是数据记录,-a(all)参数意思是记录所有发布的消息。停止记录在该窗口按下Ctrl+C即可。停止后在bagfiles文件夹内会新生成一个.bag文件,该文件的名称是自动的,以时间进行的命名。这条指令也可以用如下指令:

$ rosbag record -O result /turtle1/cmd_vel /turtle1/pose

        其中,-O参数的含义是指定了我们要保存的bag文件的名字,这里会生成result.bag。后面的/turtle1/cmd_vel/turtle1/pose则指定了我们要记录信息的话题;

        第6条指令是查看bag包的相关信息;

        第7条指令是播放所记录的数据,播放之前需要将turtle_teleop_key这个终端终止,并重启turtlesim_node,否则小乌龟会沿着录制停止时候的位置开始运动。

        注意:在上面第5步记录数据时可能会出现如下的警告提示:

 即:[ WARN] [1576311065.082263288]: /use_sim_time set to true and no clock published.  Still waiting for valid time...

        表现出的现象是:暂停了,并没有进行数据的录制。解决方案如下:

#录制前
$ rosparam set /use_sim_time false
#播放时
$ rosparam set /use_sim_time true

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值