位置: IT常识 - 正文

ros中SLAM的EVO、APE测评——SLAM精度测评(一)(ros source)

编辑:rootadmin
ros中SLAM的EVO、APE测评——SLAM精度测评(一)

推荐整理分享ros中SLAM的EVO、APE测评——SLAM精度测评(一)(ros source),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:ros f1,ros navigation,ros org,ros+slam,ros+slam,ros+slam,ros+slam,ros demo,内容如对您有帮助,希望把文章链接给更多的朋友!

用于处理、评估和比较里程计和SLAM算法的轨迹输出。

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

evo工具github地址:Home · MichaelGrupp/evo Wiki · GitHub

0 安装

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

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

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

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

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

     入门

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

evo_traj tum traj1.txt traj2.txt

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

evo_traj tum traj1.txt –p

 ② 轨迹对齐

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

evo_traj tum realTraj.txt estTraj.txt -p

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

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

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

③ 轨迹尺度缩放

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

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

evo_traj tum –h

 1 精度测评

1.1 ape与rpe

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

evo_rpe  相对位姿误差(relativeposeerror),用于评价轨迹局部的准确性。 

1.2 evo_traj的可选参数

       轨迹对齐-a与尺度缩放-s,若增加可选参数-p,可以绘制误差相关曲线:

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

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

1.3 格式互相转换

ros中SLAM的EVO、APE测评——SLAM精度测评(一)(ros source)

 example1 EuRoC→TUM,输出为data.tum

evo_traj euroc data.csv --save_as_tum

 example1 EuRoC→kitti,输出为data.kitti

evo_traj tum traj_1.txt traj_2.txt traj_3.txt --save_as_kitti

2 轨迹绘图工具

evo_traj 用于分析、绘制或导出一个或多个轨迹的工具

evo_res 用于比较来自evo_ape或evo_rpe的一个或多个结果文件的工具

evo_fig (实验性)用于重新打开序列化绘图的工具(与--serialize_plot一起保存)

evo_config 用于全局设置和配置文件操作的工具

使用--help调用命令以查看选项,例如evo_ape --help。Tab命令行参数的完成在类UNIX系统上可用。

3 使用例程

3.1 evo_traj 绘制多条轨迹

evo_traj kitti KITTI_00_ORB.txt KITTI_00_SPTAM.txt --ref=KITTI_00_gt.txt -p --plot_mode=xz

 3.2 evo_ape 在轨迹上运行测评

例如,在这里,我们使用evo_ape(KITTI_00_gt.txt是参考(地面真相))计算ORB-SLAM和S-PTAM的两条轨迹的绝对姿态误差,并绘制并保存单个结果。evo_res的压缩文件:

First trajectory (ORB Stereo):

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

Second trajectory (S-PTAM):

evo_ape kitti KITTI_00_gt.txt KITTI_00_SPTAM.txt -va --plot --plot_mode xz --save_results results/SPTAM.zip

 

3.3 evo_res 从一个度量中处理多个结果

evo_res可用于比较指标中的多个结果文件,即:

        打印信息和统计信息(默认)打印结果并将统计信息保存在表格中。在这里,我们使用上面的结果生成一个图和一个表:

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

4 应用

 4.1 "把EuRoc的数据格式转化成TUM数据格式"

evo_traj euroc data.csv --save_as_tum

将生成的 KeyFrameNavStateTrajectory.txt 文件,格式如下。总共17位  (timestamp;position3;q4;v3;bw3;ba3)

转化成符合TUM 形式的轨迹文件格式:8位

timestamp x y z q_x q_y q_z q_w

4.2 "TUM数据转换成kitti格式"

evo_traj tum traj_1.txt  traj_2.txt  traj_3.txt  --save_as_kitti

4.3 "TUM数据转换成bag格式"

" 把一些文件的数据格式转化成rosbag"evo_traj tum traj_1.txt traj_2.txt traj_3.txt --save_as_bag

 4.4. 轨迹对齐

当轨迹使用不同的传感器坐标系,或者轨迹之间有旋转平移等变换时,可以使用 "--align" 参数进行轨迹对齐, 使用 "--correct_scale"进行轨迹放缩。一个例子,如下面的命令所示。

注意:

这里对比的轨迹,应该具有相同数量的位姿(相同数量的行),当然也应该是相同数量的列(位姿的表示方法相同)同时使用align参数,应该指定reference(即指定"--ref"参数)evo_traj tum KeyFrameTrajectory.txt --ref=KITTI_02_gt.txt -p --plot_mode=xz --correct_scale --align

参考文献

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

GitHub - MichaelGrupp/evo: Python package for the evaluation of odometry and SLAM

本文链接地址:https://www.jiuchutong.com/zhishi/283217.html 转载请保留说明!

上一篇:netsurf.exe - netsurf是什么进程 有什么用

下一篇:IMEKRMIG.EXE进程是什么程序 是什么文件 IMEKRMIG进程查询(msmpeng.exe是什么进程)

  • 真我q3s怎么设置隐私替身(真我Q3s怎么设置隐藏相册)

    真我q3s怎么设置隐私替身(真我Q3s怎么设置隐藏相册)

  • 双方都加不了微信怎么回事(微信双方都加不上好友怎么办)

    双方都加不了微信怎么回事(微信双方都加不上好友怎么办)

  • 360手机助手扫码功能在哪儿(360手机助手扫码连接不上)

    360手机助手扫码功能在哪儿(360手机助手扫码连接不上)

  • 小红书发布笔记被显示违规有什么影响(小红书发布笔记如何分类合集)

    小红书发布笔记被显示违规有什么影响(小红书发布笔记如何分类合集)

  • ipadpro尺寸对比厘米(ipadpro2021尺寸对比厘米)

    ipadpro尺寸对比厘米(ipadpro2021尺寸对比厘米)

  • 小米怎么隐藏app(小米怎么隐藏app图标)

    小米怎么隐藏app(小米怎么隐藏app图标)

  • uibot是什么软件(uibot真的好用吗)

    uibot是什么软件(uibot真的好用吗)

  • 苹果一晚上掉电多少算正常(苹果一晚上掉电多少正常)

    苹果一晚上掉电多少算正常(苹果一晚上掉电多少正常)

  • 快手粉丝团一共有多少级(快手卖粉丝网站平台)

    快手粉丝团一共有多少级(快手卖粉丝网站平台)

  • 新电脑硬盘使用时间多少正常(新电脑硬盘使用0小时)

    新电脑硬盘使用时间多少正常(新电脑硬盘使用0小时)

  • qq怎么没有闪照了(qq怎么没有闪照按钮)

    qq怎么没有闪照了(qq怎么没有闪照按钮)

  • 能插卡的ipad是哪一款(插卡的ipad是哪一款)

    能插卡的ipad是哪一款(插卡的ipad是哪一款)

  • 广角摄像头和普通摄像头的区别(广角摄像头和普通摄像头的区别图)

    广角摄像头和普通摄像头的区别(广角摄像头和普通摄像头的区别图)

  • 手机浏览器点开闪退怎么办(手机浏览器点开有不良视频出现怎么关闭)

    手机浏览器点开闪退怎么办(手机浏览器点开有不良视频出现怎么关闭)

  • 光猫可以自己更换吗(光猫可以自己换新的吗?)

    光猫可以自己更换吗(光猫可以自己换新的吗?)

  • 嵌入式系统开发用什么语言

    嵌入式系统开发用什么语言

  • 幻灯片两栏内容怎么做 (幻灯片两栏内容版式)

    幻灯片两栏内容怎么做 (幻灯片两栏内容版式)

  • 苹果Mac系统自带的原生输入法使用技巧详解(mac系统自带软件有哪些)

    苹果Mac系统自带的原生输入法使用技巧详解(mac系统自带软件有哪些)

  • 手把手教你暴力破解(手把手教你暴力破解wifi密码)

    手把手教你暴力破解(手把手教你暴力破解wifi密码)

  • 手把手教你实现一个JavaWeb项目:创建一个自己的网页博客系统(前端+后端)(一)(手把手教你实现用户登录界)

    手把手教你实现一个JavaWeb项目:创建一个自己的网页博客系统(前端+后端)(一)(手把手教你实现用户登录界)

  • 计算机视觉基础学习-图像拼接(计算机视觉基础知识)

    计算机视觉基础学习-图像拼接(计算机视觉基础知识)

  • java拼接字符串的使用(java拼接字符串和数字)

    java拼接字符串的使用(java拼接字符串和数字)

  • 财产和行为税合并申报
  • 验收入库材料结转怎么写
  • 印花税是不是必须要交
  • 物业管理水电费税率
  • 公司已倒闭
  • 售后回租涉税
  • 应收账款售让会计分录怎么写?
  • 构建固定资产的总结
  • 被投资方亏损怎么处理
  • 发行股票所支付的手续费计入
  • 增值税发票如何读入金税盘
  • 销售苗木属于什么行业
  • 财库联网集中户扣了我的钱
  • 营改增后转让土地使用权怎么计算增值税
  • 对公账户开通网银有什么好处
  • 汇算清缴时交的税怎么算
  • 个人开票给公司个人所得税怎么扣
  • 财务报表包括哪三大报表?(多选)
  • 在linux中使用什么命令可以动态查看文件内容
  • 补缴增值税怎么做账
  • win10平板模式怎么切换
  • PHP:pcntl_sigprocmask()的用法_PCNTL函数
  • 补充养老保险费扣除限额
  • 视频监控智能化应用
  • 土地增值税清算管理规程
  • 栖息在树林中
  • taro-ui-vue3
  • php框架symfony
  • 三级菜单python
  • 外贸企业进项发票能是外贸企业吗
  • php2008
  • php trim函数
  • 发票抵扣联能报销吗
  • thinkphp框架介绍
  • 股东分红的会计处理方法
  • unet模型代码matlab
  • 云质信息
  • 钱进公账怎么转账给别人
  • 长期应付款的会计编号
  • 手机话费怎么打发票
  • MySQL的LEFT JOIN表连接的进阶学习教程
  • dede标签的使用
  • dedecms安装步骤
  • 库存不多
  • 没进项发票开销项发票是可以吗?
  • 即征即退增值税怎么申报
  • 企业所得税季度申报表怎么填
  • 商品组装后出售怎么做账
  • 发票没有纳税人识别号怎么重开
  • 网上报税有没有时间限制
  • 财产租赁合同印花税申报期限
  • 刻章费用怎么说
  • 委托加工业务的财务职责
  • 汇票和本票的区别是
  • 佣金如何做账分录
  • 小规模纳税人增值税账务处理
  • 客户收到产品后应该说什么
  • 生育津贴与员工有关吗
  • 物业水电费计算
  • 购进销售产品的会计分录
  • 工会经费的计提与缴纳
  • sqlserver数据库和mysql区别
  • win7旗舰版系统重装
  • Ubuntu14.4下Sublime Text 3无法输入中文解决方法
  • 在linux操作系统中,/etc/rc.d/init.d
  • efi shell有什么用
  • windows使用svn命令
  • linux登录提示
  • android framework.jar
  • django sessionid
  • Unity3D游戏开发pdf
  • linux的启动顺序
  • python中用input()函数接收到的数据为
  • unity3d ik
  • 猫的游戏视频
  • jquery 放大镜
  • android studio 开发语言
  • python crc
  • 河源市人民医院上班时间
  • 国家税务局河北省税务局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设