赞
踩
之前博客《ROS学习笔记之——VICON的使用》用vincon获得了机器人的真实轨迹,并且通过amcl可以获得了机器人的定位结果,下面通过EVO包来表征performance(本文不像网上大部分博客复制粘贴别人的图,连跑都没跑过)
by the way
不得不说这csdn的编辑器真的十分垃圾。。。。。
哦不,不是一般的十分垃圾
开始正文~
首先安装EVO工具
- sudo apt install python-pip
- pip install evo --upgrade --no-binary evo
运行ros包并且看一下topic
- roscore
- rosbag play /home/kwanwaipang/dataset/gwphku/amcl_vicon_2021-11-04-11-18-50.bag
- rostopic list
将/turtlebot2/viconros/mocap/pos作为ground truth, /amcl_pose作为定位输出。
evo_traj bag /home/kwanwaipang/dataset/gwphku/amcl_vicon_2021-11-04-11-18-50.bag /amcl_pose --ref=/turtlebot2/viconros/mocap/pos -va -p --plot_mode=xy
(对应evo工具中的“evo_ape”命令)
绝对轨迹误差(absolute trajectory error)**直接计算相机位姿的真实值与SLAM系统的估计值之间的差。程序首先根据位姿的时间戳将真实值和估计值进行对齐, 然后计算每对位姿之间的差值, 并最终以图表的形式输出, 该标准非常适合于评估视觉 SLAM 系统的性能。
绝对轨迹误差是估计位姿和真实位姿的直接差值,可以非常直观地反应算法精度和轨迹全局一致性。
evo_ape bag /home/kwanwaipang/dataset/gwphku/amcl_vicon_2021-11-04-11-18-50.bag /turtlebot2/viconros/mocap/pos /amcl_pose -va --plot --plot_mode=xy
显然,默认出来的是平移误差
但实际可以根据需要选择不一样的参数
比如下面设定角度与平移
- evo_ape bag /home/kwanwaipang/dataset/gwphku/amcl_vicon_2021-11-04-11-18-50.bag /turtlebot2/viconros/mocap/pos /amcl_pose -va -r trans_part --plot --plot_mode=xy
- evo_ape bag /home/kwanwaipang/dataset/gwphku/amcl_vicon_2021-11-04-11-18-50.bag /turtlebot2/viconros/mocap/pos /amcl_pose -va -r angle_deg --plot --plot_mode=xy
第一句跟上面是一样的。第二句的结果如下所示
通过下面这样也可以看到参数的选择:
(对应evo工具中的“evo_rpe”命令)
相对位姿误差(relative pose error)用于计算相同两个时间戳内的位姿变化量的差, 同样, 在用时间戳对齐之后, 真实位姿和估计位姿均每隔一段相同时间计算位姿的变化量, 然后对该变化量做差, 以获得相对位姿误差, 该标准适合于估计系统的漂移。
evo_rpe bag /home/kwanwaipang/dataset/gwphku/amcl_vicon_2021-11-04-11-18-50.bag /turtlebot2/viconros/mocap/pos /amcl_pose -va --plot --plot_mode=xy
https://github.com/uzh-rpg/rpg_trajectory_evaluation
https://github.com/MichaelGrupp/evo
SLAM_轨迹算法精度评价指标(ATE、RPE)_惊鸿一博-CSDN博客
SLAM_轨迹算法精度评价指标(ATE、RPE)_惊鸿一博-程序员宅基地 - 程序员宅基地
小白学SLAM——使用评测工具EVO评估误差 - 知乎
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。