当前位置:网站首页>rosbag数据画图MATLAB
rosbag数据画图MATLAB
2022-07-29 13:47:00 【迷茫的桔子】
本文介绍使用matlab对rosbag数据进行画图
1rosbag用法
首先启动任何一个ros程序,比如小乌龟,进行控制
一般而言,只需要简单的一个命令就可以了
cd 桌面
rosbag record -a
参考链接:rosbag使用方法汇总
记录完成以后,把bag文件拷到win系统下,打开matlab
2matlab数据处理
clear;
close all;
bag = rosbag('wugui.bag');
执行这三步以后,在bag这个数据下就可以看到所有的话题
接着获取具体数据的值
sel = select(bag, 'Topic', '/turtle1/cmd_vel');
msgStructs = readMessages(sel,'DataFormat','struct');
读取数据以后,保存在了msgStructs这个数据里,打开这个数据,就可以看到里面的结构体类型
以获取速度话题为例,比如X方向的线速度就可以知道Linear->X
然后进行单个数据获取
vx1 = cellfun(@(m) double(m.Linear.X),msgStructs);
vy1 = cellfun(@(m) double(m.Linear.Y),msgStructs);
然后vx1和vy1就是数组,就可以用来画图了
完整代码
clear;
close all;
bag = rosbag('wugui.bag');
sel = select(bag, 'Topic', '/turtle1/cmd_vel');
msgStructs = readMessages(sel,'DataFormat','struct');
vx1 = cellfun(@(m) double(m.Linear.X),msgStructs);
vy1 = cellfun(@(m) double(m.Linear.Y),msgStructs);
sel = select(bag, 'Topic', '/turtle1/pose');
msgStructs = readMessages(sel,'DataFormat','struct');
d01x = cellfun(@(m) double(m.X),msgStructs);
d01y = cellfun(@(m) double(m.Y),msgStructs);
figure(1)
hold on;
plot(d01x,d01y,'Color','b','LineStyle','-','LineWidth',1);
grid on;
边栏推荐
猜你喜欢
随机推荐
十种实现延迟任务的方案
leetcode链表专题
torchvison里面的数据增强
【MySQL】ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘
Sqoop导入导出时数据内存溢出
Alibaba CTO Cheng Li: open source is the source of basic software!
The Location object of BOM series
使用云服务器从0开始搭建云端Jupyter Lab|Notebook
深度解析C语言文件操作以及常见问题
接口和抽象
How to merge the code when there is a code conflict in the collaborative development of multiple people?
Gee engine modification UI interface graphic tutorial
1192. 奖金
深开鸿:万物智联的大江上,升起一轮开源鸿蒙月
中国电信首发全新加密通话产品!有效防止网络监听
小程序开发模板设计怎么做?
AI全流程开发难题破解之钥
解决:Parameter 0 of method ribbonServerList in com.alibaba.cloud.nacos.ribbon.NacosRibbonClientConfigu
基于变胞机构的移动机器人构型设计研究综述
leetcode134. 加油站