17#include "msceqf/system/system_elements.hpp"
18#include "msceqf/options/msceqf_options.hpp"
32 using SystemStateMap = std::unordered_map<SystemStateKey, SystemStateElementSharedPtr>;
67 template <
typename... Args>
72 insertSystemStateElement(std::make_pair(
73 SystemStateElementName::S,
78 insertSystemStateElement(std::make_pair(
79 SystemStateElementName::K,
83 (insertSystemStateElement(std::forward<
decltype(pairs_of_key_ptr)>(pairs_of_key_ptr)), ...);
98 [[nodiscard]]
const SE23&
T()
const;
105 [[nodiscard]]
const SE3
P()
const;
112 [[nodiscard]]
const SE3
V()
const;
119 [[nodiscard]]
const Vector6&
b()
const;
128 [[nodiscard]]
const SE3&
S()
const;
137 [[nodiscard]]
const In&
K()
const;
146 [[nodiscard]]
const Vector4
k()
const;
155 [[nodiscard]]
const Vector3&
f(
const uint& feat_id)
const;
162 [[nodiscard]]
const Vector3
ge3()
const;
192 void insertSystemStateElement(std::pair<SystemStateKey, SystemStateElementUniquePtr>&& key_ptr);
200 void insertSystemStateElement(std::vector<std::pair<SystemStateKey, SystemStateElementUniquePtr>>& keys_ptrs);
Definition symmetry.hpp:23
The SystemState class represent the state of the system posed on the Homogenous space.
Definition system.hpp:29
std::variant< SystemStateElementName, uint > SystemStateKey
Key to access the system state map.
Definition system.hpp:31
const SE23 & T() const
return a constant reference to the extended pose element (R,v,p) of the system state as a SE23-torsor
std::unordered_map< SystemStateKey, VectorX > SystemStateAlgebraMap
System state algebra map.
Definition system.hpp:33
const StateOptions & opts() const
Get the state options.
Definition system.hpp:169
std::unordered_map< SystemStateKey, SystemStateElementSharedPtr > SystemStateMap
System state map.
Definition system.hpp:32
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:68
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:98
bool enable_camera_intrinsics_calibration_
Boolean to enable intinsic camera calibration.
Definition msceqf_options.hpp:105
In initial_camera_intrinsics_
Initial camera intrinsics.
Definition msceqf_options.hpp:104
SE3 initial_camera_extrinsics_
Initial camera extrinsics.
Definition msceqf_options.hpp:103