diff --git a/gtsam/slam/doc/SmartProjectionFactor.ipynb b/gtsam/slam/doc/SmartProjectionFactor.ipynb index 51746ce34..ec4d3eae7 100644 --- a/gtsam/slam/doc/SmartProjectionFactor.ipynb +++ b/gtsam/slam/doc/SmartProjectionFactor.ipynb @@ -26,7 +26,10 @@ "- **Configuration:** Its behavior (linearization method, handling of degenerate triangulations) is controlled by `SmartProjectionParams`.\n", "\n", "**Use Case:** Suitable for Bundle Adjustment or SfM problems where calibration parameters are unknown or need refinement along with camera poses.\n", - "**Alternative:** If calibration is known and fixed, use `SmartProjectionPoseFactor` for better efficiency." + "**Alternative:** If calibration is known and fixed, use `SmartProjectionPoseFactor` for better efficiency.\n", + "\n", + "If you are using the factor, please cite:\n", + "> **L. Carlone, Z. Kira, C. Beall, V. Indelman, F. Dellaert**, \"Eliminating conditionally independent sets in factor graphs: a unifying perspective based on smart factors\", Int. Conf. on Robotics and Automation (ICRA), 2014." ] }, { diff --git a/gtsam/slam/doc/SmartProjectionPoseFactor.ipynb b/gtsam/slam/doc/SmartProjectionPoseFactor.ipynb index f48ff9191..da3559326 100644 --- a/gtsam/slam/doc/SmartProjectionPoseFactor.ipynb +++ b/gtsam/slam/doc/SmartProjectionPoseFactor.ipynb @@ -26,7 +26,10 @@ "- **Configuration:** Behavior is controlled by `SmartProjectionParams`.\n", "\n", "**Use Case:** Ideal for visual SLAM or SfM when camera intrinsics are pre-calibrated and assumed constant.\n", - "**Alternative:** If calibration also needs optimization, use `SmartProjectionFactor`." + "**Alternative:** If calibration also needs optimization, use `SmartProjectionFactor`.\n", + "\n", + "If you are using the factor, please cite:\n", + "> **L. Carlone, Z. Kira, C. Beall, V. Indelman, F. Dellaert**, \"Eliminating conditionally independent sets in factor graphs: a unifying perspective based on smart factors\", Int. Conf. on Robotics and Automation (ICRA), 2014." ] }, { diff --git a/gtsam/slam/slam.md b/gtsam/slam/slam.md index 4ae7875c7..748743a49 100644 --- a/gtsam/slam/slam.md +++ b/gtsam/slam/slam.md @@ -1,26 +1,24 @@ -# SLAM Factors and Algorithms +# SLAM The `slam` module provides a collection of factors, constraints, utilities, and initialization algorithms commonly used in Simultaneous Localization and Mapping (SLAM) and Structure from Motion (SfM) applications. It builds upon the core GTSAM inference engine (`gtsam/inference`) and geometric types (`gtsam/geometry`). ## Core Factors These are fundamental factor types often used as building blocks in SLAM. - -- [BetweenFactor](doc/BetweenFactor.ipynb) : Represents relative measurements between two poses or other Lie group variables (e.g., odometry). -- [PoseRotationPrior](doc/PoseRotationPrior.ipynb) : A prior factor acting only on the rotation component of a pose variable. -- [PoseTranslationPrior](doc/PoseTranslationPrior.ipynb) : A prior factor acting only on the translation component of a pose variable. +- [PriorFactor](doc/PriorFactor.ipynb) : A prior factor acting only on the rotation component of a pose variable. +- [BetweenFactor](doc/BetweenFactor.ipynb) : Represents relative measurements between two poses or other Lie group variables (e.g., derived from [odometry](https://en.wikipedia.org/wiki/Odometry)). ## Visual SLAM/SfM Factors Factors specifically designed for visual data (camera measurements). - [GenericProjectionFactor](doc/GenericProjectionFactor.ipynb) : Standard monocular projection factor relating a 3D landmark, camera pose, and fixed calibration to a 2D measurement. -- [StereoFactor](doc/StereoFactor.ipynb) : Standard stereo projection factor relating a 3D landmark, camera pose, and fixed stereo calibration to a `StereoPoint2` measurement. -- [PlanarProjectionFactor](doc/PlanarProjectionFactor.ipynb) : Projection factors specialized for robots moving on a 2D plane. - [GeneralSFMFactor](doc/GeneralSFMFactor.ipynb) : Projection factors used when camera calibration is unknown or optimized alongside poses and landmarks. +- [StereoFactor](doc/StereoFactor.ipynb) : Standard stereo projection factor relating a 3D landmark, camera pose, and fixed stereo calibration to a `StereoPoint2` measurement. - [EssentialMatrixFactor](doc/EssentialMatrixFactor.ipynb) : Factors constraining poses or calibration based on the Essential matrix derived from calibrated cameras. - [EssentialMatrixConstraint](doc/EssentialMatrixConstraint.ipynb) : Factor constraining the relative pose between two cameras based on a measured Essential matrix. - [TriangulationFactor](doc/TriangulationFactor.ipynb) : Factor constraining a 3D point based on a measurement from a single known camera view, useful for triangulation. +- [PlanarProjectionFactor](doc/PlanarProjectionFactor.ipynb) : Projection factors specialized for robots moving on a 2D plane. ## Smart Factors @@ -36,6 +34,8 @@ Factors that implicitly manage landmark variables, marginalizing them out during Factors representing various geometric relationships or constraints. +- [PoseRotationPrior](doc/PoseRotationPrior.ipynb) : A prior factor acting only on the rotation component of a pose variable. +- [PoseTranslationPrior](doc/PoseTranslationPrior.ipynb) : A prior factor acting only on the translation component of a pose variable. - [OrientedPlane3Factor](doc/OrientedPlane3Factor.ipynb) : Factors for estimating and constraining 3D planar landmarks (`OrientedPlane3`). - [RotateFactor](doc/RotateFactor.ipynb) : Factors constraining an unknown rotation based on how it transforms measured rotations or directions. - [KarcherMeanFactor](doc/KarcherMeanFactor.ipynb) : Factor for constraining the Karcher mean (geometric average) of a set of rotations or other manifold values.