39 lines
1.0 KiB
C++
39 lines
1.0 KiB
C++
/**
|
|
* @file NonlinearFactorGraph.h
|
|
* @brief Factor Graph Constsiting of non-linear factors
|
|
* @author Frank Dellaert
|
|
* @author Carlos Nieto
|
|
* @author Christian Potthast
|
|
*/
|
|
|
|
// \callgraph
|
|
|
|
#pragma once
|
|
|
|
#include "NonlinearFactor.h"
|
|
#include "FactorGraph.h"
|
|
|
|
namespace gtsam {
|
|
|
|
/**
|
|
* A non-linear factor graph is templated on a configuration, but the factor type
|
|
* is fixed as a NonLinearFactor. The configurations are typically (in SAM) more general
|
|
* than just vectors, e.g., Rot3 or Pose3, which are objects in non-linear manifolds.
|
|
* Linearizing the non-linear factor graph creates a linear factor graph on the
|
|
* tangent vector space at the linearization point. Because the tangent space is a true
|
|
* vector space, the config type will be an VectorConfig in that linearized
|
|
*/
|
|
template<class Config>
|
|
class NonlinearFactorGraph: public FactorGraph<NonlinearFactor<Config> ,Config> {
|
|
|
|
public:
|
|
|
|
/**
|
|
* linearize a nonlinear factor graph
|
|
*/
|
|
LinearFactorGraph linearize(const Config& config) const;
|
|
|
|
};
|
|
|
|
} // namespace
|