如何导出机器人轨迹并在matlab中处理
参考:https://blog.csdn.net/weixin_43246530/article/details/82845615
导出轨迹
将轨迹topic保存成bag文件:
robag record -o /topic_name
1.如果轨迹是pointcloud2类型的,接下来就可以直接转换为pcd文件在matlab中处理了:
rosrun pcl_ros bag_to_pcd bagname.bag /topic_name to file_name
然后在matlab中处理pcd:
ptCloud=pcread('路径值+包名');
xy=ptCloud.Location;
之后就可以随意用plot3,scatter等等画图啦,比如
scatter(xy(:,1)),xy(:,3),);
2.如果估计是其他类型的比如我现在遇到了轨迹是nav_msgs类型的,就无法用上面语句导成pcd格式了,在这里我采用不录制bag,而且直接保存topic信息为txt文件再存储。
在运行数据包一开始,用
rostopic echo /topic_name >name.txt
保成txt文件后,现在是一个有字符串和数字的混合文件,还不能直接用来画图,先导入到matlab中,在matlab左侧文件目录去点击txt文件,右键,导入数据,会出现一个工具箱,可以自动把文本和其对应的数字分开,这样如果分出的数字正好是想要的就可以直接导入数字列了,但我的数据里,有的数字是想要的,有的数字不想要,我只能先把他们全部都导入再筛选,数据集大的话这个过程有点长。。。。。。。
导入数据后
可以看到工作区中的相关数据,选择需要处理的就行了。