首页 > 其他分享 >视觉里程计的轨迹评估的工具:evo

视觉里程计的轨迹评估的工具:evo

时间:2022-10-06 13:03:17浏览次数:88  
标签:轨迹 evo -- 里程计 traj 对齐 txt



evo是一款用于视觉里程计和slam问题的轨迹评估工具。核心功能是能够绘制相机的轨迹,或评估估计轨迹与真值的误差。支持多种数据集的轨迹格式(TUM、KITTI、EuRoC MAV、ROS的bag),同时支持这些数据格式之间进行相互转换。在此仅对其基本功能做简要介绍。

一、安装

安装方式极其简单,采用pip安装:

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

或者通过github下载源码后(https://github.com/MichaelGrupp/evo),使用源码安装:

pip install --editable . --upgrade --no-binary evo

安装时会自动安装相关依赖项。

安装完毕后,在命令行输入evo,若显示了相关信息,则表明安装成功。若提示"command not found"也不用惊慌,很多人遇到这种问题,重启电脑即可找到evo相应指令。

二、绘制轨迹

1. 基础指令

evo绘制轨迹的指令为:evo_traj,后跟必要参数有:数据的格式(tum/kitti/bag/euroc等),轨迹文件。轨迹文件可以有多个,例如:

evo_traj tum traj1.txt traj2.txt

这个指令只是显示轨迹的基本信息,若要绘制轨迹,则增加可选参数 -p 或 --plot

evo_traj tum traj1.txt –p

视觉里程计的轨迹评估的工具:evo_缩放

2. 轨迹对齐

我们时常需要将估计轨迹与真实轨迹同时绘制,可采用指令:

evo_traj tum realTraj.txt estTraj.txt -p

然而存储时轨迹多为相对位置变化,所以绘制出的轨迹在初始位置上存在一定的位置和角度偏移,出现以下情况。

视觉里程计的轨迹评估的工具:evo_github_02

(如图所示,左图为绘制的两条曲线,通过调整可以发现两个曲线形状大体相同,但没有对齐,从而具有较大的误差)

这时我们采用对齐指令将两条轨迹进行对齐。为此我们需要通--ref参数指定参考轨迹,并增加参数-a(或--align)进行对齐(旋转与平移)

evo_traj tum estTraj.txt --ref realTraj.txt -p -a

3. 轨迹尺度缩放

单目相机会存在尺度的不确定性,evo_traj 支持使用-s(或 --correct_scale)参数进行Sim(3)上的对齐(旋转、平移与尺度缩放)

视觉里程计的轨迹评估的工具:evo_github_03

(图片从左到右:两条未对齐曲线、曲线对齐后绘制结果、曲线通过尺度缩放后结果)

三、轨迹评估

evo可以评估两条轨迹的误差,主要有两个命令:

evo_ape:计算绝对位姿误差(absolute pose error),用于整体评估整条轨迹的全局一致性;

evo_rpe:计算相对位姿误差(relative pose error),用于评价轨迹局部的准确性。

这两个指令也支持evo_traj的可选参数,轨迹对齐-a与尺度缩放-s。完整指令如下:

evo_ape tum realTraj.txt estTraj.txt -a –s

此时将显示轨迹误差相关结果。

视觉里程计的轨迹评估的工具:evo_缩放_04

若增加可选参数-p,可以绘制误差相关曲线:

视觉里程计的轨迹评估的工具:evo_缩放_05

注意:在进行评估时,若经过了缩放,应将真实轨迹(参考轨迹)放在估计轨迹(计算轨迹)前方,避免在缩放时参考轨迹错误而造成误差被错误缩放。

四、进阶学习

这里只介绍了evo的基本操作,除此之外evo可以进行数据格式转化、曲线颜色配置、轨迹导出等多种功能,详细请参考evo在github上的wiki:

​https://github.com/MichaelGrupp/evo/wiki​

同时,可以在命令行通过-h参数查看当前evo指令的参数及相关说明。例如:

evo_traj tum –h

注意一定要输入完整的evo指令(evo_traj, evo_ape等),与必选参数,即数据格式(tum/kitti/euroc/bag)

上述内容,如有侵犯版权,请联系作者,会自行删文。

标签:轨迹,evo,--,里程计,traj,对齐,txt
From: https://blog.51cto.com/u_14439393/5733549

相关文章

  • Azure DevOps Server 2022新功能:存档或禁用Git代码库
    在使用AzureDevOpsServer(之前名称为TFS)实现源代码版本管理的时候,经常会碰到这样的场景:一个项目已经结束,不允许开发人员对源代码做任何修改,但是还允许开发人员查阅,实现对......
  • 基于关键帧的RGB-D视觉惯性里程计
    论文信息:ChuC,YangS.Keyframe-BasedRGB-DVisual-InertialOdometryandCameraExtrinsicCalibrationUsingExtendedKalmanFilter[J].IEEESensorsJournal,2......
  • 导航系统中里程计研究综述
    文章:ASurveyonOdometryforAutonomousNavigationSystems作者:SHERIFA.S.MOHAMED,MOHAMMAD-HASHEMHAGHBAYAN,TOMIWESTERLUND翻译:particle论文阅读模块将分享点......
  • Azure DevOps Server 2022新功能:全新的TFVC操作界面
    AzureDevOpsServer(之前名称为TFS)从2013年开始就支持分布式(Git)和集中式(TFVC)两种代码库,近年来由于Git被软件研发团队广泛采纳,集中式代码库(TFVC或SVN)逐渐被开发人员抛弃;但......
  • 计算机视觉方向简介 | 视觉惯性里程计(VIO)
    VIO-SLAMVisual-InertialOdometry(VIO)即视觉惯性里程计,有时也叫视觉惯性系统(VINS,visual-inertialsystem),是融合相机和IMU数据实现SLAM的算法,根据融合框架的不同又分为松耦合......
  • 深入浅出DevOps:流水线任务改造
    ......
  • DevOps落地实践点滴和踩坑记录-(1)
    记录初衷本人一直在从事企业内DevOps落地实践的工作,走了不少弯路,也努力在想办法解决面临的问题,期间也经历过不少人和事情,最近突然有想法把经历过的,不管好的不好的都记录下来......
  • Azure DevOps Server 交付计划,提高大型研发团队的协作效率
    笔者参与过的多个大型(超过千人)软件研发团队的协作过程中,都不约而同的碰到一个相似的问题:由于研发团队庞大、信息系统众多、信息系统之间的关联关系错综复杂,往往一个重要的......
  • devops学习笔记-jenkins实现基础CI/CD操作
    在之前的devops工具链中完成了jenkins以及gitlab配置之后,可以实现基础的CI/CD操作。操作流程整体的操作的流程如下所示:在开发环境配置好代码之后,将代码上传到gitlab,jenkins......
  • 十分钟速成DevOps实践
    摘要:以华为云软件开发平台DevCloud为例,十分钟简单体验下DevOps应用上云实践——H5经典小游戏上云。本文分享自华为云社区《《DevOps实践秘籍》十分钟速成DevOps实践》,作者......