如何保存rviz中显示的机器人无人车轨迹并在matlab中处理

如何导出机器人轨迹并在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文件,右键,导入数据,会出现一个工具箱,可以自动把文本和其对应的数字分开,这样如果分出的数字正好是想要的就可以直接导入数字列了,但我的数据里,有的数字是想要的,有的数字不想要,我只能先把他们全部都导入再筛选,数据集大的话这个过程有点长。。。。。。。
导入数据后
可以看到工作区中的相关数据,选择需要处理的就行了。

原文地址:https://www.cnblogs.com/sariel-sakura/p/13164642.html