struct mola::state_estimation_smoother::StateEstimationSmoother::State
Overview
struct State { // fields mrpt::pimpl<GtsamImpl> gtsam; frame_index_t next_frame_index = 0; mrpt::containers::bimap<mrpt::Clock::time_point, frame_index_t> stamp2frame_index; mrpt::containers::bimap<std::string, odometry_frameid_t> known_odom_frames; std::map<frame_index_t, FrameState> last_estimated_states; std::map<odometry_frameid_t, mrpt::poses::CPose3DPDFGaussian> last_estimated_frames; std::optional<mrpt::Clock::time_point> last_observation_stamp; mrpt::Clock::time_point last_observation_wallclock_stamp; std::optional<mrpt::poses::CPose2D> last_wheels_odometry; std::optional<std::string> last_wheels_odometry_name; std::optional<mola::Georeferencing> geo_reference; std::optional<mrpt::topography::TGeodeticCoords> tentative_geo_coord_reference; // methods std::optional<mrpt::Clock::time_point> get_current_extrapolated_stamp() const; };
Fields
frame_index_t next_frame_index = 0
The next numeric ID to assign to a new frame, for usage in GTSAM symbols P(i), v(i)…
mrpt::containers::bimap<mrpt::Clock::time_point, frame_index_t> stamp2frame_index
A bimap of timestamps <=> frame indices. Updated by.
mrpt::containers::bimap<std::string, odometry_frameid_t> known_odom_frames
A bimap of known odometry “frame_id” <=> “numeric IDs”:
std::map<frame_index_t, FrameState> last_estimated_states
The latest values from the estimator; updated in process_pending_gtsam_updates()
std::map<odometry_frameid_t, mrpt::poses::CPose3DPDFGaussian> last_estimated_frames
The latest values from the estimator; updated in process_pending_gtsam_updates()
std::optional<mola::Georeferencing> geo_reference
Refer to Parameters for possible sources of this. Anyways: this will always hold either the estimated or the fixed (externally set) georeferencing parameters. When this is still empty, it means we are still waiting for someone external to send us the georeferencing data, or our internal estimator didn’t obtained a quality estimation yet.
std::optional<mrpt::topography::TGeodeticCoords> tentative_geo_coord_reference
Will be populated with the first GNSS coords when in active estimation mode.
Methods
std::optional<mrpt::Clock::time_point> get_current_extrapolated_stamp() const
For real-time mode operation (not offline): returns the current extrapolated stamp, by adding the difference between the last observation wallclock time and now to the last observation timestamp.