• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

SLAM 轨迹评估工具EVO

人工智能 熊猫飞天 2045次浏览 0个评论

EVO使用教程

  • 1 EVO环境安装
    • 1.1 二进制安装
    • 1.2 源码安装
  • 2 使用方法
    • 2.1 TUM数据集上使用
      • 2.1.1 计算轨迹的绝对误差(evo_ape)
      • 2.1.2 绘制多条曲线(evo_traj)
      • 2.1.3 分析多条曲线(evo_res)
    • 2.3 KITTI数据集上使用
      • 2.2.1 计算轨迹的绝对误差
      • 2.2.2 绘制多条曲线
      • 2.2.3 分析多条曲线
    • 2.3 EUROC数据集上使用
      • 2.3.1 计算轨迹的绝对误差
  • 参考资料

我使用的环境为ubunut1604+ROS(Kinect)版本,环境是Python2的

1 EVO环境安装

1.1 二进制安装

 

pip install evo --upgrade --no-binary evo

 

1.2 源码安装

推荐使用源代码安装方式。,首先安装依赖项:  

sudo pip install --upgrade pip
sudo pip install --user --upgrade
 
sudo apt-get install libfreetype6-dev gfortran
pip install matplotlib
pip install scipy

  安装evo:  

git clone -b python2  https://github.com/MichaelGrupp/evo.git
cd evo
pip install --editable . --upgrade --no-binary evo

  出现以下情况则表示安装成功了  
SLAM 轨迹评估工具EVO  

2 使用方法

EVO提供了绝对误差和相对误差评估命令和图形分析工具(暂且这样称呼它): evo_ape – absolute pose error (绝对误差) evo_rpe – relative pose error (相对误差)   Tools: evo_traj – tool for analyzing, plotting or exporting one or more trajectories(用于分析一个或者多个曲线) evo_res – tool for comparing one or multiple result files from evo_ape or evo_rpe evo_fig – (experimental) tool for re-opening serialized plots (saved with –serialize_plot) evo_config – tool for global settings and config file manipulation   这里需要注意一下 EUROC数据、TUM数据集、KITTI数据集使用的四元数顺序是不一样的,因此在使用命令的时候后续需要加参数予以区分,我们在自己保存算法输出的轨迹文件的时候应当注意这一点。 在evo的源码中 evo/test/data 目录下面有用于测试的数据集

2.1 TUM数据集上使用

2.1.1 计算轨迹的绝对误差(evo_ape)

评估算法输出的曲线和真实值之间的绝对误差(absolute pose error)  

mkdir results
evo_ape tum fr2_desk_groundtruth.txt  fr2_desk_ORB.txt -va --plot --plot_mode xz --save_results results/ORB_fr2_desk.zip

  执行命令以后,在终端中打印出RMSE等误差值  
SLAM 轨迹评估工具EVO   若出现错误: [ERROR] evo module evo.main_ape crashed – no logfile written (disabled) 则是由于matplotlib 的问题,需要升级一下 matplotlib  

pip install matplotlib --upgrade

 

2.1.2 绘制多条曲线(evo_traj)

在一张图中绘制两个算法的输出曲线(rgbdslam-v2 和 orb-slam),其中 –ref的参数为指定的真是轨迹值。  

evo_traj tum freiburg1_xyz-ORB_kf_mono.txt freiburg1_xyz-rgbdslam.txt  --ref=freiburg1_xyz-groundtruth.txt -va --plot --plot_mode xy

    在图片的界面中可以修改曲线的颜色等参数。  
SLAM 轨迹评估工具EVO  

2.1.3 分析多条曲线(evo_res)

假设现在我使用2.1.1中命令生成了在fr1_xyz 和 fr2_desk两个序列上的Zip文件(这两个zip文件都在result目录下面)。此时我们使用 evo_res 命令分析算法在这两个序列上的性能  

 evo_res results/*.zip -p --save_table results/table.csv

  这表示分析 results 目录下面所有的zip文件。  
SLAM 轨迹评估工具EVO  

2.3 KITTI数据集上使用

2.2.1 计算轨迹的绝对误差

这里会生成一个名为xxx.zi压缩文件,这个在绘制多条曲线会用到。  

mkdir results
evo_ape kitti KITTI_00_gt.txt KITTI_00_ORB.txt -va --plot --plot_mode xz --save_results results/KITTI_00_ORB.zip

 
SLAM 轨迹评估工具EVO  

2.2.2 绘制多条曲线

将待绘制的曲线文件放置于同一个文件夹test中,  

cd test/data
evo_traj kitti KITTI_00_ORB.txt KITTI_00_SPTAM.txt --ref=KITTI_00_gt.txt -p --plot_mode=xz

  其中,KITTI_00_ORB.txt 表示第1个算法在序列上运行的文件,KITTI_00_SPTAM.txt* 表示第2个算法在序列上运行的文件,***–ref=KITTI_00_gt.txt*** 表示指定真实的groundtruth轨迹文件,***-p –plot_mode=xz*** 则命令参数,在XOZ平面绘制轨迹。  
SLAM 轨迹评估工具EVO  

2.2.3 分析多条曲线

 

 evo_res results/*.zip -p --save_table results/table.csv

 
SLAM 轨迹评估工具EVO  

2.3 EUROC数据集上使用

2.3.1 计算轨迹的绝对误差

评估算法输出的曲线和真实值之间的绝对误差(absolute pose error)  

evo_ape euroc V102_groundtruth.csv V102.txt -va --plot --plot_mode xy --save_results results/EUROC.zip

 
SLAM 轨迹评估工具EVO   其余两个命令与前面的操作一样,只需要将命令中的 euroc 和***kitti***替换成***tum***即可。

参考资料

官方教程:https://github.com/MichaelGrupp/evo https://blog.csdn.net/A_L_A_N/article/details/88708979 https://blog.csdn.net/qq_37568167/article/details/104961523 如果文章对你有所帮助,请大家帮忙点个赞。O(∩_∩)O 欢迎大家在评论区交流讨论(cenruping@vip.qq.com)  


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明SLAM 轨迹评估工具EVO
喜欢 (0)

您必须 登录 才能发表评论!

加载中……