描述:
- pose优化相比BA优势在于:
- 更快,也就是能处理更大规模的数据
- 可以做按层级来优化,也就是可以处理超大规模的数据,并且可以根据更新量的特点,只做某个层级的优化。
- 可以修正更大的便宜修正
- 全局优化的步骤为:
- 通过点云匹配,把各个submap通过sim3整体变换到近似的位置。为pose优化得到初值
- 通过frame到点云的匹配,得到frame之间的sim3变换。做pose graph的优化。为BA得到初值
- 做BA
算法:
- 使用vslam生成submap的时候。把共視关系全部存下来。每个frame只存和他最强的那个共視关系。
- 目前只合并两个submap,把一个submap的某一帧自己的点云和另外一个submap的所有点云做匹配,然后计算两个点云的sim3变换。如果成功匹配上就能得到submap之间的一个共視关系。
- 直接匹配两个submap的所有点云,得到一个整体的sim3。通过这个sim3把一个点云和另外一个点云做整体的对齐。
- 做pose优化。
分析:
- 一开始submap内的共視关系只用了相邻frame的关系。发现基本会优化错。所以submap内部共視需要使用多帧的。
- 一开始submap间的共視关系也使用了很多,结果效果很差。对于不用sim3做整体变换的情况,都不能得到正确结果。但只使用最强的那个共視关系就都没问题。
结果:
- 左边的是pose优化前,右边是优化后。可以看出即是初值相差这么远,也能得到全局最优。
- 一个停车场的数据被切成了两段,通过描述符的匹配后&