Go to the documentation of this file.
30 #ifndef CORELIB_SRC_IMUFILTER_COMPLEMENTARYFILTER_H_
31 #define CORELIB_SRC_IMUFILTER_COMPLEMENTARYFILTER_H_
65 virtual void getOrientation(
double & qx,
double & qy,
double & qz,
double & qw)
const;
66 virtual void reset(
double qx = 0.0,
double qy = 0.0,
double qz = 0.0,
double qw = 1.0);
73 double gx,
double gy,
double gz,
74 double ax,
double ay,
double az,
111 double wx,
double wy,
double wz);
113 bool checkState(
double ax,
double ay,
double az,
114 double wx,
double wy,
double wz)
const;
117 double wx,
double wy,
double wz,
double dt,
118 double& q0_pred,
double& q1_pred,
double& q2_pred,
double& q3_pred)
const;
121 double ax,
double ay,
double az,
122 double& q0_meas,
double& q1_meas,
double& q2_meas,
double& q3_meas);
125 double ax,
double ay,
double az,
126 double mx,
double my,
double mz,
127 double& q0_meas,
double& q1_meas,
double& q2_meas,
double& q3_meas);
130 double ax,
double ay,
double az,
131 double p0,
double p1,
double p2,
double p3,
132 double& dq0,
double& dq1,
double& dq2,
double& dq3);
144 double& dq0,
double& dq1,
double& dq2,
double& dq3);
147 double q0,
double q1,
double q2,
double q3,
148 double& q0_inv,
double& q1_inv,
double& q2_inv,
double& q3_inv);
151 double q0,
double q1,
double q2,
double q3,
152 double& r0,
double& r1,
double& r2,
double& r3);
155 double q0,
double q1,
double q2,
double q3,
156 double& vx,
double& vy,
double& vz);
virtual ~ComplementaryFilter()
bool setBiasAlpha(double bias_alpha)
void getAccCorrection(double ax, double ay, double az, double p0, double p1, double p2, double p3, double &dq0, double &dq1, double &dq2, double &dq3)
void rotateVectorByQuaternion(double x, double y, double z, double q0, double q1, double q2, double q3, double &vx, double &vy, double &vz)
double getGainAcc() const
static const double kAccelerationThreshold
bool setGainAcc(double gain)
virtual void getOrientation(double &qx, double &qy, double &qz, double &qw) const
void setDoAdaptiveGain(bool do_adaptive_gain)
void invertQuaternion(double q0, double q1, double q2, double q3, double &q0_inv, double &q1_inv, double &q2_inv, double &q3_inv)
virtual void parseParameters(const ParametersMap ¶meters)
std::map< std::string, std::string > ParametersMap
void updateBiases(double ax, double ay, double az, double wx, double wy, double wz)
void getPrediction(double wx, double wy, double wz, double dt, double &q0_pred, double &q1_pred, double &q2_pred, double &q3_pred) const
bool getSteadyState() const
double getAngularVelocityBiasY() const
void normalizeQuaternion(double &q0, double &q1, double &q2, double &q3)
double getAdaptiveGain(double alpha, double ax, double ay, double az)
static const double kAngularVelocityThreshold
virtual IMUFilter::Type type() const
void normalizeVector(double &x, double &y, double &z)
bool getDoAdaptiveGain() const
virtual void updateImpl(double gx, double gy, double gz, double ax, double ay, double az, double dt)
static const double kGravity
void quaternionMultiplication(double p0, double p1, double p2, double p3, double q0, double q1, double q2, double q3, double &r0, double &r1, double &r2, double &r3)
bool getDoBiasEstimation() const
void scaleQuaternion(double gain, double &dq0, double &dq1, double &dq2, double &dq3)
virtual void reset(double qx=0.0, double qy=0.0, double qz=0.0, double qw=1.0)
double getBiasAlpha() const
bool checkState(double ax, double ay, double az, double wx, double wy, double wz) const
void getMeasurement(double ax, double ay, double az, double &q0_meas, double &q1_meas, double &q2_meas, double &q3_meas)
ComplementaryFilter(const ParametersMap ¶meters=ParametersMap())
double getAngularVelocityBiasX() const
static const double kDeltaAngularVelocityThreshold
static const double gamma_
void setDoBiasEstimation(bool do_bias_estimation)
double getAngularVelocityBiasZ() const
rtabmap
Author(s): Mathieu Labbe
autogenerated on Thu Jul 25 2024 02:50:08