1. 程式人生 > >maplab系列6:lightweight_filtering之state

maplab系列6:lightweight_filtering之state

class ElementBase

  1. ElementBase是所有可更新的變數的基類。
  2. 需要傳入一個模板類DERIVED, ElementBase繼承於這個模板類。比如傳入一個Eigen的Matrix,那麼ElementBase就是一個Matrix。
  3. D_是變數的長度,如果變數是個vector的話。
  4. mtDifVec定義更新這個變數的誤差值。
  5. 靜態函式Identity()用於生成一個單位變數。
  6. boxPlus, boxMinus,boxMinusJac,setIdentity,print,setRandom,fix是需要自己實現的功能函式
  7. get函式用於返回轉換成基類(比如egien型別嗯)的索引。
  8. registerCovarianceToPropertyHandler幫足版一個Eigen::Matrix存在配置系統裡(PropertyHandler)。這個Eigen::Matrix作為這個變數的協方差矩陣。大小為D_×D_
  9. registerElementToPropertyHandler把變數值記錄到PropertyHandler中。
  10. name_可以給這個類一個名字,用於基類中知道其真正的派生類。

class AuxiliaryBase

  1. 只實現了get函式的類,其他函式的實現都是空

class ScalarElement

  1. 單個值(double)的變數
  2. PropertyHandler用類名字加變數名來註冊

class VectorElement

class QuaternionElement

class NormalVectorElement

  1. 尤拉角表示的旋轉
  2. 自帶儲存,而不是繼承與三方的結構,比如Eigen

class ArrayElement

  1. 很多個相同種類Elements組合在一起的Elements
  2. 比如有取出第幾個變數

TH_getDimension

  1. 元函式,用於在預編譯階段獲得元資料的大小

class State

  1. 很多個不同種類Elements組合在一起的Elements
  2. 各種功能函式就是依次呼叫這些Element的功能函式。