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>
138 const std::map<double, Transform> &
imus()
const {
return imus_;}
153 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);
154 void predictKalmanFilter(
float dt,
float * vx=0,
float * vy=0,
float * vz=0,
float * vroll=0,
float * vpitch=0,
float * vyaw=0);
155 void updateKalmanFilter(
float & vx,
float & vy,
float & vz,
float & vroll,
float & vpitch,
float & vyaw);
161 bool guessFromMotion_;
162 float guessSmoothingDelay_;
163 int _filteringStrategy;
165 float _particleNoiseT;
166 float _particleLambdaT;
167 float _particleNoiseR;
168 float _particleLambdaR;
170 float _kalmanProcessNoise;
171 float _kalmanMeasurementNoise;
172 unsigned int _imageDecimation;
173 bool _alignWithGround;
174 bool _publishRAMUsage;
175 bool _imagesAlreadyRectified;
178 int _resetCurrentCount;
179 double previousStamp_;
180 std::list<std::pair<std::vector<float>,
double> > previousVelocities_;
184 float distanceTravelled_;
185 unsigned int framesProcessed_;
187 std::vector<ParticleFilter *> particleFilters_;
188 cv::KalmanFilter kalmanFilter_;
189 std::vector<StereoCameraModel> stereoModels_;
190 std::vector<CameraModel> models_;
191 std::map<double, Transform> imus_;
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).