ROS中接收消息并保存数据,rosbag和rqt_plot的使用

ROS进行导航时,需要查看速度曲线等消息,可以编写listener文件接收保存消息,然后进行格式转换,利用其它工具如MATLAB绘图,但是这样很麻烦,rosbag这个工具就可以很方便的记录和保存数据,并利用rqt进行实时绘图。
参考的博客:
ROS总结——录制和回放数据
ROS学习篇(七)rostopic消息记录、回放、转.txt
ROS相关:使用rospy 编写ros程序并使用rosbag存储数据 //这个暂时没有用到

1.rosbag使用

以turtlesim小乌龟为例:
启动turtlesim

roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key

创建rosbag文件并保存数据

mkdir ~/bagfiles
cd ~/bagfiles
rosbag record -a

$rosbag record -a表示保存所有消息数据,运行record命令后,在键盘控制界面控制小乌龟移动一段时间,然后结束record命令(crtl+c),可以在bag文件夹看到保存的数据:

cd ~/bagfiles
ls
2019-09-22-15-45-21.bag

rosbag数据回放

rosbag info <your bagfile>  #查看数据
rosbag play <your bagfile>

三倍速回放(失真)

rosbag play -r 3 <your bagfile>

保存部分数据
将上述$rosbag record -a改为:

rosbag record -O mydata /turtle1/cmd_vel /turtle1/pose   #话题之间空格

.bag文件转换为.txt

rostopic echo -b file_name.bag -p /topic_name > Txt_name.txt

2.rqt使用

打开rqt plot的GUI界面

rqt_plot

在方框中输入消息名称,注意要写对
或者用命令行打开:

rqt_plot /topic/data #单个话题,单个数据
rqt_plot /topic/x:y:z #单个话题,向量数据
rqt_plot /topic/x /topic/y /topic/z

曲线的缩放:
这个按钮
鼠标放上去有说明,pan axes with left mouse, zoom with right,可以横向或者纵向缩放


版权声明:本文为lovelycrayon原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。