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 float guessSmoothingDelay_;
164 int _filteringStrategy;
166 float _particleNoiseT;
167 float _particleLambdaT;
168 float _particleNoiseR;
169 float _particleLambdaR;
171 float _kalmanProcessNoise;
172 float _kalmanMeasurementNoise;
173 unsigned int _imageDecimation;
174 bool _alignWithGround;
175 bool _publishRAMUsage;
176 bool _imagesAlreadyRectified;
179 int _resetCurrentCount;
180 double previousStamp_;
181 std::list<std::pair<std::vector<float>,
double> > previousVelocities_;
185 float distanceTravelled_;
186 unsigned int framesProcessed_;
188 std::vector<ParticleFilter *> particleFilters_;
189 cv::KalmanFilter kalmanFilter_;
190 std::vector<StereoCameraModel> stereoModels_;
191 std::vector<CameraModel> models_;
192 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).