参考链接:
https://github.com/ZikangYuan/liw_oam
下载kaist数据以及真值:
此处省略代码编译和环境配置
一、查看各类传感器频率
1.1查看数据包信息

在总时长307s中,/encoder_count 话题发布 30798条msgs 频率100Hz;
/gps/fix 话题发布 1540条 msgs 频率5Hz;
/imu/data_raw 话题发布 30800 msgs 频率100Hz;
/velocity 话题发布 30797 msgs 频率100Hz;
/velodyne_points 话题发布 3051 msgs 频率10Hz;
1.2通过rostopic hz /velodyne_points测特定话题的实时频率

二、查看LIWO总体流程的话题节点
2.1启动LIWO程序

2.2启动rqt查看节点话题

可知该LIWO订阅:
10Hz的/velodyne_points话题;
100Hz的/velocity话题;
100Hz的 /imu/data_raw话题
三、新建文件夹
3.1output用于存放实时估计的姿态

3.2新建文件夹cloud_frame用于存放单帧激光雷达数据经过运动补偿、去畸变、体素下采样后的完整点云


打开7号pcd,pcl_viewer 7.pcd

3.3新建文件夹cut_sweep用于存放原始激光雷达点云扫描帧被切分为多段子扫描后的点云



3.4启用debug_output
<param name="debug_output" type="bool" value="0"/>修改为:
<param name="debug_output" type="bool" value="1"/>
四、启动SLAM
4.1播放数据包
rosbag play kaist_1.bag --clock -d 1.0 -r 1.0
--clock :时钟发布,发布/clock话题,使用bag记录的时间
-d 1.0 :启动延时,1s
-r 1.0 :播放速率1.0
4.2建图过程

得到实时位姿估计轨迹

4.3全局点云地图(待查验)
五、精度评估
5.1 TUM数据集格式
格式为:时间、位置、姿态四元素(time, t_x, t_y, t_z, q_x, q_y, q_z, q_w)
估计值

真值

5.2 EVO评估工具
参考链接配置EVO工具
打开终端输入evo,然后按Tab键就可以出现如下命令


5.3 EVO依赖版本
EVO 需要 Python 3.6 或更高版本,若是Python 2.7则需要更改
sudo update-alternatives --config python

5.4 ape评估-评估两条轨迹的绝对位姿误差
| 元素 | 说明 | 备注 |
|---|---|---|
| 基本命令结构 | evo_ape tum <参考轨迹> <估计轨迹> [可选项] |
基础框架,必须遵循的格式。 |
| 必需参数 | tum:指定轨迹文件为 TUM 格式。 |
格式必须匹配,否则会报错。 |
kaist_1.txt:参考轨迹文件(真值/ground truth)。 |
- | |
pose.txt:待评估的估计轨迹文件。 |
- | |
| 常用可选参数 | -a(--align):进行 SE(3) 刚体变换对齐(旋转和平移)。 |
强烈推荐,消除初始位姿偏差。 |
-s(--correct_scale):进行尺度校正。 |
如果估计轨迹来自单目SLAM(尺度不确定),必须使用。 | |
-p(--plot):生成并显示轨迹和误差的可视化图形。 |
直观比较。 | |
-v(--verbose):启用详细输出模式。 |
显示更全面的处理信息。 | |
--plot_mode xyz:设置绘图模式为三维显示。 |
默认为 xyz,也可选 xy, xz等二维视图。 |
|
| 进阶可选参数 | -r full:同时评估旋转和平移误差(无单位)。 |
默认评估平移误差 (-r trans_part,单位:米)。 |
--save_plot <路径>:将生成的图表保存为图片文件。 |
如 --save_plot ./my_plot.png。 |
|
--save_results <路径>:将统计结果保存为 .zip文件。 |
便于后续用 evo_res命令比较不同结果。 |
5.4.1直接比较
evo_ape tum kaist_1.txt pose.txt


5.4.2添加刚度变换-a(--align):进行 SE(3) 刚体变换对齐(旋转和平移)
追求的是整体最佳匹配,通过复杂的数学计算让两条轨迹在空间中的形状尽可能重合
evo_ape tum kaist_1.txt pose.txt -a

5.4.3添加尺度校正-s(--correct_scale):进行尺度校正
evo_ape tum kaist_1.txt pose.txt -a -s

5.4.4添加图形显示-p(--plot):生成并显示轨迹和误差的可视化图形
evo_ape tum kaist_1.txt pose.txt -a -s -p


5.5 rpe相对位姿误差-比较两个轨迹之间的相对轨迹误差
5.6 evo_traj绘制出运行轨迹
5.6.1直接绘制
evo_traj tum kaist_1.txt

不添加参数,则只输出轨迹相关信息
5.6.2添加绘图 -p
evo_traj tum kaist_1.txt -p



则能够输出轨迹6个姿态随时间变化关系
5.6.3绘制两条轨迹
evo_traj tum kaist_1.txt pose.txt -p

5.6.4 原点对齐
evo_traj tum kaist_1.txt pose.txt -p --ref kaist_1.txt --align_origin
--ref kaist_1.txt 参考kaist_1.txt做对齐
--align_origin 只做一个非常简单的操作:将轨迹的起点移动到坐标原点


5.6.5绘制投影到平面
evo_traj tum kaist_1.txt pose.txt -p --ref kaist_1.txt --align_origin --plot_mode=xy

