28#ifndef CORELIB_INCLUDE_RTABMAP_CORE_IMUFILTER_H_
29#define CORELIB_INCLUDE_RTABMAP_CORE_IMUFILTER_H_
31#include "rtabmap/core/rtabmap_core_export.h"
32#include <rtabmap/core/Parameters.h>
33#include <Eigen/Geometry>
66 kComplementaryFilter = 1
104 double gx,
double gy,
double gz,
105 double ax,
double ay,
double az,
118 virtual void getOrientation(
double & qx,
double & qy,
double & qz,
double & qw)
const = 0;
127 virtual void reset(
double qx = 0.0,
double qy = 0.0,
double qz = 0.0,
double qw = 1.0) = 0;
133 virtual void updateImpl(
134 double gx,
double gy,
double gz,
135 double ax,
double ay,
double az,
138 double previousStamp_;
Fuses gyroscope and accelerometer samples into an orientation quaternion.
Type
Orientation fusion algorithm.
static IMUFilter * create(const ParametersMap ¶meters=ParametersMap())
Creates a filter using type parsed from parameters.
virtual void parseParameters(const ParametersMap ¶meters)
Re-reads filter parameters from parameters.
virtual void reset(double qx=0.0, double qy=0.0, double qz=0.0, double qw=1.0)=0
Resets internal state to the given orientation.
static IMUFilter * create(IMUFilter::Type type, const ParametersMap ¶meters=ParametersMap())
Creates a filter of the given type.
void update(double gx, double gy, double gz, double ax, double ay, double az, double stamp)
Integrates one IMU sample and updates the internal orientation estimate.
virtual IMUFilter::Type type() const =0
virtual void getOrientation(double &qx, double &qy, double &qz, double &qw) const =0
Current orientation estimate.
std::map< std::string, std::string > ParametersMap
Parameter keys mapped to their values, as used by every configurable class (see Parameters).