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

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

 

设置主机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

 

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

你可能感兴趣的:(ros)