gtsam/gtsam/navigation
Frank Dellaert b762707af4
Merge pull request #1968 from qnx-ports/develop
QNX Compatibility
2025-01-24 17:33:23 -05:00
..
tests Fix c++20 issue 2025-01-22 23:45:32 -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 replace #ifdef with #if for GTSAM_ENABLE_BOOST_SERIALIZATION 2024-12-26 23:44:00 -05: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 remove extra semi-colon 2023-03-17 18:00:18 -04:00
GPSFactor.cpp adding GPSFactors with lever arm as state 2025-01-16 21:27:42 +01:00
GPSFactor.h adding GPSFactors with lever arm as state 2025-01-16 21:27:42 +01: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 replace #ifdef with #if for GTSAM_ENABLE_BOOST_SERIALIZATION 2024-12-26 23:44:00 -05: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 Last comment I hope 2025-01-16 00:54:49 -05:00
NavState.h replace #ifdef with #if for GTSAM_ENABLE_BOOST_SERIALIZATION 2024-12-26 23:44:00 -05:00
PreintegratedRotation.cpp Simplify code as we know the Jacobian = R 2024-08-12 19:55:06 -07:00
PreintegratedRotation.h replace #ifdef with #if for GTSAM_ENABLE_BOOST_SERIALIZATION 2024-12-26 23:44:00 -05: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 Added handy NavState expressions 2019-05-30 10:52:06 -04:00
navigation.i reverting changes to existing factors 2025-01-15 11:54:41 +01: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.