gtsam/gtsam/navigation
Fan Jiang ed098eaec6 Cleanup some includes and fix cassert 2024-12-11 14:05:05 -05:00
..
tests Switch measured/reference language. 2024-10-30 12:05:57 -07: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 gtsam compiles and tests run with and without boost serialization 2023-01-22 22:16:46 -08:00
AttitudeFactor.cpp Switch measured/reference language. 2024-10-30 12:05:57 -07:00
AttitudeFactor.h Switch measured/reference language. 2024-10-30 12:05:57 -07: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 wrap barometric factor 2024-02-22 15:07:24 -05: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
CombinedImuFactor.cpp Merge branch 'develop' into combined-imu-factor 2023-03-01 15:50:54 -05:00
CombinedImuFactor.h Merge branch 'develop' into combined-imu-factor 2023-03-01 15:50:54 -05:00
ConstantVelocityFactor.h remove extra semi-colon 2023-03-17 18:00:18 -04:00
GPSFactor.cpp some changes that get testPriorFactor compiling 2023-01-20 18:06:55 -08:00
GPSFactor.h gtsam compiles and tests run with and without boost serialization 2023-01-22 22:16:46 -08:00
ImuBias.cpp linear, navigation, std::optional serialization tests 2023-01-21 09:27:20 -08:00
ImuBias.h removed boost serialization headers 2023-01-22 22:15:06 -08:00
ImuFactor.cpp Cleanup some includes and fix cassert 2024-12-11 14:05:05 -05:00
ImuFactor.h Added README 2024-09-30 14:14:46 -07:00
MagFactor.h replaced casts 2023-01-22 08:40:02 -08:00
MagPoseFactor.h serialization function comment moved 2023-01-22 22:14:28 -08:00
ManifoldPreintegration.cpp add curly braces to make code more readable 2023-03-17 15:50:03 -04:00
ManifoldPreintegration.h fix doc typo 2023-03-17 15:49:03 -04:00
NavState.cpp replace structured binding with exclusive access 2023-12-29 14:43:39 -05:00
NavState.h ifdefs for gtsam folder on serialize 2023-01-22 22:12:16 -08:00
PreintegratedRotation.cpp Simplify code as we know the Jacobian = R 2024-08-12 19:55:06 -07:00
PreintegratedRotation.h Fix comments 2024-07-25 09:58:00 -05:00
PreintegrationBase.cpp Cleanup some includes and fix cassert 2024-12-11 14:05:05 -05:00
PreintegrationBase.h serialization function comment moved 2023-01-22 22:14:28 -08:00
PreintegrationCombinedParams.h removed self include 2024-03-22 17:50:06 +01:00
PreintegrationParams.cpp printing updates 2022-03-11 08:42:08 -05:00
PreintegrationParams.h Get rid of 'shadow-field' errors/warnings 2023-03-06 15:21:11 -08: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 serialization function comment moved 2023-01-22 22:14:28 -08:00
expressions.h Added handy NavState expressions 2019-05-30 10:52:06 -04:00
navigation.i Switch measured/reference language. 2024-10-30 12:05:57 -07: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.