使用MATLAB读取分析ros记录的.bag文件

本文详细介绍了如何在ROS环境中进行正确的网络配置,包括设置主机和本机节点的IP地址,初始化ROS主机,以及如何读取和处理bag文件中的数据,如从bag文件中读取odom信息并绘制路径轨迹。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////一定要关闭所有的防火墙

 

设置主机IP

setenv('ROS_MASTER_URI','http://192.168.43.241;11311')

设置本机节点ip

setenv('ROS_IP','192.168.43.82')

初始化主机

rosinit('http://192.168.43.241:11311')

初始化成功显示:The value of the ROS_IP environment variable, 192.168.43.82, will be used to set the advertised address for the ROS node.

Initializing global node /matlab_global_node_31245 with NodeURI http://192.168.43.82:10300/

测试节点

rosnode list

读取bag文件

filepath=fullfile('c:','2019-03-01-21-54-57.bag')

bag=rosbag(filepath)

读取bag中指定的信息,这里读取的是odom

odom_message=select(bag,'MessageType','nav_msgs/Odometry')

data=readMessages(odom_message)

读取坐标

position=zeros(180,3);

for i=1:180

position(i,1)=data{i,1}.Pose.Pose.Position.X;

position(i,2)=data{i,1}.Pose.Pose.Position.Y;

position(i,3)=data{i,1}.Pose.Pose.Position.Z;

end

画三维图

for i=1:180

plot3(position(i,1),position(i,2),position(i,3),'r.','markersize',5);

hold on

end

画二维图

for i=1:180

plot(position(i,1),position(i,2),'r.','markersize',5);

hold on

end

 

//////////////////////////////////////////////////////////////////////////////////////////////////////////一定要关闭所有的防火墙

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值