gtsam/gtsam/navigation
Frank Dellaert 5eaba687de Add files and links 2025-04-07 17:45:29 -04:00
..
doc Add files and links 2025-04-07 17:45:29 -04:00
tests MatrixLieGroup in navigation 2025-03-08 15:26:15 -05:00
.gitignore ignore temp files 2014-02-13 14:57:33 -05:00
AHRSFactor.cpp Fixed derivative with transform, deprecated integrateMeasurement 2024-06-09 10:07:57 -07:00
AHRSFactor.h Add docs for AHRS-related classes 2025-04-05 19:01:04 -04:00
AttitudeFactor.cpp Switch measured/reference language. 2024-10-30 12:05:57 -07:00
AttitudeFactor.h replace #ifdef with #if for GTSAM_ENABLE_BOOST_SERIALIZATION 2024-12-26 23:44:00 -05:00
AttitudeFactor.md Switch measured/reference language. 2024-10-30 12:05:57 -07:00
BarometricFactor.cpp changed signatures to use OptionalMatrix keyword 2023-01-20 18:06:55 -08:00
BarometricFactor.h replace #ifdef with #if for GTSAM_ENABLE_BOOST_SERIALIZATION 2024-12-26 23:44:00 -05:00
CMakeLists.txt Updated QNX-relevant paths, removed environment variables. (#2) 2025-01-16 09:57:29 -05:00
CombinedImuFactor.cpp replace #ifdef with #if for GTSAM_ENABLE_BOOST_SERIALIZATION 2024-12-26 23:44:00 -05:00
CombinedImuFactor.h Merge pull request #1943 from borglab/improvements 2025-01-10 12:51:48 -05:00
ConstantVelocityFactor.h ConstantVelocityFactor + wrapping 2025-04-07 16:01:22 -04:00
GPSFactor.cpp GPSFactor + wrapping 2025-04-07 16:23:14 -04:00
GPSFactor.h GPSFactor + wrapping 2025-04-07 16:23:14 -04:00
ImuBias.cpp linear, navigation, std::optional serialization tests 2023-01-21 09:27:20 -08:00
ImuBias.h replace #ifdef with #if for GTSAM_ENABLE_BOOST_SERIALIZATION 2024-12-26 23:44:00 -05:00
ImuFactor.cpp Cleanup some includes and fix cassert 2024-12-11 14:05:05 -05:00
ImuFactor.h Merge pull request #1943 from borglab/improvements 2025-01-10 12:51:48 -05:00
MagFactor.h replaced casts 2023-01-22 08:40:02 -08:00
MagPoseFactor.h MagPoseFactor + wrapping 2025-04-07 17:01:02 -04:00
ManifoldPreintegration.cpp add curly braces to make code more readable 2023-03-17 15:50:03 -04:00
ManifoldPreintegration.h replace #ifdef with #if for GTSAM_ENABLE_BOOST_SERIALIZATION 2024-12-26 23:44:00 -05:00
NavState.cpp Hat and Vee in navigation 2025-03-08 14:21:12 -05:00
NavState.h MatrixLieGroup in navigation 2025-03-08 15:26:15 -05:00
PreintegratedRotation.cpp Add PreintegratedRotation to wrapper 2025-04-05 19:00:25 -04:00
PreintegratedRotation.h Add PreintegratedRotation to wrapper 2025-04-05 19:00:25 -04:00
PreintegrationBase.cpp Cleanup some includes and fix cassert 2024-12-11 14:05:05 -05:00
PreintegrationBase.h replace #ifdef with #if for GTSAM_ENABLE_BOOST_SERIALIZATION 2024-12-26 23:44:00 -05:00
PreintegrationCombinedParams.h replace #ifdef with #if for GTSAM_ENABLE_BOOST_SERIALIZATION 2024-12-26 23:44:00 -05:00
PreintegrationParams.cpp printing updates 2022-03-11 08:42:08 -05:00
PreintegrationParams.h replace #ifdef with #if for GTSAM_ENABLE_BOOST_SERIALIZATION 2024-12-26 23:44:00 -05:00
README.md Added README 2024-09-30 14:14:46 -07:00
Scenario.h Added virtual destructors to avoid warnings (on Mac) and fixed some lint warnings. 2018-12-30 13:01:43 -05:00
ScenarioRunner.cpp Merge branch 'develop' into combined-imu-factor 2023-03-01 15:50:54 -05:00
ScenarioRunner.h Merge branch 'develop' into combined-imu-factor 2023-03-01 15:50:54 -05:00
TangentPreintegration.cpp add curly braces to make code more readable 2023-03-17 15:50:03 -04:00
TangentPreintegration.h replace #ifdef with #if for GTSAM_ENABLE_BOOST_SERIALIZATION 2024-12-26 23:44:00 -05:00
expressions.h Fix ODR violations in Navigation expressions 2025-03-09 19:41:58 -07:00
navigation.i MagPoseFactor + wrapping 2025-04-07 17:01:02 -04:00
navigation.md Add files and links 2025-04-07 17:45:29 -04:00

README.md

Navigation Factors

This directory contains factors related to navigation, including various IMU factors.

IMU Factor:

IMU Factor Diagram

The ImuFactor is a 5-ways factor involving previous state (pose and velocity of the vehicle at previous time step), current state (pose and velocity at current time step), and the bias estimate. Following the preintegration scheme proposed in [2], the ImuFactor includes many IMU measurements, which are "summarized" using the PreintegratedIMUMeasurements class. The figure above, courtesy of Mathworks' navigation toolbox, which are also using our work, shows the factor graph fragment for two time slices.

Note that this factor does not model "temporal consistency" of the biases (which are usually slowly varying quantities), which is up to the caller. See also CombinedImuFactor for a class that does this for you.

If you are using the factor, please cite:

Christian Forster, Luca Carlone, Frank Dellaert, and Davide Scaramuzza, "On-Manifold Preintegration for Real-Time Visual-Inertial Odometry", IEEE Transactions on Robotics, 2017.

REFERENCES:

  1. G.S. Chirikjian, "Stochastic Models, Information Theory, and Lie Groups", Volume 2, 2008.
  2. T. Lupton and S.Sukkarieh, "Visual-Inertial-Aided Navigation for High-Dynamic Motion in Built Environments Without Initial Conditions", TRO, 28(1):61-76, 2012.
  3. L. Carlone, S. Williams, R. Roberts, "Preintegrated IMU factor: Computation of the Jacobian Matrices", Tech. Report, 2013. Available in this repo as "PreintegratedIMUJacobians.pdf".
  4. C. Forster, L. Carlone, F. Dellaert, D. Scaramuzza, "IMU Preintegration on Manifold for Efficient Visual-Inertial Maximum-a-Posteriori Estimation", Robotics: Science and Systems (RSS), 2015.

The Attitude Factor

The AttitudeFactor in GTSAM is a factor that constrains the orientation (attitude) of a robot or sensor platform based on directional measurements. Both Rot3 and Pose3 versions are available.

Written up in detail with the help of ChatGPT here.