31#include <rtabmap/core/rtabmap_core_export.h>
33#include <rtabmap/core/Transform.h>
34#include <rtabmap/core/SensorData.h>
35#include <rtabmap/core/Parameters.h>
36#include <rtabmap/core/ImuMotionPredictor.h>
139 const std::map<double, Transform> &
imus()
const {
return imus_;}
154 void initKalmanFilter(
const Transform & initialPose = Transform::getIdentity(),
float vx=0.0f,
float vy=0.0f,
float vz=0.0f,
float vroll=0.0f,
float vpitch=0.0f,
float vyaw=0.0f);
155 void predictKalmanFilter(
float dt,
float * vx=0,
float * vy=0,
float * vz=0,
float * vroll=0,
float * vpitch=0,
float * vyaw=0);
156 void updateKalmanFilter(
float & vx,
float & vy,
float & vz,
float & vroll,
float & vpitch,
float & vyaw);
162 bool guessFromMotion_;
163 bool guessImuAcceleration_;
164 float guessSmoothingDelay_;
165 int _filteringStrategy;
167 float _particleNoiseT;
168 float _particleLambdaT;
169 float _particleNoiseR;
170 float _particleLambdaR;
172 float _kalmanProcessNoise;
173 float _kalmanMeasurementNoise;
174 unsigned int _imageDecimation;
175 bool _alignWithGround;
176 bool _publishRAMUsage;
177 bool _imagesAlreadyRectified;
180 int _resetCurrentCount;
181 double previousStamp_;
182 std::list<std::pair<std::vector<float>,
double> > previousVelocities_;
186 float distanceTravelled_;
187 unsigned int framesProcessed_;
189 std::vector<ParticleFilter *> particleFilters_;
190 cv::KalmanFilter kalmanFilter_;
191 std::vector<StereoCameraModel> stereoModels_;
192 std::vector<CameraModel> models_;
193 std::map<double, Transform> imus_;
Predicts the pose of the base frame from the last odometry pose and the IMU.
What one Odometry iteration produced, beyond the pose.
Abstract base class for visual, lidar and visual-inertial odometry backends.
Transform process(SensorData &data, OdometryInfo *info=0)
Processes a sensor frame and updates the integrated pose.
virtual void reset(const Transform &initialPose=Transform::getIdentity())
Resets internal state and sets the initial pose.
static Odometry * create(Type &type, const ParametersMap ¶meters=ParametersMap())
Creates an odometry instance of a given type.
bool isInfoDataFilled() const
RTABMAP_DEPRECATED const Transform & previousVelocityTransform() const
double previousStamp() const
Transform process(SensorData &data, const Transform &guess, OdometryInfo *info=0)
Processes a sensor frame with an external motion guess.
Type
Odometry backend selected by Parameters::kOdomStrategy().
virtual bool canProcessRawImages() const
const std::map< double, Transform > & imus() const
unsigned int framesProcessed() const
virtual bool canProcessAsyncIMU() const
const Transform & getPose() const
virtual Odometry::Type getType()=0
const Transform & getVelocityGuess() const
static Odometry * create(const ParametersMap ¶meters=ParametersMap())
Creates an odometry instance from Parameters::kOdomStrategy() in parameters.
bool imagesAlreadyRectified() const
Odometry(const rtabmap::ParametersMap ¶meters)
Constructs the base odometry state from RTAB-Map parameters.
Container class for all sensor data captured at a specific time.
std::map< std::string, std::string > ParametersMap
Parameter keys mapped to their values, as used by every configurable class (see Parameters).