maplab系列11:PropertyHandler
阿新 • • 發佈:2018-12-04
PropertyHandler是rovio中使用的一個配置表引數和演算法引數相互轉換的功能。核心檔案是:PropertyHandler.hpp
大概使用方法是把程式中的一些變數在handler中註冊。然後handler可以把這些直存為配置檔案。主要註冊方法有:
void registerMatrix(std::string str, Eigen::Matrix<TYPE,N,M>& var)等方法。並附帶一些自動命名的邏輯。
比如這個registerMatrix會自動把矩陣裡的entry按照下表來命名。
引數序列化是基於boost的ptree,readFromPropertyTree把讀入的ptree付給演算法中對應的變數。
readFromInfo讀入一個給予ptree的配置表
PropertyHandler還可以有層級關係,subHandlers_儲存子PropertyHandler的指標
並且PropertyHandler是int, bool, double, string的範型,所以有對應的四個如boolRegister_的模板實現。
FilterConfiguration用來載入和修改部分配置檔案
濾波器的基類FilterBase繼承於PropertyHandler,RovioFilter生成了三個子PropertyHandler:
- ImgUpdate
- PoseUpdate
- VelocityUpdate
其他如Prediction的類也都繼承了PropertyHandler,作為RovioFilter的子PropertyHandler
State下面有兩個函式可以把濾波器狀態和協方差序列化為配置檔案
- registerElementsToPropertyHandler
- registerCovarianceToPropertyHandler_