New data structure for storing stateblocks
Currently, pointers to StateBlock objects are stored in vectors std::vector<StateBlockPtr> state_block_vec_
in classes FrameBase
, SensorBase
, CaptureBase
and LandmarkBase
. When accessing a state block to get or set the its current estimates, functions get/setP
, get/setO
and get/setV
as well as get/setSensorIntrinsic()
are used by refering to fixed indexes. For the moment we are using a limited number of state block types (position, orientation as a quaternion, velocity and intrinsics).
My concern is that if we want to use new types of state blocks while not using some of the previous one, this index base implementation would break (for example a system for which we do not estimate position but only velocity and orientation). A simple way to adress this issue would be tu use a std::map
instead of a std::vector
. This solution would not break the get/setX()
API, only the get/setStateBlock(...)
functions which are not used at many places.