Merge pull request #1255 from borglab/fix/doxygen
commit
b1a822562b
|
|
@ -50,7 +50,7 @@ will run up to 10x faster in Release mode! See the end of this document for
|
|||
additional debugging tips.
|
||||
|
||||
3. GTSAM has Doxygen documentation. To generate, run 'make doc' from your
|
||||
build directory.
|
||||
build directory after setting the `GTSAM_BUILD_DOCS` and `GTSAM_BUILD_[HTML|LATEX]` cmake flags.
|
||||
|
||||
4. The instructions below install the library to the default system install path and
|
||||
build all components. From a terminal, starting in the root library folder,
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ if (GTSAM_BUILD_DOCS)
|
|||
gtsam/basis
|
||||
gtsam/discrete
|
||||
gtsam/geometry
|
||||
gtsam/hybrid
|
||||
gtsam/inference
|
||||
gtsam/linear
|
||||
gtsam/navigation
|
||||
|
|
@ -33,7 +34,6 @@ if (GTSAM_BUILD_DOCS)
|
|||
gtsam/sam
|
||||
gtsam/sfm
|
||||
gtsam/slam
|
||||
gtsam/smart
|
||||
gtsam/symbolic
|
||||
gtsam
|
||||
)
|
||||
|
|
@ -42,10 +42,12 @@ if (GTSAM_BUILD_DOCS)
|
|||
set(gtsam_unstable_doc_subdirs
|
||||
gtsam_unstable/base
|
||||
gtsam_unstable/discrete
|
||||
gtsam_unstable/dynamics
|
||||
gtsam_unstable/geometry
|
||||
gtsam_unstable/linear
|
||||
gtsam_unstable/nonlinear
|
||||
gtsam_unstable/slam
|
||||
gtsam_unstable/dynamics
|
||||
gtsam_unstable/nonlinear
|
||||
gtsam_unstable/partition
|
||||
gtsam_unstable/slam
|
||||
gtsam_unstable
|
||||
)
|
||||
|
||||
|
|
|
|||
2973
doc/Doxyfile.in
2973
doc/Doxyfile.in
File diff suppressed because it is too large
Load Diff
|
|
@ -18,7 +18,6 @@
|
|||
<tab type="files" visible="yes" title="" intro=""/>
|
||||
<tab type="globals" visible="yes" title="" intro=""/>
|
||||
</tab>
|
||||
<tab type="dirs" visible="yes" title="" intro=""/>
|
||||
<tab type="examples" visible="yes" title="" intro=""/>
|
||||
</navindex>
|
||||
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ namespace gtsam {
|
|||
* convenience to avoid having lengthy types in the code. Through timing,
|
||||
* we've seen that the fast_pool_allocator can lead to speedups of several
|
||||
* percent.
|
||||
* @addtogroup base
|
||||
* @ingroup base
|
||||
*/
|
||||
template<typename KEY, typename VALUE>
|
||||
class ConcurrentMap : public ConcurrentMapBase<KEY,VALUE> {
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ namespace gtsam {
|
|||
/**
|
||||
* Disjoint set forest using an STL map data structure underneath
|
||||
* Uses rank compression and union by rank, iterator version
|
||||
* @addtogroup base
|
||||
* @ingroup base
|
||||
*/
|
||||
template <class KEY>
|
||||
class DSFMap {
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ namespace gtsam {
|
|||
* A fast implementation of disjoint set forests that uses vector as underly data structure.
|
||||
* This is the absolute minimal DSF data structure, and only allows size_t keys
|
||||
* Uses rank compression but not union by rank :-(
|
||||
* @addtogroup base
|
||||
* @ingroup base
|
||||
*/
|
||||
class GTSAM_EXPORT DSFBase {
|
||||
|
||||
|
|
@ -59,7 +59,7 @@ public:
|
|||
|
||||
/**
|
||||
* DSFVector additionally keeps a vector of keys to support more expensive operations
|
||||
* @addtogroup base
|
||||
* @ingroup base
|
||||
*/
|
||||
class GTSAM_EXPORT DSFVector: public DSFBase {
|
||||
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ namespace gtsam {
|
|||
* convenience to avoid having lengthy types in the code. Through timing,
|
||||
* we've seen that the fast_pool_allocator can lead to speedups of several
|
||||
* percent.
|
||||
* @addtogroup base
|
||||
* @ingroup base
|
||||
*/
|
||||
template<typename VALUE>
|
||||
class FastList: public std::list<VALUE, typename internal::FastDefaultAllocator<VALUE>::type> {
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ namespace gtsam {
|
|||
* convenience to avoid having lengthy types in the code. Through timing,
|
||||
* we've seen that the fast_pool_allocator can lead to speedups of several
|
||||
* percent.
|
||||
* @addtogroup base
|
||||
* @ingroup base
|
||||
*/
|
||||
template<typename KEY, typename VALUE>
|
||||
class FastMap : public std::map<KEY, VALUE, std::less<KEY>,
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ namespace gtsam {
|
|||
* fast_pool_allocator instead of the default STL allocator. This is just a
|
||||
* convenience to avoid having lengthy types in the code. Through timing,
|
||||
* we've seen that the fast_pool_allocator can lead to speedups of several %.
|
||||
* @addtogroup base
|
||||
* @ingroup base
|
||||
*/
|
||||
template<typename VALUE>
|
||||
class FastSet: public std::set<VALUE, std::less<VALUE>,
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ namespace gtsam {
|
|||
/**
|
||||
* FastVector is a type alias to a std::vector with a custom memory allocator.
|
||||
* The particular allocator depends on GTSAM's cmake configuration.
|
||||
* @addtogroup base
|
||||
* @ingroup base
|
||||
*/
|
||||
template <typename T>
|
||||
using FastVector =
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ namespace gtsam {
|
|||
* matrix view. firstBlock() determines the block that appears to have index 0 for all operations
|
||||
* (except re-setting firstBlock()).
|
||||
*
|
||||
* @addtogroup base */
|
||||
* @ingroup base */
|
||||
class GTSAM_EXPORT SymmetricBlockMatrix
|
||||
{
|
||||
public:
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ namespace gtsam {
|
|||
* tests and in generic algorithms.
|
||||
*
|
||||
* See macros for details on using this structure
|
||||
* @addtogroup base
|
||||
* @ingroup base
|
||||
* @tparam T is the objectype this constrains to be testable - assumes print() and equals()
|
||||
*/
|
||||
template <class T>
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
* @brief Base exception type that uses tbb_allocator if GTSAM is compiled with TBB
|
||||
* @author Richard Roberts
|
||||
* @date Aug 21, 2010
|
||||
* @addtogroup base
|
||||
* @ingroup base
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ namespace gtsam {
|
|||
* row for all operations. To include all rows, rowEnd() should be set to the number of rows in
|
||||
* the matrix (i.e. one after the last true row index).
|
||||
*
|
||||
* @addtogroup base */
|
||||
* @ingroup base */
|
||||
class GTSAM_EXPORT VerticalBlockMatrix
|
||||
{
|
||||
public:
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
#include <type_traits>
|
||||
|
||||
namespace gtsam {
|
||||
/// An shorthand alias for accessing the ::type inside std::enable_if that can be used in a template directly
|
||||
/// An shorthand alias for accessing the \::type inside std::enable_if that can be used in a template directly
|
||||
template<bool B, class T = void>
|
||||
using enable_if_t = typename std::enable_if<B, T>::type;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -147,7 +147,7 @@ namespace gtsam {
|
|||
size_t id_;
|
||||
size_t t_;
|
||||
size_t tWall_;
|
||||
double t2_ ; ///< cache the \sum t_i^2
|
||||
double t2_ ; ///< cache the \f$ \sum t_i^2 \f$
|
||||
size_t tIt_;
|
||||
size_t tMax_;
|
||||
size_t tMin_;
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
* @brief Functions for handling type information
|
||||
* @author Varun Agrawal
|
||||
* @date May 18, 2020
|
||||
* @addtogroup base
|
||||
* @ingroup base
|
||||
*/
|
||||
|
||||
#include <gtsam/base/types.h>
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
* @brief Typedefs for easier changing of types
|
||||
* @author Richard Roberts
|
||||
* @date Aug 21, 2010
|
||||
* @addtogroup base
|
||||
* @ingroup base
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
|
|
|||
|
|
@ -78,6 +78,8 @@ using Weights = Eigen::Matrix<double, 1, -1>; /* 1xN vector */
|
|||
* @tparam M Size of the identity matrix.
|
||||
* @param w The weights of the polynomial.
|
||||
* @return Mx(M*N) kronecker product [w(0)*I, w(1)*I, ..., w(N-1)*I]
|
||||
*
|
||||
* @ingroup basis
|
||||
*/
|
||||
template <size_t M>
|
||||
Matrix kroneckerProductIdentity(const Weights& w) {
|
||||
|
|
@ -90,7 +92,10 @@ Matrix kroneckerProductIdentity(const Weights& w) {
|
|||
return result;
|
||||
}
|
||||
|
||||
/// CRTP Base class for function bases
|
||||
/**
|
||||
* CRTP Base class for function bases
|
||||
* @ingroup basis
|
||||
*/
|
||||
template <typename DERIVED>
|
||||
class Basis {
|
||||
public:
|
||||
|
|
|
|||
|
|
@ -32,6 +32,8 @@ namespace gtsam {
|
|||
*
|
||||
* Example, degree 8 Chebyshev polynomial measured at x=0.5:
|
||||
* EvaluationFactor<Chebyshev2> factor(key, measured, model, 8, 0.5);
|
||||
*
|
||||
* @ingroup basis
|
||||
*/
|
||||
template <class BASIS>
|
||||
class EvaluationFactor : public FunctorizedFactor<double, Vector> {
|
||||
|
|
@ -86,6 +88,8 @@ class EvaluationFactor : public FunctorizedFactor<double, Vector> {
|
|||
*
|
||||
* @param BASIS: The basis class to use e.g. Chebyshev2
|
||||
* @param M: Size of the evaluated state vector.
|
||||
*
|
||||
* @ingroup basis
|
||||
*/
|
||||
template <class BASIS, int M>
|
||||
class VectorEvaluationFactor
|
||||
|
|
@ -149,6 +153,8 @@ class VectorEvaluationFactor
|
|||
* VectorComponentFactor<BASIS, P> controlPrior(key, measured, model,
|
||||
* N, i, t, a, b);
|
||||
* where N is the degree and i is the component index.
|
||||
*
|
||||
* @ingroup basis
|
||||
*/
|
||||
template <class BASIS, size_t P>
|
||||
class VectorComponentFactor
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
* -------------------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* @file ParamaterMatrix.h
|
||||
* @file ParameterMatrix.h
|
||||
* @brief Define ParameterMatrix class which is used to store values at
|
||||
* interpolation points.
|
||||
* @author Varun Agrawal, Frank Dellaert
|
||||
|
|
|
|||
|
|
@ -31,6 +31,8 @@ namespace gtsam {
|
|||
* Algebraic Decision Trees fix the range to double
|
||||
* Just has some nice constructors and some syntactic sugar
|
||||
* TODO: consider eliminating this class altogether?
|
||||
*
|
||||
* @ingroup discrete
|
||||
*/
|
||||
template <typename L>
|
||||
class GTSAM_EXPORT AlgebraicDecisionTree : public DecisionTree<L, double> {
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ namespace gtsam {
|
|||
* An assignment from labels to value index (size_t).
|
||||
* Assigns to each label a value. Implemented as a simple map.
|
||||
* A discrete factor takes an Assignment and returns a value.
|
||||
* @ingroup discrete
|
||||
*/
|
||||
template <class L>
|
||||
class Assignment : public std::map<L, size_t> {
|
||||
|
|
|
|||
|
|
@ -38,6 +38,8 @@ namespace gtsam {
|
|||
* Decision Tree
|
||||
* L = label for variables
|
||||
* Y = function range (any algebra), e.g., bool, int, double
|
||||
*
|
||||
* @ingroup discrete
|
||||
*/
|
||||
template<typename L, typename Y>
|
||||
class DecisionTree {
|
||||
|
|
|
|||
|
|
@ -36,7 +36,9 @@ namespace gtsam {
|
|||
class DiscreteConditional;
|
||||
|
||||
/**
|
||||
* A discrete probabilistic factor
|
||||
* A discrete probabilistic factor.
|
||||
*
|
||||
* @ingroup discrete
|
||||
*/
|
||||
class GTSAM_EXPORT DecisionTreeFactor : public DiscreteFactor,
|
||||
public AlgebraicDecisionTree<Key> {
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ namespace gtsam {
|
|||
|
||||
/**
|
||||
* A Bayes net made from discrete conditional distributions.
|
||||
* @addtogroup discrete
|
||||
* @ingroup discrete
|
||||
*/
|
||||
class GTSAM_EXPORT DiscreteBayesNet: public BayesNet<DiscreteConditional> {
|
||||
public:
|
||||
|
|
|
|||
|
|
@ -62,7 +62,10 @@ class GTSAM_EXPORT DiscreteBayesTreeClique
|
|||
};
|
||||
|
||||
/* ************************************************************************* */
|
||||
/** A Bayes tree representing a Discrete density */
|
||||
/**
|
||||
* @brief A Bayes tree representing a Discrete density.
|
||||
* @ingroup discrete
|
||||
*/
|
||||
class GTSAM_EXPORT DiscreteBayesTree
|
||||
: public BayesTree<DiscreteBayesTreeClique> {
|
||||
private:
|
||||
|
|
|
|||
|
|
@ -32,6 +32,8 @@ namespace gtsam {
|
|||
/**
|
||||
* Discrete Conditional Density
|
||||
* Derives from DecisionTreeFactor
|
||||
*
|
||||
* @ingroup discrete
|
||||
*/
|
||||
class GTSAM_EXPORT DiscreteConditional
|
||||
: public DecisionTreeFactor,
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@ namespace gtsam {
|
|||
/**
|
||||
* A prior probability on a set of discrete variables.
|
||||
* Derives from DiscreteConditional
|
||||
*
|
||||
* @ingroup discrete
|
||||
*/
|
||||
class GTSAM_EXPORT DiscreteDistribution : public DiscreteConditional {
|
||||
public:
|
||||
|
|
|
|||
|
|
@ -24,6 +24,10 @@
|
|||
|
||||
namespace gtsam {
|
||||
|
||||
/**
|
||||
* @brief Elimination tree for discrete factors.
|
||||
* @ingroup discrete
|
||||
*/
|
||||
class GTSAM_EXPORT DiscreteEliminationTree :
|
||||
public EliminationTree<DiscreteBayesNet, DiscreteFactorGraph>
|
||||
{
|
||||
|
|
|
|||
|
|
@ -31,6 +31,8 @@ class DiscreteConditional;
|
|||
/**
|
||||
* Base class for discrete probabilistic factors
|
||||
* The most general one is the derived DecisionTreeFactor
|
||||
*
|
||||
* @ingroup discrete
|
||||
*/
|
||||
class GTSAM_EXPORT DiscreteFactor: public Factor {
|
||||
|
||||
|
|
|
|||
|
|
@ -40,7 +40,14 @@ class DiscreteEliminationTree;
|
|||
class DiscreteBayesTree;
|
||||
class DiscreteJunctionTree;
|
||||
|
||||
/** Main elimination function for DiscreteFactorGraph */
|
||||
/**
|
||||
* @brief Main elimination function for DiscreteFactorGraph.
|
||||
*
|
||||
* @param factors
|
||||
* @param keys
|
||||
* @return GTSAM_EXPORT
|
||||
* @ingroup discrete
|
||||
*/
|
||||
GTSAM_EXPORT std::pair<boost::shared_ptr<DiscreteConditional>, DecisionTreeFactor::shared_ptr>
|
||||
EliminateDiscrete(const DiscreteFactorGraph& factors, const Ordering& keys);
|
||||
|
||||
|
|
@ -64,6 +71,7 @@ template<> struct EliminationTraits<DiscreteFactorGraph>
|
|||
/**
|
||||
* A Discrete Factor Graph is a factor graph where all factors are Discrete, i.e.
|
||||
* Factor == DiscreteFactor
|
||||
* @ingroup discrete
|
||||
*/
|
||||
class GTSAM_EXPORT DiscreteFactorGraph
|
||||
: public FactorGraph<DiscreteFactor>,
|
||||
|
|
|
|||
|
|
@ -44,7 +44,8 @@ namespace gtsam {
|
|||
* The tree structure and elimination method are exactly analogous to the EliminationTree,
|
||||
* except that in the JunctionTree, at each node multiple variables are eliminated at a time.
|
||||
*
|
||||
* \addtogroup Multifrontal
|
||||
* \ingroup Multifrontal
|
||||
* @ingroup discrete
|
||||
* \nosubgrouping
|
||||
*/
|
||||
class GTSAM_EXPORT DiscreteJunctionTree :
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ namespace gtsam {
|
|||
/**
|
||||
* Key type for discrete variables.
|
||||
* Includes Key and cardinality.
|
||||
* @ingroup discrete
|
||||
*/
|
||||
using DiscreteKey = std::pair<Key,size_t>;
|
||||
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ class DiscreteBayesNet;
|
|||
|
||||
/**
|
||||
* @brief DiscreteLookupTable table for max-product
|
||||
* @ingroup discrete
|
||||
*
|
||||
* Inherits from discrete conditional for convenience, but is not normalized.
|
||||
* Is used in the max-product algorithm.
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ namespace gtsam {
|
|||
|
||||
/**
|
||||
* A class for computing marginals of variables in a DiscreteFactorGraph
|
||||
* @ingroup discrete
|
||||
*/
|
||||
class DiscreteMarginals {
|
||||
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@ namespace gtsam {
|
|||
* Another good thing is we don't need to have the special DiscreteKey which
|
||||
* stores cardinality of a Discrete variable. It should be handled naturally in
|
||||
* the new class DiscreteValue, as the variable's type (domain)
|
||||
* @ingroup discrete
|
||||
*/
|
||||
class GTSAM_EXPORT DiscreteValues : public Assignment<Key> {
|
||||
public:
|
||||
|
|
|
|||
|
|
@ -48,6 +48,8 @@ namespace gtsam {
|
|||
* (E|T,L) = "F F F 1"
|
||||
* X|E = "95/5 2/98"
|
||||
* (D|E,B) = "9/1 2/8 3/7 1/9"
|
||||
*
|
||||
* @ingroup discrete
|
||||
*/
|
||||
class GTSAM_EXPORT Signature {
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
*/
|
||||
|
||||
/**
|
||||
* @addtogroup geometry
|
||||
* @ingroup geometry
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
|
@ -63,7 +63,7 @@ void calibrateJacobians(const Cal& calibration, const Point2& pn,
|
|||
|
||||
/**
|
||||
* @brief Common base class for all calibration models.
|
||||
* @addtogroup geometry
|
||||
* @ingroup geometry
|
||||
* \nosubgrouping
|
||||
*/
|
||||
class GTSAM_EXPORT Cal3 {
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ namespace gtsam {
|
|||
|
||||
/**
|
||||
* @brief Calibration used by Bundler
|
||||
* @addtogroup geometry
|
||||
* @ingroup geometry
|
||||
* \nosubgrouping
|
||||
*/
|
||||
class GTSAM_EXPORT Cal3Bundler : public Cal3 {
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ namespace gtsam {
|
|||
* @brief Calibration of a camera with radial distortion that also supports
|
||||
* Lie-group behaviors for optimization.
|
||||
* \sa Cal3DS2_Base
|
||||
* @addtogroup geometry
|
||||
* @ingroup geometry
|
||||
* \nosubgrouping
|
||||
*/
|
||||
class GTSAM_EXPORT Cal3DS2 : public Cal3DS2_Base {
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ namespace gtsam {
|
|||
|
||||
/**
|
||||
* @brief Calibration of a camera with radial distortion
|
||||
* @addtogroup geometry
|
||||
* @ingroup geometry
|
||||
* \nosubgrouping
|
||||
*
|
||||
* Uses same distortionmodel as OpenCV, with
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ namespace gtsam {
|
|||
|
||||
/**
|
||||
* @brief Calibration of a fisheye camera
|
||||
* @addtogroup geometry
|
||||
* @ingroup geometry
|
||||
* \nosubgrouping
|
||||
*
|
||||
* Uses same distortionmodel as OpenCV, with
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
*/
|
||||
|
||||
/**
|
||||
* @addtogroup geometry
|
||||
* @ingroup geometry
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
|
@ -30,7 +30,7 @@ namespace gtsam {
|
|||
/**
|
||||
* @brief Calibration of a omni-directional camera with mirror + lens radial
|
||||
* distortion
|
||||
* @addtogroup geometry
|
||||
* @ingroup geometry
|
||||
* \nosubgrouping
|
||||
*
|
||||
* Similar to Cal3DS2, does distortion but has additional mirror parameter xi
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
*/
|
||||
|
||||
/**
|
||||
* @addtogroup geometry
|
||||
* @ingroup geometry
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
|
@ -28,7 +28,7 @@ namespace gtsam {
|
|||
|
||||
/**
|
||||
* @brief The most common 5DOF 3D->2D calibration
|
||||
* @addtogroup geometry
|
||||
* @ingroup geometry
|
||||
* \nosubgrouping
|
||||
*/
|
||||
class GTSAM_EXPORT Cal3_S2 : public Cal3 {
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ namespace gtsam {
|
|||
|
||||
/**
|
||||
* @brief The most common 5DOF 3D->2D calibration, stereo version
|
||||
* @addtogroup geometry
|
||||
* @ingroup geometry
|
||||
* \nosubgrouping
|
||||
*/
|
||||
class GTSAM_EXPORT Cal3_S2Stereo : public Cal3_S2 {
|
||||
|
|
@ -38,7 +38,7 @@ class GTSAM_EXPORT Cal3_S2Stereo : public Cal3_S2 {
|
|||
using shared_ptr = boost::shared_ptr<Cal3_S2Stereo>;
|
||||
|
||||
/// @name Standard Constructors
|
||||
/// @
|
||||
/// @{
|
||||
|
||||
/// default calibration leaves coordinates unchanged
|
||||
Cal3_S2Stereo() = default;
|
||||
|
|
@ -55,6 +55,8 @@ class GTSAM_EXPORT Cal3_S2Stereo : public Cal3_S2 {
|
|||
Cal3_S2Stereo(double fov, int w, int h, double b)
|
||||
: Cal3_S2(fov, w, h), b_(b) {}
|
||||
|
||||
/// @}
|
||||
|
||||
/**
|
||||
* Convert intrinsic coordinates xy to image coordinates uv, fixed derivaitves
|
||||
* @param p point in intrinsic coordinates
|
||||
|
|
@ -82,7 +84,6 @@ class GTSAM_EXPORT Cal3_S2Stereo : public Cal3_S2 {
|
|||
*/
|
||||
Vector3 calibrate(const Vector3& p) const { return Cal3_S2::calibrate(p); }
|
||||
|
||||
/// @}
|
||||
/// @name Testable
|
||||
/// @{
|
||||
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ private:
|
|||
|
||||
/**
|
||||
* A pinhole camera class that has a Pose3, functions as base class for all pinhole cameras
|
||||
* @addtogroup geometry
|
||||
* @ingroup geometry
|
||||
* \nosubgrouping
|
||||
*/
|
||||
class GTSAM_EXPORT PinholeBase {
|
||||
|
|
@ -241,7 +241,7 @@ private:
|
|||
* A Calibrated camera class [R|-R't], calibration K=I.
|
||||
* If calibration is known, it is more computationally efficient
|
||||
* to calibrate the measurements rather than try to predict in pixels.
|
||||
* @addtogroup geometry
|
||||
* @ingroup geometry
|
||||
* \nosubgrouping
|
||||
*/
|
||||
class GTSAM_EXPORT CalibratedCamera: public PinholeBase {
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ GTSAM_EXPORT Line3 transformTo(const Pose3 &wTc, const Line3 &wL,
|
|||
|
||||
/**
|
||||
* A 3D line (R,a,b) : (Rot3,Scalar,Scalar)
|
||||
* @addtogroup geometry
|
||||
* @ingroup geometry
|
||||
* \nosubgrouping
|
||||
*/
|
||||
class GTSAM_EXPORT Line3 {
|
||||
|
|
|
|||
|
|
@ -133,8 +133,6 @@ public:
|
|||
inline double distance() const {
|
||||
return d_;
|
||||
}
|
||||
|
||||
/// @}
|
||||
};
|
||||
|
||||
template<> struct traits<OrientedPlane3> : public internal::Manifold<
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ namespace gtsam {
|
|||
/**
|
||||
* A pinhole camera class that has a Pose3 and a Calibration.
|
||||
* Use PinholePose if you will not be optimizing for Calibration
|
||||
* @addtogroup geometry
|
||||
* @ingroup geometry
|
||||
* \nosubgrouping
|
||||
*/
|
||||
template<typename Calibration>
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ namespace gtsam {
|
|||
|
||||
/**
|
||||
* A pinhole camera class that has a Pose3 and a *fixed* Calibration.
|
||||
* @addtogroup geometry
|
||||
* @ingroup geometry
|
||||
* \nosubgrouping
|
||||
*/
|
||||
template<typename CALIBRATION>
|
||||
|
|
@ -236,7 +236,7 @@ public:
|
|||
* A pinhole camera class that has a Pose3 and a *fixed* Calibration.
|
||||
* Instead of using this class, one might consider calibrating the measurements
|
||||
* and using CalibratedCamera, which would then be faster.
|
||||
* @addtogroup geometry
|
||||
* @ingroup geometry
|
||||
* \nosubgrouping
|
||||
*/
|
||||
template<typename CALIBRATION>
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ namespace gtsam {
|
|||
|
||||
/**
|
||||
* A 2D pose (Point2,Rot2)
|
||||
* @addtogroup geometry
|
||||
* @ingroup geometry
|
||||
* \nosubgrouping
|
||||
*/
|
||||
class Pose2: public LieGroup<Pose2, 3> {
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@
|
|||
namespace gtsam {
|
||||
|
||||
using std::vector;
|
||||
using Point3Pairs = vector<Point3Pair>;
|
||||
|
||||
/** instantiate concept checks */
|
||||
GTSAM_CONCEPT_POSE_INST(Pose3)
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ class Pose2;
|
|||
|
||||
/**
|
||||
* A 3D pose (R,t) : (Rot3,Point3)
|
||||
* @addtogroup geometry
|
||||
* @ingroup geometry
|
||||
* \nosubgrouping
|
||||
*/
|
||||
class GTSAM_EXPORT Pose3: public LieGroup<Pose3, 6> {
|
||||
|
|
@ -83,7 +83,7 @@ public:
|
|||
* A pose aTb is estimated between pairs (a_point, b_point) such that a_point = aTb * b_point
|
||||
* Note this allows for noise on the points but in that case the mapping will not be exact.
|
||||
*/
|
||||
static boost::optional<Pose3> Align(const std::vector<Point3Pair>& abPointPairs);
|
||||
static boost::optional<Pose3> Align(const Point3Pairs& abPointPairs);
|
||||
|
||||
// Version of Pose3::Align that takes 2 matrices.
|
||||
static boost::optional<Pose3> Align(const Matrix& a, const Matrix& b);
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ namespace gtsam {
|
|||
/**
|
||||
* Rotation matrix
|
||||
* NOTE: the angle theta is in radians unless explicitly stated
|
||||
* @addtogroup geometry
|
||||
* @ingroup geometry
|
||||
* \nosubgrouping
|
||||
*/
|
||||
class GTSAM_EXPORT Rot2 : public LieGroup<Rot2, 1> {
|
||||
|
|
@ -86,7 +86,7 @@ namespace gtsam {
|
|||
static Rot2 atan2(double y, double x);
|
||||
|
||||
/**
|
||||
* Random, generates random angle \in [-p,pi]
|
||||
* Random, generates random angle \f$\in\f$ [-pi,pi]
|
||||
* Example:
|
||||
* std::mt19937 engine(42);
|
||||
* Unit3 unit = Unit3::Random(engine);
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ namespace gtsam {
|
|||
* @brief Rot3 is a 3D rotation represented as a rotation matrix if the
|
||||
* preprocessor symbol GTSAM_USE_QUATERNIONS is not defined, or as a quaternion
|
||||
* if it is defined.
|
||||
* @addtogroup geometry
|
||||
* @ingroup geometry
|
||||
*/
|
||||
class GTSAM_EXPORT Rot3 : public LieGroup<Rot3, 3> {
|
||||
private:
|
||||
|
|
@ -129,7 +129,7 @@ class GTSAM_EXPORT Rot3 : public LieGroup<Rot3, 3> {
|
|||
Rot3(double w, double x, double y, double z) : Rot3(Quaternion(w, x, y, z)) {}
|
||||
|
||||
/**
|
||||
* Random, generates a random axis, then random angle \in [-p,pi]
|
||||
* Random, generates a random axis, then random angle \f$\in\f$ [-pi,pi]
|
||||
* Example:
|
||||
* std::mt19937 engine(42);
|
||||
* Unit3 unit = Unit3::Random(engine);
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ GTSAM_EXPORT Matrix3 topLeft(const SO4 &Q, OptionalJacobian<9, 6> H = boost::non
|
|||
|
||||
/**
|
||||
* Project to Stiefel manifold of 4*3 orthonormal 3-frames in R^4, i.e., pi(Q)
|
||||
* -> S \in St(3,4).
|
||||
* -> \f$ S \in St(3,4) \f$.
|
||||
*/
|
||||
GTSAM_EXPORT Matrix43 stiefel(const SO4 &Q, OptionalJacobian<12, 6> H = boost::none);
|
||||
|
||||
|
|
|
|||
|
|
@ -121,7 +121,8 @@ class SO : public LieGroup<SO<N>, internal::DimensionSO(N)> {
|
|||
/// currently only defined for SO3.
|
||||
static SO ClosestTo(const MatrixNN& M);
|
||||
|
||||
/// Named constructor that finds chordal mean = argmin_R \sum sqr(|R-R_i|_F),
|
||||
/// Named constructor that finds chordal mean
|
||||
/// \f$ mu = argmin_R \sum sqr(|R-R_i|_F) \f$,
|
||||
/// currently only defined for SO3.
|
||||
static SO ChordalMean(const std::vector<SO>& rotations);
|
||||
|
||||
|
|
|
|||
|
|
@ -132,7 +132,7 @@ class GTSAM_EXPORT Similarity2 : public LieGroup<Similarity2, 4> {
|
|||
* using the algorithm described here:
|
||||
* http://www5.informatik.uni-erlangen.de/Forschung/Publikationen/2005/Zinsser05-PSR.pdf
|
||||
*/
|
||||
static Similarity2 Align(const std::vector<Pose2Pair>& abPosePairs);
|
||||
static Similarity2 Align(const Pose2Pairs& abPosePairs);
|
||||
|
||||
/// @}
|
||||
/// @name Lie Group
|
||||
|
|
|
|||
|
|
@ -120,7 +120,7 @@ class GTSAM_EXPORT Similarity3 : public LieGroup<Similarity3, 7> {
|
|||
/**
|
||||
* Create Similarity3 by aligning at least three point pairs
|
||||
*/
|
||||
static Similarity3 Align(const std::vector<Point3Pair>& abPointPairs);
|
||||
static Similarity3 Align(const Point3Pairs& abPointPairs);
|
||||
|
||||
/**
|
||||
* Create the Similarity3 object that aligns at least two pose pairs.
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ namespace gtsam {
|
|||
* Empty calibration. Only needed to play well with other cameras
|
||||
* (e.g., when templating functions wrt cameras), since other cameras
|
||||
* have constuctors in the form ‘camera(pose,calibration)’
|
||||
* @addtogroup geometry
|
||||
* @ingroup geometry
|
||||
* \nosubgrouping
|
||||
*/
|
||||
class GTSAM_EXPORT EmptyCal {
|
||||
|
|
@ -64,7 +64,7 @@ class GTSAM_EXPORT EmptyCal {
|
|||
/**
|
||||
* A spherical camera class that has a Pose3 and measures bearing vectors.
|
||||
* The camera has an ‘Empty’ calibration and the only 6 dof are the pose
|
||||
* @addtogroup geometry
|
||||
* @ingroup geometry
|
||||
* \nosubgrouping
|
||||
*/
|
||||
class GTSAM_EXPORT SphericalCamera {
|
||||
|
|
@ -82,7 +82,6 @@ class GTSAM_EXPORT SphericalCamera {
|
|||
EmptyCal::shared_ptr emptyCal_;
|
||||
|
||||
public:
|
||||
/// @}
|
||||
/// @name Standard Constructors
|
||||
/// @{
|
||||
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ private:
|
|||
|
||||
/**
|
||||
* A stereo camera class, parameterize by left camera pose and stereo calibration
|
||||
* @addtogroup geometry
|
||||
* @ingroup geometry
|
||||
*/
|
||||
class GTSAM_EXPORT StereoCamera {
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ namespace gtsam {
|
|||
|
||||
/**
|
||||
* A 2D stereo point, v will be same for rectified images
|
||||
* @addtogroup geometry
|
||||
* @ingroup geometry
|
||||
* \nosubgrouping
|
||||
*/
|
||||
class GTSAM_EXPORT StereoPoint2 {
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
* @file global_includes.h
|
||||
* @brief Included from all GTSAM files
|
||||
* @author Richard Roberts
|
||||
* @addtogroup base
|
||||
* @ingroup base
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/**
|
||||
|
||||
\defgroup LinearSolving Solving of sparse linear systems with least-squares
|
||||
@{
|
||||
@{ @}
|
||||
|
||||
\defgroup Multifrontal Solving by multifrontal variable elimination (QR and Cholesky)
|
||||
@{ @}
|
||||
|
|
@ -9,9 +9,48 @@
|
|||
\defgroup Sequential Solving by sequential variable elimination (QR and Cholesky)
|
||||
@{ @}
|
||||
|
||||
@}
|
||||
|
||||
\defgroup SLAM Useful SLAM components
|
||||
\defgroup base Base
|
||||
@{ @}
|
||||
|
||||
*/
|
||||
\defgroup basis Basis
|
||||
@{ @}
|
||||
|
||||
\defgroup discrete Discrete
|
||||
@{ @}
|
||||
|
||||
\defgroup geometry Geometry
|
||||
@{
|
||||
Geometric primitives.
|
||||
@}
|
||||
|
||||
\defgroup hybrid Hybrid
|
||||
@{ @}
|
||||
|
||||
\defgroup inference Inference
|
||||
@{ @}
|
||||
|
||||
\defgroup linear Linear
|
||||
@{ @}
|
||||
|
||||
\defgroup navigation Navigation
|
||||
@{ @}
|
||||
|
||||
\defgroup nonlinear Nonlinear
|
||||
@{ @}
|
||||
|
||||
\defgroup sam SAM
|
||||
@{ @}
|
||||
|
||||
\defgroup sfm SFM
|
||||
@{ @}
|
||||
|
||||
\defgroup slam SLAM
|
||||
@{ Useful SLAM components @}
|
||||
|
||||
\defgroup symbolic Symbolic
|
||||
@{ @}
|
||||
|
||||
\defgroup isam2 ISAM2
|
||||
@{ @}
|
||||
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@ namespace gtsam {
|
|||
* where i indexes the components and k_i is a component-wise normalization
|
||||
* constant.
|
||||
*
|
||||
* @ingroup hybrid
|
||||
*/
|
||||
class GTSAM_EXPORT GaussianMixture
|
||||
: public HybridFactor,
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ using GaussianFactorVector = std::vector<gtsam::GaussianFactor::shared_ptr>;
|
|||
* Represents the underlying Gaussian Mixture as a Decision Tree, where the set
|
||||
* of discrete variables indexes to the continuous gaussian distribution.
|
||||
*
|
||||
* @ingroup hybrid
|
||||
*/
|
||||
class GTSAM_EXPORT GaussianMixtureFactor : public HybridFactor {
|
||||
public:
|
||||
|
|
|
|||
|
|
@ -29,6 +29,8 @@ namespace gtsam {
|
|||
/**
|
||||
* A hybrid Bayes net is a collection of HybridConditionals, which can have
|
||||
* discrete conditionals, Gaussian mixtures, or pure Gaussian conditionals.
|
||||
*
|
||||
* @ingroup hybrid
|
||||
*/
|
||||
class GTSAM_EXPORT HybridBayesNet : public BayesNet<HybridConditional> {
|
||||
public:
|
||||
|
|
|
|||
|
|
@ -34,8 +34,11 @@ class HybridConditional;
|
|||
class VectorValues;
|
||||
|
||||
/* ************************************************************************* */
|
||||
/** A clique in a HybridBayesTree
|
||||
/**
|
||||
* @brief A clique in a HybridBayesTree
|
||||
* which is a HybridConditional internally.
|
||||
*
|
||||
* @ingroup hybrid
|
||||
*/
|
||||
class GTSAM_EXPORT HybridBayesTreeClique
|
||||
: public BayesTreeCliqueBase<HybridBayesTreeClique,
|
||||
|
|
|
|||
|
|
@ -54,6 +54,8 @@ namespace gtsam {
|
|||
*
|
||||
* A great reference to the type-erasure pattern is Eduaado Madrid's CppCon
|
||||
* talk (https://www.youtube.com/watch?v=s082Qmd_nHs).
|
||||
*
|
||||
* @ingroup hybrid
|
||||
*/
|
||||
class GTSAM_EXPORT HybridConditional
|
||||
: public HybridFactor,
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@ namespace gtsam {
|
|||
* A HybridDiscreteFactor is a thin container for DiscreteFactor, which allows
|
||||
* us to hide the implementation of DiscreteFactor and thus avoid diamond
|
||||
* inheritance.
|
||||
*
|
||||
* @ingroup hybrid
|
||||
*/
|
||||
class GTSAM_EXPORT HybridDiscreteFactor : public HybridFactor {
|
||||
private:
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@ namespace gtsam {
|
|||
|
||||
/**
|
||||
* Elimination Tree type for Hybrid
|
||||
*
|
||||
* @ingroup hybrid
|
||||
*/
|
||||
class GTSAM_EXPORT HybridEliminationTree
|
||||
: public EliminationTree<HybridBayesNet, HybridGaussianFactorGraph> {
|
||||
|
|
|
|||
|
|
@ -40,6 +40,8 @@ DiscreteKeys CollectDiscreteKeys(const DiscreteKeys &key1,
|
|||
* - HybridDiscreteFactor
|
||||
* - GaussianMixtureFactor
|
||||
* - GaussianMixture
|
||||
*
|
||||
* @ingroup hybrid
|
||||
*/
|
||||
class GTSAM_EXPORT HybridFactor : public Factor {
|
||||
private:
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@ namespace gtsam {
|
|||
* A HybridGaussianFactor is a layer over GaussianFactor so that we do not have
|
||||
* a diamond inheritance i.e. an extra factor type that inherits from both
|
||||
* HybridFactor and GaussianFactor.
|
||||
*
|
||||
* @ingroup hybrid
|
||||
*/
|
||||
class GTSAM_EXPORT HybridGaussianFactor : public HybridFactor {
|
||||
private:
|
||||
|
|
|
|||
|
|
@ -39,7 +39,14 @@ class DecisionTreeFactor;
|
|||
|
||||
class JacobianFactor;
|
||||
|
||||
/** Main elimination function for HybridGaussianFactorGraph */
|
||||
/**
|
||||
* @brief Main elimination function for HybridGaussianFactorGraph.
|
||||
*
|
||||
* @param factors The factor graph to eliminate.
|
||||
* @param keys The elimination ordering.
|
||||
* @return The conditional on the ordering keys and the remaining factors.
|
||||
* @ingroup hybrid
|
||||
*/
|
||||
GTSAM_EXPORT
|
||||
std::pair<boost::shared_ptr<HybridConditional>, HybridFactor::shared_ptr>
|
||||
EliminateHybrid(const HybridGaussianFactorGraph& factors, const Ordering& keys);
|
||||
|
|
@ -68,10 +75,12 @@ struct EliminationTraits<HybridGaussianFactorGraph> {
|
|||
};
|
||||
|
||||
/**
|
||||
* Gaussian Hybrid Factor Graph
|
||||
* Hybrid Gaussian Factor Graph
|
||||
* -----------------------
|
||||
* This is the linearized version of a hybrid factor graph.
|
||||
* Everything inside needs to be hybrid factor or hybrid conditional.
|
||||
*
|
||||
* @ingroup hybrid
|
||||
*/
|
||||
class GTSAM_EXPORT HybridGaussianFactorGraph
|
||||
: public HybridFactorGraph,
|
||||
|
|
@ -120,13 +129,13 @@ class GTSAM_EXPORT HybridGaussianFactorGraph
|
|||
void add(JacobianFactor&& factor);
|
||||
|
||||
/// Add a Jacobian factor as a shared ptr.
|
||||
void add(boost::shared_ptr<JacobianFactor> factor);
|
||||
void add(JacobianFactor::shared_ptr factor);
|
||||
|
||||
/// Add a DecisionTreeFactor to the factor graph.
|
||||
void add(DecisionTreeFactor&& factor);
|
||||
|
||||
/// Add a DecisionTreeFactor as a shared ptr.
|
||||
void add(boost::shared_ptr<DecisionTreeFactor> factor);
|
||||
void add(DecisionTreeFactor::shared_ptr factor);
|
||||
|
||||
/**
|
||||
* Add a gaussian factor *pointer* to the internal gaussian factor graph
|
||||
|
|
|
|||
|
|
@ -26,6 +26,11 @@
|
|||
|
||||
namespace gtsam {
|
||||
|
||||
/**
|
||||
* @brief
|
||||
*
|
||||
* @ingroup hybrid
|
||||
*/
|
||||
class GTSAM_EXPORT HybridGaussianISAM : public ISAM<HybridBayesTree> {
|
||||
public:
|
||||
typedef ISAM<HybridBayesTree> Base;
|
||||
|
|
|
|||
|
|
@ -45,7 +45,8 @@ class HybridEliminationTree;
|
|||
* EliminationTree, except that in the JunctionTree, at each node multiple
|
||||
* variables are eliminated at a time.
|
||||
*
|
||||
* \addtogroup Multifrontal
|
||||
* \ingroup Multifrontal
|
||||
* \ingroup hybrid
|
||||
* \nosubgrouping
|
||||
*/
|
||||
class GTSAM_EXPORT HybridJunctionTree
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ namespace gtsam {
|
|||
|
||||
/**
|
||||
* A BayesNet is a tree of conditionals, stored in elimination order.
|
||||
* @addtogroup inference
|
||||
* @ingroup inference
|
||||
*/
|
||||
template <class CONDITIONAL>
|
||||
class BayesNet : public FactorGraph<CONDITIONAL> {
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
* -------------------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* @file BayesTree-inl.h
|
||||
* @file BayesTree-inst.h
|
||||
* @brief Bayes Tree is a tree of cliques of a Bayes Chain
|
||||
* @author Frank Dellaert
|
||||
* @author Michael Kaess
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ namespace gtsam {
|
|||
* @tparam CLIQUE The type of the clique data structure, defaults to BayesTreeClique, normally do not change this
|
||||
* as it is only used when developing special versions of BayesTree, e.g. for ISAM2.
|
||||
*
|
||||
* \addtogroup Multifrontal
|
||||
* \ingroup Multifrontal
|
||||
* \nosubgrouping
|
||||
*/
|
||||
template<class CLIQUE>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/**
|
||||
* @file EliminatableClusterTree-inst.h
|
||||
* @file ClusterTree-inst.h
|
||||
* @date Oct 8, 2013
|
||||
* @author Kai Ni
|
||||
* @author Richard Roberts
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/**
|
||||
* @file EliminatableClusterTree.h
|
||||
* @file ClusterTree.h
|
||||
* @date Oct 8, 2013
|
||||
* @author Kai Ni
|
||||
* @author Richard Roberts
|
||||
|
|
@ -139,7 +139,6 @@ class ClusterTree {
|
|||
const KeyFormatter& keyFormatter = DefaultKeyFormatter) const;
|
||||
|
||||
/// @}
|
||||
|
||||
/// @name Advanced Interface
|
||||
/// @{
|
||||
|
||||
|
|
@ -169,6 +168,7 @@ class ClusterTree {
|
|||
|
||||
protected:
|
||||
/// @name Details
|
||||
/// @{
|
||||
|
||||
/// Assignment operator - makes a deep copy of the tree structure, but only pointers to factors
|
||||
/// are copied, factors are not cloned.
|
||||
|
|
@ -236,6 +236,7 @@ class EliminatableClusterTree : public ClusterTree<GRAPH> {
|
|||
|
||||
protected:
|
||||
/// @name Details
|
||||
/// @{
|
||||
|
||||
/// Assignment operator - makes a deep copy of the tree structure, but only pointers to factors
|
||||
/// are copied, factors are not cloned.
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ namespace gtsam {
|
|||
|
||||
/**
|
||||
* @brief DotWriter is a helper class for writing graphviz .dot files.
|
||||
* @addtogroup inference
|
||||
* @ingroup inference
|
||||
*/
|
||||
struct GTSAM_EXPORT DotWriter {
|
||||
double figureWidthInches; ///< The figure width on paper in inches
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
* -------------------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* @file EliminationTree-inl.h
|
||||
* @file EliminationTree-inst.h
|
||||
* @author Frank Dellaert
|
||||
* @author Richard Roberts
|
||||
* @date Oct 13, 2010
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
* -------------------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* @file FactorGraph-inl.h
|
||||
* @file FactorGraph-inst.h
|
||||
* @brief Factor Graph Base Class
|
||||
* @author Carlos Nieto
|
||||
* @author Frank Dellaert
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
* -------------------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* @file ISAM-inl.h
|
||||
* @file ISAM-inst.h
|
||||
* @brief Incremental update functionality (iSAM) for BayesTree.
|
||||
* @author Michael Kaess
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ namespace gtsam {
|
|||
* The tree structure and elimination method are exactly analagous to the EliminationTree,
|
||||
* except that in the JunctionTree, at each node multiple variables are eliminated at a time.
|
||||
*
|
||||
* \addtogroup Multifrontal
|
||||
* \ingroup Multifrontal
|
||||
* \nosubgrouping
|
||||
*/
|
||||
template<class BAYESTREE, class GRAPH>
|
||||
|
|
|
|||
|
|
@ -89,7 +89,8 @@ public:
|
|||
*/
|
||||
FastMap<Key, size_t> invert() const;
|
||||
|
||||
/// @name Fill-reducing Orderings @{
|
||||
/// @name Fill-reducing Orderings
|
||||
/// @{
|
||||
|
||||
/// Compute a fill-reducing ordering using COLAMD from a factor graph (see details for note on
|
||||
/// performance). This internally builds a VariableIndex so if you already have a VariableIndex,
|
||||
|
|
@ -215,7 +216,8 @@ public:
|
|||
|
||||
/// @}
|
||||
|
||||
/// @name Named Constructors @{
|
||||
/// @name Named Constructors
|
||||
/// @{
|
||||
|
||||
template<class FACTOR_GRAPH>
|
||||
static Ordering Create(OrderingType orderingType,
|
||||
|
|
@ -241,7 +243,8 @@ public:
|
|||
|
||||
/// @}
|
||||
|
||||
/// @name Testable @{
|
||||
/// @name Testable
|
||||
/// @{
|
||||
|
||||
GTSAM_EXPORT
|
||||
void print(const std::string& str = "", const KeyFormatter& keyFormatter =
|
||||
|
|
|
|||
|
|
@ -74,8 +74,8 @@ class AcceleratedPowerMethod : public PowerMethod<Operator> {
|
|||
|
||||
/**
|
||||
* Run accelerated power iteration to get ritzVector with beta and previous
|
||||
* two ritzVector x0 and x00, and return y = (A * x0 - \beta * x00) / || A * x0
|
||||
* - \beta * x00 ||
|
||||
* two ritzVector x0 and x00, and return
|
||||
* \f$y = (A * x0 - \beta * x00) / || A * x0 - \beta * x00 ||\f$
|
||||
*/
|
||||
Vector acceleratedPowerIteration (const Vector &x1, const Vector &x0,
|
||||
const double beta) const {
|
||||
|
|
@ -86,8 +86,8 @@ class AcceleratedPowerMethod : public PowerMethod<Operator> {
|
|||
|
||||
/**
|
||||
* Run accelerated power iteration to get ritzVector with beta and previous
|
||||
* two ritzVector x0 and x00, and return y = (A * x0 - \beta * x00) / || A * x0
|
||||
* - \beta * x00 ||
|
||||
* two ritzVector x0 and x00, and return
|
||||
* \f$y = (A * x0 - \beta * x00) / || A * x0 - \beta * x00 ||\f$
|
||||
*/
|
||||
Vector acceleratedPowerIteration () const {
|
||||
Vector y = acceleratedPowerIteration(this->ritzVector_, previousVector_, beta_);
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ namespace gtsam {
|
|||
|
||||
/**
|
||||
* GaussianBayesNet is a Bayes net made from linear-Gaussian conditionals.
|
||||
* @addtogroup linear
|
||||
* @ingroup linear
|
||||
*/
|
||||
class GTSAM_EXPORT GaussianBayesNet: public BayesNet<GaussianConditional>
|
||||
{
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ namespace gtsam {
|
|||
* A GaussianConditional functions as the node in a Bayes network.
|
||||
* It has a set of parents y,z, etc. and implements a probability density on x.
|
||||
* The negative log-probability is given by \f$ \frac{1}{2} |Rx - (d - Sy - Tz - ...)|^2 \f$
|
||||
* @addtogroup linear
|
||||
* @ingroup linear
|
||||
*/
|
||||
class GTSAM_EXPORT GaussianConditional :
|
||||
public JacobianFactor,
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ namespace gtsam {
|
|||
* A GaussianDensity is a GaussianConditional without parents.
|
||||
* The negative log-probability is given by \f$ |Rx - d|^2 \f$
|
||||
* with \f$ \Lambda = \Sigma^{-1} = R^T R \f$ and \f$ \mu = R^{-1} d \f$
|
||||
* @addtogroup linear
|
||||
* @ingroup linear
|
||||
*/
|
||||
class GTSAM_EXPORT GaussianDensity : public GaussianConditional {
|
||||
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ namespace gtsam {
|
|||
* factors stored in each cluster. It can be eliminated into a Gaussian Bayes tree with the same
|
||||
* structure, which is essentially doing multifrontal sparse matrix factorization.
|
||||
*
|
||||
* \addtogroup Multifrontal
|
||||
* \ingroup Multifrontal
|
||||
* \nosubgrouping
|
||||
*/
|
||||
class GTSAM_EXPORT GaussianJunctionTree :
|
||||
|
|
|
|||
|
|
@ -338,7 +338,7 @@ namespace gtsam {
|
|||
|
||||
/**
|
||||
* Compute the gradient at a key:
|
||||
* \grad f(x_i) = \sum_j G_ij*x_j - g_i
|
||||
* \f$ \grad f(x_i) = \sum_j G_ij*x_j - g_i \f$
|
||||
*/
|
||||
Vector gradient(Key key, const VectorValues& x) const override;
|
||||
|
||||
|
|
@ -385,7 +385,7 @@ namespace gtsam {
|
|||
* @param keys The variables to eliminate and their elimination ordering
|
||||
* @return The conditional and remaining factor
|
||||
*
|
||||
* \addtogroup LinearSolving */
|
||||
* \ingroup LinearSolving */
|
||||
GTSAM_EXPORT std::pair<boost::shared_ptr<GaussianConditional>, boost::shared_ptr<HessianFactor> >
|
||||
EliminateCholesky(const GaussianFactorGraph& factors, const Ordering& keys);
|
||||
|
||||
|
|
@ -403,7 +403,7 @@ GTSAM_EXPORT std::pair<boost::shared_ptr<GaussianConditional>, boost::shared_ptr
|
|||
* @param keys The variables to eliminate and their elimination ordering
|
||||
* @return The conditional and remaining factor
|
||||
*
|
||||
* \addtogroup LinearSolving */
|
||||
* \ingroup LinearSolving */
|
||||
GTSAM_EXPORT std::pair<boost::shared_ptr<GaussianConditional>, boost::shared_ptr<GaussianFactor> >
|
||||
EliminatePreferCholesky(const GaussianFactorGraph& factors, const Ordering& keys);
|
||||
|
||||
|
|
|
|||
|
|
@ -365,7 +365,7 @@ namespace gtsam {
|
|||
* @param keys The variables to eliminate in the order as specified here in \c keys
|
||||
* @return The conditional and remaining factor
|
||||
*
|
||||
* \addtogroup LinearSolving */
|
||||
* \ingroup LinearSolving */
|
||||
friend GTSAM_EXPORT std::pair<boost::shared_ptr<GaussianConditional>, shared_ptr>
|
||||
EliminateQR(const GaussianFactorGraph& factors, const Ordering& keys);
|
||||
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ namespace gtsam {
|
|||
* which is a view on the underlying data structure.
|
||||
*
|
||||
* This class is additionally used in gradient descent and dog leg to store the gradient.
|
||||
* @addtogroup linear
|
||||
* @ingroup linear
|
||||
*/
|
||||
class GTSAM_EXPORT VectorValues {
|
||||
protected:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,12 @@ namespace gtsam {
|
|||
|
||||
\mainpage GTSAM
|
||||
|
||||
\subpage GTSAM
|
||||
|
||||
\subpage GTSAM_UNSTABLE
|
||||
|
||||
\page GTSAM
|
||||
|
||||
\section new_factor_variable_types Creating new factor and variable types
|
||||
|
||||
GTSAM comes with a set of variable and factor types typically used in SFM and
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
* -------------------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* @file Pose3AttitudeFactor.h
|
||||
* @file AttitudeFactor.h
|
||||
* @author Frank Dellaert
|
||||
* @brief Header file for Attitude factor
|
||||
* @date January 28, 2014
|
||||
|
|
@ -29,7 +29,7 @@ namespace gtsam {
|
|||
* - measurement is direction of gravity in body frame bF
|
||||
* - reference is direction of gravity in navigation frame nG
|
||||
* This factor will give zero error if nRb * bF == nG
|
||||
* @addtogroup Navigation
|
||||
* @ingroup navigation
|
||||
*/
|
||||
class AttitudeFactor {
|
||||
|
||||
|
|
@ -74,7 +74,7 @@ public:
|
|||
|
||||
/**
|
||||
* Version of AttitudeFactor for Rot3
|
||||
* @addtogroup Navigation
|
||||
* @ingroup navigation
|
||||
*/
|
||||
class GTSAM_EXPORT Rot3AttitudeFactor: public NoiseModelFactor1<Rot3>, public AttitudeFactor {
|
||||
|
||||
|
|
@ -147,7 +147,7 @@ template<> struct traits<Rot3AttitudeFactor> : public Testable<Rot3AttitudeFacto
|
|||
|
||||
/**
|
||||
* Version of AttitudeFactor for Pose3
|
||||
* @addtogroup Navigation
|
||||
* @ingroup navigation
|
||||
*/
|
||||
class GTSAM_EXPORT Pose3AttitudeFactor: public NoiseModelFactor1<Pose3>,
|
||||
public AttitudeFactor {
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ namespace gtsam {
|
|||
* Model with a slowly moving bias to capture differences
|
||||
* between the height and the standard atmosphere
|
||||
* https://www.grc.nasa.gov/www/k-12/airplane/atmosmet.html
|
||||
* @addtogroup Navigation
|
||||
* @ingroup navigation
|
||||
*/
|
||||
class GTSAM_EXPORT BarometricFactor : public NoiseModelFactor2<Pose3, double> {
|
||||
private:
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue