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函數的內容如下圖: