gtsam/gtsam/slam
Varun Agrawal 1f6816d974 Merge branch 'develop' into fix/doxygen 2022-08-22 17:37:03 -04:00
..
tests Capitalize Identity trait since it is static 2022-07-07 12:31:27 -04:00
AntiFactor.h update the groups 2022-07-26 16:44:30 -04:00
BearingFactor.h remove trailing spaces 2019-02-11 10:58:34 -05:00
BearingRangeFactor.h Moved BearingRangeFactor to SAM 2015-07-12 18:57:26 -07:00
BetweenFactor.h update the groups 2022-07-26 16:44:30 -04:00
BoundingConstraint.h update the groups 2022-07-26 16:44:30 -04:00
CMakeLists.txt Building timing scripts using new timing script support in GtsamTesting.cmake. Fixed compile errors in timing scripts but disabled a couple. 2014-06-07 19:02:11 -07:00
EssentialMatrixConstraint.cpp Prefer C++11 nullptr 2020-04-06 23:31:05 +02:00
EssentialMatrixConstraint.h update the groups 2022-07-26 16:44:30 -04:00
EssentialMatrixFactor.h Fix spelling 2021-12-11 13:56:17 -05:00
FrobeniusFactor.cpp use goto flow 2020-11-30 17:32:02 -05:00
FrobeniusFactor.h fixed dllexport issues in slam, only tests failing 2022-02-17 10:44:28 -05:00
GeneralSFMFactor.h update the groups 2022-07-26 16:44:30 -04:00
InitializePose.h Removed reference for iterating over values. Also used auto where I could, when changing. 2021-01-04 20:46:16 -05:00
InitializePose3.cpp Removed reference for iterating over values. Also used auto where I could, when changing. 2021-01-04 20:46:16 -05:00
InitializePose3.h Moved common code to InitializePose 2020-08-19 16:31:15 -04:00
JacobianFactorQ.h Use KeyVector everywhere to avoid conversions 2018-11-08 10:10:32 -05:00
JacobianFactorQR.h Use KeyVector everywhere to avoid conversions 2018-11-08 10:10:32 -05:00
JacobianFactorSVD.h Documented linear factors better. 2021-08-29 16:33:50 -04:00
KarcherMeanFactor-inl.h Remove SFINAE from KarcherMean so we can also use it for Rot2 2022-02-06 12:14:35 -05:00
KarcherMeanFactor.h Fix override warnings: modernize-use-override 2021-01-28 23:02:13 -05:00
OrientedPlane3Factor.cpp Tidy up comments and use cpplint 2021-02-16 11:48:26 +00:00
OrientedPlane3Factor.h fixed dllexport issues in slam, only tests failing 2022-02-17 10:44:28 -05:00
PoseRotationPrior.h Add default constructor to PoseRotationPrior to fix serialization 2022-02-03 21:50:55 -08:00
PoseTranslationPrior.h Fix override warnings: modernize-use-override 2021-01-28 23:02:13 -05:00
PriorFactor.h Make small commit to re-trigger travis build. 2020-04-13 10:37:35 -04:00
ProjectionFactor.h update the groups 2022-07-26 16:44:30 -04:00
README.md renamed README 2021-12-04 11:51:23 -05:00
RangeFactor.h remove trailing spaces 2019-02-11 10:58:34 -05:00
ReferenceFrameFactor.h Fix override warnings: modernize-use-override 2021-01-28 23:02:13 -05:00
RegularImplicitSchurFactor.h Moved empty to Factor base class. 2021-12-31 16:16:56 -05:00
RotateFactor.h Revert "remove deprecated Unit3::error() which is replaced by Unit3::errorVector()" 2021-02-16 10:16:21 +00:00
SmartFactorBase.h Per https://github.com/borglab/gtsam/blob/develop/Using-GTSAM-EXPORT.md , classes with no methods defined in a .cpp file shouldn't have the GTSAM_EXPORT or GTSAM_UNSTABLE_EXPORT modifier. This was causing problems with the building of gtsam_unstable on MSVC / Windows. 2022-02-15 00:19:54 -08:00
SmartFactorParams.h fix doxygen warnings due to groups and and incorrect filenames 2022-07-26 16:38:51 -04:00
SmartProjectionFactor.h modernized factor 2021-10-02 21:00:25 -04:00
SmartProjectionPoseFactor.h update the groups 2022-07-26 16:44:30 -04:00
SmartProjectionRigFactor.h update the groups 2022-07-26 16:44:30 -04:00
StereoFactor.h update the groups 2022-07-26 16:44:30 -04:00
TriangulationFactor.h update the groups 2022-07-26 16:44:30 -04:00
dataset.cpp formatting updates 2022-02-17 11:21:51 -05:00
dataset.h Merge branch 'develop' into ta-add-methods 2022-05-09 22:49:34 -07:00
expressions.h Merge branch 'develop' into feature/sphericalCamera 2021-11-07 12:02:33 -05:00
lago.cpp Merge branch 'develop' into feature/sphericalCamera 2021-11-07 12:02:33 -05:00
lago.h Moved LAGO to slam 2014-06-01 12:25:23 -04:00
slam.i Wrap GeneralSFMFactor for PinholePose 2022-05-03 13:55:08 -04:00

README.md

SLAM Factors

GenericProjectionFactor (defined in ProjectionFactor.h)

Non-linear factor that minimizes the re-projection error with respect to a 2D measurement. The calibration is assumed known and passed in the constructor. The main building block for visual SLAM.

Templated on

  • POSE, default Pose3
  • LANDMARK, default Point3
  • CALIBRATION, default Cal3_S2

SmartFactors

These are "structure-less" factors, i.e., rather than introducing a new variable for an observed 3D point or landmark, a single factor is created that provides a multi-view constraint on several poses and/or cameras. While one typically adds multiple GenericProjectionFactors (one for each observation of a landmark), a SmartFactor collects all measurements for a landmark, i.e., the factor graph contains 1 smart factor per landmark.

SmartFactorBase

This is the base class for smart factors, templated on a CAMERA type. It has no internal point, but it saves the measurements, keeps a noise model, and an optional sensor pose.

SmartProjectionFactor

Also templated on CAMERA. Triangulates a 3D point and keeps an estimate of it around. This factor operates with monocular cameras, and is used to optimize the camera pose and calibration for each camera, and requires variables of type CAMERA in values.

If the calibration is fixed use SmartProjectionPoseFactor instead!

SmartProjectionPoseFactor

Derives from SmartProjectionFactor but is templated on a CALIBRATION type, setting CAMERA = PinholePose<CALIBRATION>. This factor assumes that the camera calibration is fixed and the same for all cameras involved in this factor. The factor only constrains poses.

If the calibration should be optimized, as well, use SmartProjectionFactor instead!

SmartProjectionRigFactor

Same as SmartProjectionPoseFactor, except:

  • it is templated on CAMERA, i.e., it allows cameras beyond pinhole;
  • it allows measurements from multiple cameras, each camera with fixed but potentially different intrinsics and extrinsics;
  • it allows multiple observations from the same pose/key, again, to model a multi-camera system.

Linearized Smart Factors

The factors below are less likely to be relevant to the user, but result from using the non-linear smart factors above.

RegularImplicitSchurFactor

A specialization of a GaussianFactor to structure-less SFM, which is very fast in a conjugate gradient (CG) solver. It is produced by calling createRegularImplicitSchurFactor in SmartFactorBase or SmartProjectionFactor.

JacobianFactorQ

A RegularJacobianFactor that uses some badly documented reduction on the Jacobians.

JacobianFactorQR

A RegularJacobianFactor that eliminates a point using sequential elimination.

JacobianFactorQR

A RegularJacobianFactor that uses the "Nullspace Trick" by Mourikis et al. See the documentation in the file, which is well documented.