RTAB-Map 0.23.10
Real-Time Appearance-Based Mapping
Loading...
Searching...
No Matches
rtabmap::Odometry Class Referenceabstract

Abstract base class for visual, lidar and visual-inertial odometry backends. More...

#include <Odometry.h>

Inheritance diagram for rtabmap::Odometry:

Public Types

enum  Type {
  kTypeUndef = -1 , kTypeF2M = 0 , kTypeF2F = 1 , kTypeFovis = 2 ,
  kTypeViso2 = 3 , kTypeDVO = 4 , kTypeORBSLAM = 5 , kTypeOkvis = 6 ,
  kTypeLOAM = 7 , kTypeMSCKF = 8 , kTypeVINSFusion = 9 , kTypeOpenVINS = 10 ,
  kTypeFLOAM = 11 , kTypeOpen3D = 12 , kTypeCuVSLAM = 13 , kTypeLIOSAM = 14
}
 Odometry backend selected by Parameters::kOdomStrategy(). More...
 

Public Member Functions

Transform process (SensorData &data, OdometryInfo *info=0)
 Processes a sensor frame and updates the integrated pose.
 
Transform process (SensorData &data, const Transform &guess, OdometryInfo *info=0)
 Processes a sensor frame with an external motion guess.
 
virtual void reset (const Transform &initialPose=Transform::getIdentity())
 Resets internal state and sets the initial pose.
 
virtual Odometry::Type getType ()=0
 
virtual bool canProcessRawImages () const
 
virtual bool canProcessAsyncIMU () const
 
const TransformgetPose () const
 
bool isInfoDataFilled () const
 
RTABMAP_DEPRECATED const TransformpreviousVelocityTransform () const
 
const TransformgetVelocityGuess () const
 
double previousStamp () const
 
unsigned int framesProcessed () const
 
bool imagesAlreadyRectified () const
 

Static Public Member Functions

static Odometrycreate (const ParametersMap &parameters=ParametersMap())
 Creates an odometry instance from Parameters::kOdomStrategy() in parameters.
 
static Odometrycreate (Type &type, const ParametersMap &parameters=ParametersMap())
 Creates an odometry instance of a given type.
 

Protected Member Functions

const std::map< double, Transform > & imus () const
 
 Odometry (const rtabmap::ParametersMap &parameters)
 Constructs the base odometry state from RTAB-Map parameters.
 

Detailed Description

Abstract base class for visual, lidar and visual-inertial odometry backends.

Odometry estimates the incremental motion between consecutive SensorData frames. Concrete implementations override computeTransform(); the public process() pipeline handles IMU caching, optional motion guesses, filtering (Kalman or particle), image decimation, deskewing and pose integration.

Use create() to instantiate a backend from Parameters::kOdomStrategy().

See also
OdometryThread
OdometryInfo

Definition at line 56 of file Odometry.h.

Member Enumeration Documentation

◆ Type

Odometry backend selected by Parameters::kOdomStrategy().

Enumerator
kTypeUndef 

Undefined / invalid type.

kTypeF2M 

Frame-to-map (default).

kTypeF2F 

Frame-to-frame.

kTypeFovis 

FOVIS stereo visual odometry.

kTypeViso2 

libviso2.

kTypeDVO 

Dense visual odometry.

kTypeORBSLAM 

ORB-SLAM 2/3.

kTypeOkvis 

OKVIS.

kTypeLOAM 

LOAM lidar odometry.

kTypeMSCKF 

MSCKF visual-inertial.

kTypeVINSFusion 

VINS-Fusion.

kTypeOpenVINS 

OpenVINS.

kTypeFLOAM 

FLOAM lidar odometry.

kTypeOpen3D 

Open3D RGB-D odometry.

kTypeCuVSLAM 

cuVSLAM.

kTypeLIOSAM 

LIO-SAM.

Definition at line 60 of file Odometry.h.

Member Function Documentation

◆ create() [1/2]

static Odometry * rtabmap::Odometry::create ( const ParametersMap parameters = ParametersMap())
static

Creates an odometry instance from Parameters::kOdomStrategy() in parameters.

Parameters
parametersRTAB-Map parameters (odometry strategy and related options).
Returns
New odometry object (caller owns the pointer). Falls back to kTypeF2M if the type is unknown.

◆ create() [2/2]

static Odometry * rtabmap::Odometry::create ( Type type,
const ParametersMap parameters = ParametersMap() 
)
static

Creates an odometry instance of a given type.

Parameters
typeIn/out odometry type; updated to kTypeF2M if type is unknown.
parametersRTAB-Map parameters passed to the concrete backend.

◆ process() [1/2]

Transform rtabmap::Odometry::process ( SensorData data,
OdometryInfo info = 0 
)

Processes a sensor frame and updates the integrated pose.

Parameters
dataInput sensor data (must have id() >= 0). May be modified in place (decompression, deskewing).
infoOptional output statistics and debug data.
Returns
Updated integrated pose (getPose()) after the frame is processed, or a null transform if odometry is lost. The incremental transform is available in OdometryInfo::transform when info is provided.

◆ process() [2/2]

Transform rtabmap::Odometry::process ( SensorData data,
const Transform guess,
OdometryInfo info = 0 
)

Processes a sensor frame with an external motion guess.

Parameters
dataInput sensor data.
guessOptional prior on the incremental transform (used by the backend when supported).
infoOptional output statistics and debug data.

◆ reset()

◆ getType()

◆ canProcessRawImages()

virtual bool rtabmap::Odometry::canProcessRawImages ( ) const
inlinevirtual
Returns
True if the backend can process unrectified camera images.

Reimplemented in rtabmap::OdometryMSCKF, rtabmap::OdometryOkvis, rtabmap::OdometryOpenVINS, and rtabmap::OdometryVINSFusion.

Definition at line 117 of file Odometry.h.

◆ canProcessAsyncIMU()

virtual bool rtabmap::Odometry::canProcessAsyncIMU ( ) const
inlinevirtual
Returns
True if the backend processes IMU asynchronously outside process().

Reimplemented in rtabmap::OdometryLIOSAM, rtabmap::OdometryMSCKF, rtabmap::OdometryOkvis, rtabmap::OdometryOpenVINS, rtabmap::OdometryORBSLAM3, and rtabmap::OdometryVINSFusion.

Definition at line 119 of file Odometry.h.

◆ getPose()

const Transform & rtabmap::Odometry::getPose ( ) const
inline
Returns
Current integrated odometry pose.

Definition at line 122 of file Odometry.h.

◆ isInfoDataFilled()

bool rtabmap::Odometry::isInfoDataFilled ( ) const
inline
Returns
True if OdometryInfo debug/statistics fields are filled in process().

Definition at line 124 of file Odometry.h.

◆ previousVelocityTransform()

RTABMAP_DEPRECATED const Transform & rtabmap::Odometry::previousVelocityTransform ( ) const

◆ getVelocityGuess()

const Transform & rtabmap::Odometry::getVelocityGuess ( ) const
inline
Returns
Last estimated velocity used for motion guessing (may be null).

Definition at line 128 of file Odometry.h.

◆ previousStamp()

double rtabmap::Odometry::previousStamp ( ) const
inline
Returns
Timestamp of the previously processed frame.

Definition at line 130 of file Odometry.h.

◆ framesProcessed()

unsigned int rtabmap::Odometry::framesProcessed ( ) const
inline
Returns
Number of frames processed since the last reset().

Definition at line 132 of file Odometry.h.

◆ imagesAlreadyRectified()

bool rtabmap::Odometry::imagesAlreadyRectified ( ) const
inline
Returns
True if input images are already rectified (see Parameters::kRtabmapImagesAlreadyRectified()).

Definition at line 134 of file Odometry.h.

◆ imus()

const std::map< double, Transform > & rtabmap::Odometry::imus ( ) const
inlineprotected
Returns
IMU orientations cached from recent frames (stamp → transform).

Definition at line 138 of file Odometry.h.


The documentation for this class was generated from the following file: