UML Class Diagram
图中红色框为头文件中所涉及到的函数、变量和结构体
核心函数
PoseEstimation::process()
其核心作用为执行位姿估计的处理流程,并返回是否在此循环中进行了任何处理。
在这个函数中判断并完成地理坐标的初始化或这地理坐标的更新。
这里需要注意的是在该函数下,涉及到Frame类和GeometricReferencer类,两个类中都有一个同名的变量
m_transformation_w2g
但是,该变量在不同的命名空间,所以所存储数据的地址是不一样的。两者通过process函数中的applyGeoreferenceToBuffer函数联系起来,如下图:
PoseEstimation::applyGeoreferenceToBuffer()
继续分析这个函数
其中,GeometricReferencer类的m_transformation_w2g变量,通过m_T_w2g变量传给Framelei的m_transformation_w2g,涉及到的函数为initGeoreference,如下图
但initGeoreference并不是真正操作的函数,如下图:
在这里可以看到Frame类中的m_transformation_w2g首先初始化为单位阵,之后通过updateGeoreference函数进行复制,并在这个函数中将稀疏点云的视觉坐标系也变成地理坐标系,updateGeoreference函数的内容如下图: