maplab系列6:lightweight_filtering之state
阿新 • • 發佈:2018-12-04
class ElementBase
- ElementBase是所有可更新的變數的基類。
- 需要傳入一個模板類DERIVED, ElementBase繼承於這個模板類。比如傳入一個Eigen的Matrix,那麼ElementBase就是一個Matrix。
- D_是變數的長度,如果變數是個vector的話。
- mtDifVec定義更新這個變數的誤差值。
- 靜態函式Identity()用於生成一個單位變數。
- boxPlus, boxMinus,boxMinusJac,setIdentity,print,setRandom,fix是需要自己實現的功能函式
- get函式用於返回轉換成基類(比如egien型別嗯)的索引。
- registerCovarianceToPropertyHandler幫足版一個Eigen::Matrix存在配置系統裡(PropertyHandler)。這個Eigen::Matrix作為這個變數的協方差矩陣。大小為D_×D_
- registerElementToPropertyHandler把變數值記錄到PropertyHandler中。
- name_可以給這個類一個名字,用於基類中知道其真正的派生類。
class AuxiliaryBase
- 只實現了get函式的類,其他函式的實現都是空
class ScalarElement
- 單個值(double)的變數
- PropertyHandler用類名字加變數名來註冊
class VectorElement
class QuaternionElement
class NormalVectorElement
- 尤拉角表示的旋轉
- 自帶儲存,而不是繼承與三方的結構,比如Eigen
class ArrayElement
- 很多個相同種類Elements組合在一起的Elements
- 比如有取出第幾個變數
TH_getDimension
- 元函式,用於在預編譯階段獲得元資料的大小
class State
- 很多個不同種類Elements組合在一起的Elements
- 各種功能函式就是依次呼叫這些Element的功能函式。