在本教程中,我们将在定位模式下运行ROVIOLI。 这可以极大地提高估计精度并减少估计轨迹的漂移。
要求
与VIO一样,您需要为传感器设置获取三个校准文件(camera,IMU maplab和IMU rovio)。 此外,您还需要:
- 用于定位的 VI(视觉-惯性)地图。 这个地图要应用优化和闭环检测得以在 ROVIOLI 中获得更好的结果。
- 要运行的数据集。 或者,可以使用实时源(可以理解为播放录制好的bag文件)。
准备一个用于定位的地图
有两种方法可以获得定位地图:
- 使用 maplab 控制台手动优化 VI(视觉-惯性)地图,使其在 VIO 模式下运行 ROVIOLI。
- 或者,您可以运行脚本
~/maplab_ws/src/maplab/applications/rovioli/scripts/tutorials/tutorial_euroc
,并将--optimize_map_to_localization_map
标志设置为true:
roscore
source ~/maplab_ws/devel/setup.bash
rosrun rovioli tutorial_euroc save_folder_loc_map MH_01_easy.bag --optimize_map_to_localization_map
Running ROVIOLI with localization
在本教程中,我们使用Euroc dataset website上的Machine Hall 02数据集。 至于定位地图,我们使用由Machine Hall 01数据集优化的VI地图,我们假设它们在save_folder_loc_map_localization
下保存。
使用脚本:~/maplab_ws/src/maplab/applications/rovioli/scripts/tutorials/tutorial_euroc_localization
。
运行脚本:
roscore
source ~/maplab_ws/devel/setup.bash
rosrun rovioli tutorial_euroc_localization save_folder_loc_map_localization save_map_with_localization MH_02_easy.bag
save_folder_loc_map_localization
下的地图用作定位的参考地图。
ROVIOLI 完成后,VI地图将存储在save_folder_with_localization
下。
Visualization during ROVIOLI with localization
除了标准的ROVIOLI话题之外,定位模式还向 RViz 添加了以下可视化话题:
- /loopclosure_database: Point cloud of all landmarks in the loop closure database.
- /loop_closures: Lines connecting the current active vertex with all landmarks that have been used for the localization.
- /loopclosure_inliers: Point cloud with all landmarks that have been used for the last successful localization.
- /debug_T_G_I_raw_localization: Red points indicating the vertex positions where a successful localization occurred.
这里我就不翻译了,发现还是英文有味道啊,很难做到完美的翻译。
运行截图如下: