gtsam
Loading...
Searching...
No Matches
NavStateImuEKF.h
Go to the documentation of this file.
1/* ----------------------------------------------------------------------------
2
3 * GTSAM Copyright 2010, Georgia Tech Research Corporation,
4 * Atlanta, Georgia 30332-0415
5 * All Rights Reserved
6 * Authors: Frank Dellaert, et al. (see THANKS for the full author list)
7
8 * See LICENSE for the license information
9
10 * -------------------------------------------------------------------------- */
11
19
20#pragma once
21
22#include <gtsam/navigation/LeftLinearEKF.h> // Include the base class
25
26namespace gtsam {
27
29class GTSAM_EXPORT NavStateImuEKF : public LeftLinearEKF<NavState> {
30 public:
31 using Base = LeftLinearEKF<NavState>;
32 using TangentVector = typename Base::TangentVector; // Vector9
33 using Jacobian = typename Base::Jacobian; // 9x9
34 using Covariance = typename Base::Covariance; // 9x9
35
43 NavStateImuEKF(const NavState& X0, const Covariance& P0,
44 const std::shared_ptr<PreintegrationParams>& params);
45
47 static NavState Gravity(const Vector3& g_n, double dt) {
48 return {Rot3(), g_n * (0.5 * dt * dt), g_n * dt};
49 }
50
53 static NavState Imu(const Vector3& omega_b, const Vector3& f_b, double dt);
54
74 static NavState Dynamics(const Vector3& g_n, const NavState& X,
75 const Vector3& omega_b, const Vector3& f_b,
76 double dt, OptionalJacobian<9, 9> A = {});
77
89 void predict(const Vector3& omega_b, const Vector3& f_b, double dt);
90
92 const std::shared_ptr<PreintegrationParams>& params() const;
93 const Vector3& gravity() const;
94 const Covariance& processNoise() const;
95
96 private:
97 std::shared_ptr<PreintegrationParams> params_;
98 Covariance Q_ = Covariance::Zero();
99};
100
101} // namespace gtsam
Navigation state composing of attitude, position, and velocity.
EKF on a Lie group with a general left–linear prediction model.
Global functions in a separate testing namespace.
Definition chartTesting.h:28
OptionalJacobian is an Eigen::Ref like class that can take be constructed using either a fixed size o...
Definition OptionalJacobian.h:40
Rot3 is a 3D rotation represented as a rotation matrix if the preprocessor symbol GTSAM_USE_QUATERNIO...
Definition Rot3.h:65
Navigation state: Pose (rotation, translation) + velocity Following Barrau20icra, this class belongs ...
Definition NavState.h:45
const std::shared_ptr< PreintegrationParams > & params() const
Accessors.
Definition NavStateImuEKF.cpp:78
static NavState Gravity(const Vector3 &g_n, double dt)
Calculate W (gravity-only left composition, world-frame increments).
Definition NavStateImuEKF.h:47
NavStateImuEKF(const NavState &X0, const Covariance &P0, const std::shared_ptr< PreintegrationParams > &params)
Construct with initial state/covariance and preintegration params (for gravity and IMU covariances).
Definition NavStateImuEKF.cpp:25