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的功能函数。

猜你喜欢

转载自blog.csdn.net/ziliwangmoe/article/details/83783692