fixed IncrementalFixedLagSmooth
parent
5702ec791b
commit
32b8effde2
|
@ -40,6 +40,21 @@ namespace gtsam {
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
namespace { // Anonymous namespace for internal linkage
|
namespace { // Anonymous namespace for internal linkage
|
||||||
constexpr double kSmallAngleThreshold = 1e-10;
|
constexpr double kSmallAngleThreshold = 1e-10;
|
||||||
|
|
||||||
|
// The type of the Lie algebra (matrix representation)
|
||||||
|
using LieAlgebra = Matrix5;
|
||||||
|
|
||||||
|
// Helper functions for accessing tangent vector components
|
||||||
|
Eigen::Block<Vector10, 3, 1> rho(Vector10& v) { return v.block<3, 1>(0, 0); }
|
||||||
|
Eigen::Block<Vector10, 3, 1> nu(Vector10& v) { return v.block<3, 1>(3, 0); }
|
||||||
|
Eigen::Block<Vector10, 3, 1> theta(Vector10& v) { return v.block<3, 1>(6, 0); }
|
||||||
|
Eigen::Block<Vector10, 1, 1> t_tan(Vector10& v) { return v.block<1, 1>(9, 0); }
|
||||||
|
// Const versions
|
||||||
|
Eigen::Block<const Vector10, 3, 1> rho(const Vector10& v) { return v.block<3, 1>(0, 0); }
|
||||||
|
Eigen::Block<const Vector10, 3, 1> nu(const Vector10& v) { return v.block<3, 1>(3, 0); }
|
||||||
|
Eigen::Block<const Vector10, 3, 1> theta(const Vector10& v) { return v.block<3, 1>(6, 0); }
|
||||||
|
Eigen::Block<const Vector10, 1, 1> t_tan(const Vector10& v) { return v.block<1, 1>(9, 0); }
|
||||||
|
|
||||||
} // end anonymous namespace
|
} // end anonymous namespace
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
|
@ -167,20 +167,6 @@ class GTSAM_EXPORT Gal3 : public LieGroup<Gal3, 10> {
|
||||||
/// @name Lie Group Static Functions
|
/// @name Lie Group Static Functions
|
||||||
/// @{
|
/// @{
|
||||||
|
|
||||||
/// The type of the Lie algebra (matrix representation)
|
|
||||||
using LieAlgebra = Matrix5;
|
|
||||||
|
|
||||||
// Helper functions for accessing tangent vector components
|
|
||||||
static Eigen::Block<Vector10, 3, 1> rho(Vector10& v) { return v.block<3, 1>(0, 0); }
|
|
||||||
static Eigen::Block<Vector10, 3, 1> nu(Vector10& v) { return v.block<3, 1>(3, 0); }
|
|
||||||
static Eigen::Block<Vector10, 3, 1> theta(Vector10& v) { return v.block<3, 1>(6, 0); }
|
|
||||||
static Eigen::Block<Vector10, 1, 1> t_tan(Vector10& v) { return v.block<1, 1>(9, 0); }
|
|
||||||
// Const versions
|
|
||||||
static Eigen::Block<const Vector10, 3, 1> rho(const Vector10& v) { return v.block<3, 1>(0, 0); }
|
|
||||||
static Eigen::Block<const Vector10, 3, 1> nu(const Vector10& v) { return v.block<3, 1>(3, 0); }
|
|
||||||
static Eigen::Block<const Vector10, 3, 1> theta(const Vector10& v) { return v.block<3, 1>(6, 0); }
|
|
||||||
static Eigen::Block<const Vector10, 1, 1> t_tan(const Vector10& v) { return v.block<1, 1>(9, 0); }
|
|
||||||
|
|
||||||
/// Exponential map at identity: tangent vector xi -> manifold element g
|
/// Exponential map at identity: tangent vector xi -> manifold element g
|
||||||
static Gal3 Expmap(const Vector10& xi, OptionalJacobian<10, 10> Hxi = {});
|
static Gal3 Expmap(const Vector10& xi, OptionalJacobian<10, 10> Hxi = {});
|
||||||
|
|
||||||
|
|
|
@ -26,6 +26,9 @@
|
||||||
|
|
||||||
#include <gtsam/navigation/ManifoldEKF.h> // Include the base class
|
#include <gtsam/navigation/ManifoldEKF.h> // Include the base class
|
||||||
#include <gtsam/base/Lie.h> // Include for Lie group traits and operations
|
#include <gtsam/base/Lie.h> // Include for Lie group traits and operations
|
||||||
|
// #include "gtsam/base/Matrix.h"
|
||||||
|
#include "gtsam/base/lieProxies.h"
|
||||||
|
|
||||||
|
|
||||||
#include <Eigen/Dense>
|
#include <Eigen/Dense>
|
||||||
#include <type_traits>
|
#include <type_traits>
|
||||||
|
|
|
@ -11,11 +11,11 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
// #ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
// #pragma message("IncrementalFixedLagSmoother was moved to the gtsam/nonlinear directory")
|
#pragma message("IncrementalFixedLagSmoother was moved to the gtsam/nonlinear directory")
|
||||||
// #else
|
#else
|
||||||
// #warning "IncrementalFixedLagSmoother was moved to the gtsam/nonlinear directory"
|
#warning "IncrementalFixedLagSmoother was moved to the gtsam/nonlinear directory"
|
||||||
// #endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#include <gtsam/nonlinear/IncrementalFixedLagSmoother.h>
|
#include <gtsam/nonlinear/IncrementalFixedLagSmoother.h>
|
||||||
|
|
Loading…
Reference in New Issue