25#include "msceqf/system/system_elements.hpp"
26#include "msceqf/options/msceqf_options.hpp"
40 using SystemStateMap = std::unordered_map<SystemStateKey, SystemStateElementSharedPtr>;
75 template <
typename... Args>
80 insertSystemStateElement(std::make_pair(
81 SystemStateElementName::S,
82 createSystemStateElement<CameraExtrinsicState>(std::make_tuple(
opts.initial_camera_extrinsics_))));
84 if (
opts.enable_camera_intrinsics_calibration_)
86 insertSystemStateElement(std::make_pair(
87 SystemStateElementName::K,
88 createSystemStateElement<CameraIntrinsicState>(std::make_tuple(
opts.initial_camera_intrinsics_))));
91 (insertSystemStateElement(std::forward<
decltype(pairs_of_key_ptr)>(pairs_of_key_ptr)), ...);
106 [[nodiscard]]
const SE23&
T()
const;
113 [[nodiscard]]
const SE3
P()
const;
120 [[nodiscard]]
const SE3
V()
const;
127 [[nodiscard]]
const Vector6&
b()
const;
136 [[nodiscard]]
const SE3&
S()
const;
145 [[nodiscard]]
const In&
K()
const;
154 [[nodiscard]]
const Vector4
k()
const;
163 [[nodiscard]]
const Vector3&
f(
const uint& feat_id)
const;
170 [[nodiscard]]
const Vector3
ge3()
const;
200 void insertSystemStateElement(std::pair<SystemStateKey, SystemStateElementUniquePtr>&& key_ptr);
208 void insertSystemStateElement(std::vector<std::pair<SystemStateKey, SystemStateElementUniquePtr>>& keys_ptrs);
std::variant< SystemStateElementName, uint > SystemStateKey
Key to access the system state map.
Definition system.hpp:39
const SE23 & T() const
return a constant reference to the extended pose element (R,v,p) of the system state as a SE23-torsor
friend class Symmetry
Symmetry can access private members of SystemState.
Definition system.hpp:210
std::unordered_map< SystemStateKey, VectorX > SystemStateAlgebraMap
System state algebra map.
Definition system.hpp:41
const StateOptions & opts() const
Get the state options.
Definition system.hpp:177
std::unordered_map< SystemStateKey, SystemStateElementSharedPtr > SystemStateMap
System state map.
Definition system.hpp:40
static std::string toString(const SystemStateKey &key)
Get a string describing the given SystemStateKey.
SystemState(const StateOptions &opts, const SE23 &T0=SE23(), const Vector6 &b0=Vector6::Zero())
Initialize a system state with given extended pose and bias (Identity and zero by default)....
SystemState(const SystemState &other)
Rule of Five.
const SE3 V() const
return a copy of the pose element (R,v) of the system state as a SE3-torsor
const Vector6 & b() const
return a constant reference to the bias element of the system state as a vector
const Vector3 & f(const uint &feat_id) const
return a constant reference to a persistent feature element of the system state as a vector,...
const In & K() const
return a constant reference to the camera intrinsics element of the system state as a In-torsor If th...
SystemState()=delete
Deleted default constructor.
const Vector4 k() const
return a copy of the camera intrinsics element of the system state as a 4-vector If the camera intrin...
SystemState(const StateOptions &opts, Args &&... pairs_of_key_ptr)
Construct system state given a multiple pairs of key-pointer of states element. This methods prealloc...
Definition system.hpp:76
const Vector3 ge3() const
return a copy of g*e3 as a vector
const SE3 & S() const
return a constant reference to the camera extrinsics element of the system state as a SE3-torsor....
const SE3 P() const
return a copy of the pose element (R,p) of the system state as a SE3-torsor
Definition msceqf_options.hpp:106