Matlab分析rosbag记录的数据

本文档介绍了如何使用Matlab处理ROS记录的.bag文件,详细阐述了从建立保存路径、记录JointState Topic数据,到在Matlab中导入、选择Topic及读取数据的步骤,为机器人轨迹数据的可视化分析提供指南。
摘要由CSDN通过智能技术生成

在进行机器人数据可视化与分析的过程中,难免要用到Matlab,虽然ROS提供了rqt_plot功能,但是从可视化的角度,当前还是用Matlab画图更清晰一些。所以在此记录一下用Matlab显示rosbag记录的机器人轨迹数据的过程。

1. ROS记录Topic数据

rosbag的具体使用方法,参考WIKI说明。在机器人运动启动之前,首先启动记录功能,以尽可能完整的记录机器人的运动数据。

1.1 建立保存路径

首先在home目录下,建立了一个保存.bag文件的文件夹。之后在当前位置下开始记录轨迹数据。

mkdir ~/bagfile
cd bagfile

1.2 记录/JointState Topic数据

利用以下命令记录/JointState的数据,记录文件的名字直接用默认的以时间命名的名称。

rosbag record /JointState

1.3 启动机器人运动

在此过程中,rosbag会不断的将对应话题的数据记录到.bag文件中,运动结束后,在启动rosbag的命令窗口中Ctrl+C结束记录过程。

2. Matlab对.bag文件的处理

2.1 文件导入

.bag文件放在如下图所示的目录结构中,即存放在当前.m文件同级的Data文件夹下。
存放路径
利用以下代码可以直接读取ROS定义的消息类型。

bagdata = rosbag('./Data/trajectory.bag');

加载之后,在Matlab中选择加载后的数据类型,可以看到如下的内容。
加载数据

2.2 Topic选择

在加载完成数据之后,可以选择上图中的AvaliableTopics查看记录有哪些Topic,如下图所示:
Topics
如果记录有多个Topic,则会显示多个。之后利用函数选择需要处理的Topic名称。

bagtopic = select(bagdata,'Topic','/joint_states');

2

  • 11
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值