Class NavStateFilter

Inheritance Relationships

Base Type

Class Documentation

class NavStateFilter : public mola::ExecutableBase

Virtual API for kinematic state filtering algorithms, fusing information from multiple odometry or twist sources, IMU, GNSS, etc.

Refer to the “state estimation section” in the docs

Public Functions

NavStateFilter()
~NavStateFilter()
virtual void reset() = 0

Resets the estimator state to an initial state

virtual void fuse_pose(const mrpt::Clock::time_point &timestamp, const mrpt::poses::CPose3DPDFGaussian &pose, const std::string &frame_id) = 0

Integrates new SE(3) pose estimation of the vehicle wrt a given frame_id.

virtual void fuse_odometry(const mrpt::obs::CObservationOdometry &odom, const std::string &odomName = "odom_wheels") = 0

Integrates new wheels-based odometry observations into the estimator. This is a convenience method that internally ends up calling fuse_pose(), but computing the uncertainty of odometry increments according to a given motion model.

virtual void fuse_imu(const mrpt::obs::CObservationIMU &imu) = 0

Integrates new IMU observations into the estimator

virtual void fuse_gnss(const mrpt::obs::CObservationGPS &gps) = 0

Integrates new GNSS observations into the estimator

virtual void fuse_twist(const mrpt::Clock::time_point &timestamp, const mrpt::math::TTwist3D &twist, const mrpt::math::CMatrixDouble66 &twistCov) = 0

Integrates new twist estimation (in the odom frame)

virtual std::optional<NavState> estimated_navstate(const mrpt::Clock::time_point &timestamp, const std::string &frame_id) = 0

Computes the estimated vehicle state at a given timestep using the observations in the time window. A std::nullopt is returned if there is no valid observations yet, or if requested a timestamp out of the model validity time window (e.g. too far in the future to be trustful).

inline virtual std::optional<mrpt::poses::CPose3DInterpolator> estimated_trajectory([[maybe_unused]] const mrpt::Clock::time_point &start_time, [[maybe_unused]] const mrpt::Clock::time_point &end_time, [[maybe_unused]] const std::string &frame_id)

(Optional virtual method) Returns the estimated trajectory (sequence of timestamped poses) between two time points, in the given frame_id.

Returns:

std::nullopt if not implemented or not able to compute for the requested time interval.