主要内容

Rosbag.

打开和解析ROSBAG日志文件

描述

例子

= rosbag (文件名创造一个可索引的BagSelection对象,,其中包含路径上的ROSBAG的所有消息索引文件名.得到一个BagSelection对象,使用Rosbag..要访问数据,调用readMessages时间序列提取相关数据。

一种Rosbag.是一种用于存储ROS消息数据的文件格式。它们主要用于记录ROS网络中的消息。您可以使用这些包进行离线分析、可视化和存储。看到ROS Wiki页面有关的更多信息罗斯巴格斯

bagInfo= ROSBAG('INFO',文件名将信息作为结构,bagInfo,这是关于ROSBAG的内容文件名

例子

Rosbag Info.文件名在MATLAB中显示信息®命令窗口关于rosbag的内容文件名.该信息包括消息数,开始和结束时间,主题和消息类型。

例子

全部收缩

从ROSBAG检索信息。如果在MATLAB®PATA上尚未使用,请指定ROSBAG的完整路径。

bagselect = rosbag (“ex_multiple_topics.bag”);

选择按时间和主题过滤的消息子集。

BAGSELECT2 = SELECT(BAGSELECT,'时间'......[bagselect。StartTime bagselect。开始时间+ 1),“主题”' /奥多姆');

查看有关ROSBAG日志文件的信息,请使用Rosbag Info.文件名在哪里文件名是一个rosbag(。包) 文件。

Rosbag.信息“ex_multiple_topics.bag”
路径:/tmp/bdoc21a_1622859_205151/tp61fad796/ros-ex32890909/ ros-ex32890909/ ros_ex32890909/ ex_multipre_topics.bag版本:2.0持续时间:2:00s(120s)开始:1969年12月19日:03:21.34(201.34)截止:12月31日1969年19:05:21.34(321.34)大小:23.6 MB消息:36963种类型:gazebo_msgs / LinkStates [48c080191eb15c41858319b4d8a609c2] nav_msgs /里程计[cd5e73d190d741a2f92e81eda573aca7] rosgraph_msgs /时钟[a9c97c1d230cfc112e270351a944ee47] sensor_msgs /激光扫描[90c7ef2dc6895d81024acba2ac42f369]话题:/时钟12001倍的MSG:rosgraph_msgs /时钟/凉亭/ link_states11999 MSGS:凉亭_MSGS / LinkStates / ODOM 11998 MSGS:Nav_MSGS / ODOMOTRY / SCAN 965 MSGS:SENSOR_MSGS / LASERSCAN

从ROSBAG获取转换(。包)通过加载ROSBAG并检查可用框架来进行文件。从这些框架,使用getTransform.查询两个坐标帧之间的转换。

加载rosbag。

bag = rosbag(“ros_turtlesim.bag”);

获取可用框架的列表。

框架= bag.availableframes;

获取两个坐标帧之间的最新变换。

tf = getTransform(包,“世界”,框架{1});

检查特定时间可用的转换并检索转换。采用canTransform检查转换是否可用。指定使用时间rostime

tftime = rostime(bag.starttime + 1);如果(Cantransform(袋,“世界”tf2 = getTransform(袋子,“世界”{1},帧,tfTime);结尾

加载rosbag。

bag = rosbag(“ros_turtlesim.bag”);

选择一个特定的主题。

bsel = select(包,“主题”“turtle1 /姿势”);

以结构形式读取消息。指定dataformat.读取消息时的名称值对。检查返回的单元结构阵列中的第一个结构。

msgstructs = ReadMessages(BSEL,“DataFormat”“结构”);msgstructs {1}
ans =.结构体字段:MessageType: 'turtlesim/Pose' X: 5.5016 Y: 6.3965 Theta: 4.5377 LinearVelocity: 1 AngularVelocity: 0

提取XY.来自消息的点并绘制机器人轨迹。

采用cellfun提取所有的Xy结构中的字段。这些字段表示XY.在录声过程中机器人的位置。

xpoints = Cellfun(@(m)双(m.x),msgstructs);ypoints = Cellfun(@(m)双(m.y),msgstructs);绘图(Xpoints,YPoints)

图中包含一个坐标轴。轴包含一个线型对象。

输入参数

全部收缩

您想要访问的rosbag的文件名和路径,指定为字符串标量或字符向量。此路径可以是相对路径,也可以是绝对路径。

输出参数

全部收缩

选择ROSBAG消息,返回A.BagSelection对象句柄。

关于rosbag内容的信息,作为结构返回。该结构包含与rosbag文件及其内容相关的字段。rosbag结构的输出示例如下:

路径:\ ros \ data \ ex_multipre_topics.bag版本:2.0持续时间:2:00s(120s)开始:1969年12月19日:03:21.34(201.34)末:12月31日1969 19:05:21.34(321.34)尺寸:23.6MB信息:36963种类型:gazebo_msgs / LinkStates [48c080191eb15c41858319b4d8a609c2] nav_msgs /里程计[cd5e73d190d741a2f92e81eda573aca7] rosgraph_msgs /时钟[a9c97c1d230cfc112e270351a944ee47] sensor_msgs /激光扫描[90c7ef2dc6895d81024acba2ac42f369]话题:/时钟12001倍的MSG:rosgraph_msgs /时钟/凉亭/ link_states 11999的MSG:gazebo_msgs / LinkStates/ odom 11998 msgs:nav_msgs / odometry / scan 965 msgs:sensor_msgs / laserscan

在R2019B中介绍