参考链接
官方github:https://github.com/MichaelGrupp/evo
一、 指令分析
1.1 tum
数据集,evo_ape
指令
evo_ape {kitti,tum,euroc,bag} -h
evo_ape tum -h
(1) 终端输入:
evo_ape tum -h
(2) 终端打印:
usage: evo_ape tum [-h][-r {full,trans_part,rot_part,angle_deg,angle_rad,point_distance}][-a] [-s] [--n_to_align N_TO_ALIGN] [--align_origin] [-p][--plot_mode {xy,xz,yx,yz,zx,zy,xyz}][--plot_x_dimension {index,seconds,distances}][--plot_colormap_max PLOT_COLORMAP_MAX][--plot_colormap_min PLOT_COLORMAP_MIN][--plot_colormap_max_percentile PLOT_COLORMAP_MAX_PERCENTILE][--plot_full_ref] [--ros_map_yaml ROS_MAP_YAML][--save_plot SAVE_PLOT] [--serialize_plot SERIALIZE_PLOT][--save_results SAVE_RESULTS] [--logfile LOGFILE][--no_warnings] [-v] [--silent] [--debug] [-c CONFIG][--t_max_diff T_MAX_DIFF] [--t_offset T_OFFSET][--t_start T_START] [--t_end T_END]ref_file est_fileAbsolute pose error (APE) metric app for TUM trajectory files - (c) evo
authorspositional arguments:ref_file reference trajectory fileest_file estimated trajectory fileoptional arguments:-h, --help show this help message and exit--t_max_diff T_MAX_DIFFmaximum timestamp difference for data association--t_offset T_OFFSET constant timestamp offset for data association--t_start T_START only use data with timestamps greater or equal thisstart time--t_end T_END only use data with timestamps less or equal this endtimealgorithm options:-r {full,trans_part,rot_part,angle_deg,angle_rad,point_distance}, --pose_relation {full,trans_part,rot_part,angle_deg,angle_rad,point_distance}pose relation on which the APE is based-a, --align alignment with Umeyama's method (no scale)-s, --correct_scale correct scale with Umeyama's method--n_to_align N_TO_ALIGNthe number of poses to use for Umeyama alignment,counted from the start (default: all)--align_origin align the trajectory origin to the origin of thereference trajectoryoutput options:-p, --plot show plot window--plot_mode {xy,xz,yx,yz,zx,zy,xyz}the axes for plot projection--plot_x_dimension {index,seconds,distances}dimension that is used on the x-axis of the raw valueplot(default: seconds, or index if no timestamps arepresent)--plot_colormap_max PLOT_COLORMAP_MAXthe upper bound used for the color map plot (default:maximum error value)--plot_colormap_min PLOT_COLORMAP_MINthe lower bound used for the color map plot (default:minimum error value)--plot_colormap_max_percentile PLOT_COLORMAP_MAX_PERCENTILEpercentile of the error distribution to be used as theupper bound of the color map plot (in %, overrides--plot_colormap_max)--plot_full_ref plot the full, unsynchronized reference trajectory--ros_map_yaml ROS_MAP_YAMLyaml file of an ROS 2D map image (.pgm/.png) that willbe drawn into the plot--save_plot SAVE_PLOTpath to save plot--serialize_plot SERIALIZE_PLOTpath to serialize plot (experimental)--save_results SAVE_RESULTS.zip file path to store results--logfile LOGFILE Local logfile path.usability options:--no_warnings no warnings requiring user confirmation-v, --verbose verbose output--silent don't print any output--debug verbose output with additional debug info-c CONFIG, --config CONFIG.json file with parameters (priority over command lineargs)
(3) 终端打印解释:
这段内容是 evo_ape
工具的命令行帮助信息,它提供了如何使用该工具来计算TUM轨迹文件的绝对位姿误差(Absolute Pose Error, APE)的详细说明。evo_ape
是一个用于评估视觉里程计(VO)或同时定位与建图(SLAM)系统性能的工具,特别是针对TUM数据集中的轨迹文件。
以下是命令行参数的解释:
位置参数:
ref_file
:参考轨迹文件,通常是ground truth轨迹。est_file
:估计轨迹文件,即你的视觉里程计或SLAM系统生成的轨迹。
可选参数:
-h, --help
:显示帮助信息并退出。--t_max_diff T_MAX_DIFF
:数据关联的最大时间戳差异。--t_offset T_OFFSET
:数据关联的恒定时间戳偏移。--t_start T_START
:只使用时间戳大于或等于这个开始时间的数据。--t_end T_END
:只使用时间戳小于或等于这个结束时间的数据。
算法选项:
-r {full,trans_part,rot_part,angle_deg,angle_rad,point_distance}, --pose_relation {full,trans_part,rot_part,angle_deg,angle_rad,point_distance}
:基于哪种位姿关系计算APE。-a, --align
:使用Umeyama方法(不包括尺度)进行对齐。-s, --correct_scale
:使用Umeyama方法进行尺度校正。--n_to_align N_TO_ALIGN
:用于Umeyama对齐的位姿数量,从开始计数(默认:全部)。--align_origin
:将轨迹原点与参考轨迹的原点对齐。
输出选项:
-p, --plot
:显示绘图窗口。--plot_mode {xy,xz,yx,yz,zx,zy,xyz}
:绘图投影的轴。--plot_x_dimension {index,seconds,distances}
:用于原始值绘图的x轴的维度(默认:秒,或者如果没有时间戳则为索引)。--plot_colormap_max PLOT_COLORMAP_MAX
:用于颜色图绘图的上界(默认:最大误差值)。--plot_colormap_min PLOT_COLORMAP_MIN
:用于颜色图绘图的下界(默认:最小误差值)。--plot_colormap_max_percentile PLOT_COLORMAP_MAX_PERCENTILE
:用作颜色图绘图上界的误差分布的百分位数(%,覆盖--plot_colormap_max
)。--plot_full_ref
:绘制完整的、未同步的参考轨迹。--ros_map_yaml ROS_MAP_YAML
:ROS 2D地图图像(.pgm/.png)的yaml文件,将被绘制在绘图中。--save_plot SAVE_PLOT
:保存绘图的路径。--serialize_plot SERIALIZE_PLOT
:序列化绘图的路径(实验性)。--save_results SAVE_RESULTS
:存储结果的.zip文件路径。--logfile LOGFILE
:本地日志文件路径。
可用性选项:
--no_warnings
:不显示需要用户确认的警告。-v, --verbose
:详细输出。--silent
:不打印任何输出。--debug
:带有额外调试信息的详细输出。-c CONFIG, --config CONFIG
:带有参数的.json文件(优先级高于命令行参数)。
这个工具主要用于研究和开发中,以评估和比较不同视觉里程计或SLAM系统的精度和鲁棒性。通过计算估计轨迹与参考轨迹之间的误差,研究人员和开发者可以了解他们系统的优缺点,并据此进行改进。
(4) 额外说明:
-va
与-v -a
当你运行 evo_ape -va
命令时,这里的 -v
和 -a
是两个命令行参数:
-
-v
:这是--verbose
的简写形式,表示启用详细输出模式。启用这个选项后,evo_ape
会输出更多的信息,包括处理过程中的中间步骤和额外的细节,这有助于用户了解评估过程的具体情况和诊断潜在的问题。 -
-a
:这是--align
的简写形式,表示启用Umeyama算法进行位姿对齐。Umeyama算法是一种著名的点云配准方法,它可以在不考虑尺度变化的情况下,通过最小化两组点云之间的误差来估计它们之间的旋转和平移关系。在评估轨迹时,这个选项可以用来对齐参考轨迹和估计轨迹,以便更准确地计算它们之间的误差。
因此,evo_ape -va
命令的作用是启用详细输出模式,并在计算APE之前对参考轨迹和估计轨迹进行对齐。这通常用于调试和优化视觉里程计或SLAM系统,因为它提供了足够的信息来分析系统的准确性和鲁棒性,并帮助开发者理解系统在哪些方面可能需要改进。
1.2 tum
数据集,evo_traj
指令
(1) 终端输入:
evo_traj tum -h
(2) 终端打印:
usage: evo_traj tum [-h] [-f] [-a] [-s] [--n_to_align N_TO_ALIGN][--align_origin] [--sync][--transform_left TRANSFORM_LEFT][--transform_right TRANSFORM_RIGHT][--propagate_transform] [--invert_transform] [--ref REF][--t_offset T_OFFSET] [--t_max_diff T_MAX_DIFF] [--merge][-p] [--plot_relative_time][--plot_mode {xy,xz,yx,yz,zx,zy,xyz}][--ros_map_yaml ROS_MAP_YAML] [--save_plot SAVE_PLOT][--save_table SAVE_TABLE][--serialize_plot SERIALIZE_PLOT] [--save_as_tum][--save_as_kitti] [--save_as_bag] [--logfile LOGFILE][--no_warnings] [-v] [--show_full_names] [--silent][--debug] [-c CONFIG]traj_files [traj_files ...]trajectory analysis and manipulation tool for TUM trajectory files - (c) evo
authorspositional arguments:traj_files one or multiple trajectory filesoptional arguments:-h, --help show this help message and exit-f, --full_check run all checks and print all statsalgorithm options:-a, --align alignment with Umeyama's method (no scale) - requires--ref-s, --correct_scale scale correction with Umeyama's method - requires--ref--n_to_align N_TO_ALIGNthe number of poses to use for Umeyama alignment,counted from the start (default: all)--align_origin align the trajectory origin to the origin of thereference trajectory--sync associate trajectories via matching timestamps -requires --ref--transform_left TRANSFORM_LEFTpath to a .json file with a transformation to apply tothe trajectories (left multiplicative)--transform_right TRANSFORM_RIGHTpath to a .json file with a transformation to apply tothe trajectories (right_multiplicative)--propagate_transformwith --transform_right: transform each pose andpropagate resulting drift to the next.--invert_transform invert the transformation of the .json file--ref REF trajectory that will be marked/used as the reference--t_offset T_OFFSET add a constant timestamp offset (not adding to --reftrajectory)--t_max_diff T_MAX_DIFFmaximum timestamp difference for data association--merge merge the trajectories in a single trajectoryoutput options:-p, --plot show plot window--plot_relative_time show timestamps relative to the start of the reference--plot_mode {xy,xz,yx,yz,zx,zy,xyz}the axes for plot projection--ros_map_yaml ROS_MAP_YAMLyaml file of an ROS 2D map image (.pgm/.png) that willbe drawn into the plot--save_plot SAVE_PLOTpath to save plot--save_table SAVE_TABLEpath to save table with statistics--serialize_plot SERIALIZE_PLOTpath to serialize plot (experimental)--save_as_tum save trajectories in TUM format (as *.tum)--save_as_kitti save poses in KITTI format (as *.kitti)--save_as_bag save trajectories in ROS bag as <date>.bag--logfile LOGFILE Local logfile path.usability options:--no_warnings no warnings requiring user confirmation-v, --verbose verbose output--show_full_names don't shorten input file paths when displayingtrajectory names--silent don't print any output--debug verbose output with additional debug info-c CONFIG, --config CONFIG.json file with parameters (priority over command lineargs)
(3) 终端打印的解释
evo_traj
是一个用于分析和操作TUM轨迹文件的工具。它提供了多种功能,包括轨迹对齐、尺度校正、时间戳同步、转换应用、合并轨迹等。以下是命令行参数的详细解释:
位置参数:
traj_files
:一个或多个轨迹文件。
可选参数:
-h, --help
:显示帮助信息并退出。-f, --full_check
:运行所有检查并打印所有统计信息。
算法选项:
-a, --align
:使用Umeyama方法进行对齐(不包括尺度)-需要指定--ref
。-s, --correct_scale
:使用Umeyama方法进行尺度校正-需要指定--ref
。--n_to_align N_TO_ALIGN
:用于Umeyama对齐的位姿数量,从开始计数(默认:全部)。--align_origin
:将轨迹原点与参考轨迹的原点对齐。--sync
:通过匹配时间戳来关联轨迹-需要指定--ref
。--transform_left TRANSFORM_LEFT
:左乘法变换的.json文件路径,用于应用于轨迹的变换。--transform_right TRANSFORM_RIGHT
:右乘法变换的.json文件路径,用于应用于轨迹的变换。--propagate_transform
:与--transform_right
一起使用:变换每个位姿,并将结果漂移到下一个位姿。--invert_transform
:反转.json文件中的变换。--ref REF
:将被标记/用作参考的轨迹。--t_offset T_OFFSET
:添加一个恒定的时间戳偏移(不添加到--ref
轨迹)。--t_max_diff T_MAX_DIFF
:数据关联的最大时间戳差异。--merge
:将轨迹合并为单个轨迹。
输出选项:
-p, --plot
:显示绘图窗口。--plot_relative_time
:显示相对于参考开始的时间戳。--plot_mode {xy,xz,yx,yz,zx,zy,xyz}
:绘图投影的轴。--ros_map_yaml ROS_MAP_YAML
:ROS 2D地图图像(.pgm/.png)的yaml文件路径,将被绘制在绘图中。--save_plot SAVE_PLOT
:保存绘图的路径。--save_table SAVE_TABLE
:保存统计表格的路径。--serialize_plot SERIALIZE_PLOT
:序列化绘图的路径(实验性)。--save_as_tum
:以TUM格式(*.tum)保存轨迹。--save_as_kitti
:以KITTI格式(*.kitti)保存位姿。--save_as_bag
:以ROS bag格式(.bag)保存轨迹。--logfile LOGFILE
:本地日志文件路径。
可用性选项:
--no_warnings
:不显示需要用户确认的警告。-v, --verbose
:详细输出。--show_full_names
:在显示轨迹名称时不缩短输入文件路径。--silent
:不打印任何输出。--debug
:带有额外调试信息的详细输出。-c CONFIG, --config CONFIG
:带有参数的.json文件(优先级高于命令行参数)。
这个工具主要用于研究和开发中,以分析和比较不同视觉里程计或SLAM系统的轨迹。通过计算和可视化轨迹之间的差异,研究人员和开发者可以了解他们系统的准确性和鲁棒性,并据此进行改进。