Mermaid diagram
							parent
							
								
									c2f9c5e4af
								
							
						
					
					
						commit
						b29ca85739
					
				|  | @ -33,4 +33,101 @@ The `navigation` module in GTSAM provides specialized tools for inertial navigat | |||
| - **[AcceleratingScenario](https://github.com/borglab/gtsam/blob/develop/gtsam/navigation/Scenario.h)**: Implements constantly accelerating motion. | ||||
| - **[ScenarioRunner](https://github.com/borglab/gtsam/blob/develop/gtsam/navigation/ScenarioRunner.h)**: Executes scenarios and generates IMU measurements. | ||||
| 
 | ||||
| These components together provide a comprehensive framework for fusing inertial data with other sensor measurements in navigation and robotics applications. | ||||
| # IMU Factor and Preintegration Overview | ||||
| 
 | ||||
| This document provides an overview of the key classes involved in IMU preintegration and factor creation within the `gtsam/navigation` module. These components are essential for performing state estimation using Inertial Measurement Unit data, often fused with other sensors like cameras or GPS. | ||||
| 
 | ||||
| ## Class Relationship Diagram (Mermaid) | ||||
| 
 | ||||
| ```mermaid | ||||
| classDiagram | ||||
|     direction TD | ||||
| 
 | ||||
|     class PreintegratedRotationParams { | ||||
|         +Matrix3 gyroscopeCovariance | ||||
|         +Vector3 omegaCoriolis | ||||
|         +Pose3 body_P_sensor | ||||
|     } | ||||
|     class PreintegrationParams { | ||||
|         +Matrix3 accelerometerCovariance | ||||
|         +Matrix3 integrationCovariance | ||||
|         +bool use2ndOrderCoriolis | ||||
|         +Vector3 n_gravity | ||||
|     } | ||||
|     PreintegrationParams --|> PreintegratedRotationParams : inherits | ||||
| 
 | ||||
|     class PreintegrationCombinedParams { | ||||
|         +Matrix3 biasAccCovariance | ||||
|         +Matrix3 biasOmegaCovariance | ||||
|         +Matrix6 biasAccOmegaInt | ||||
|     } | ||||
|     PreintegrationCombinedParams --|> PreintegrationParams : inherits | ||||
| 
 | ||||
|     class PreintegratedRotation { | ||||
|         +double deltaTij_ | ||||
|         +Rot3 deltaRij_ | ||||
|         +Matrix3 delRdelBiasOmega_ | ||||
|         +integrateGyroMeasurement() | ||||
|         +biascorrectedDeltaRij() | ||||
|     } | ||||
|     PreintegratedRotation ..> PreintegratedRotationParams : uses | ||||
| 
 | ||||
|     class PreintegrationBase { | ||||
|         <<Abstract>> | ||||
|         +imuBias::ConstantBias biasHat_ | ||||
|         +resetIntegration()* | ||||
|         +integrateMeasurement()* | ||||
|         +biasCorrectedDelta()* | ||||
|         +predict() | ||||
|         +computeError() | ||||
|     } | ||||
|     PreintegrationBase --|> PreintegratedRotation : inherits | ||||
| 
 | ||||
|     class ManifoldPreintegration { | ||||
|         +NavState deltaXij_ | ||||
|         +update() | ||||
|     } | ||||
|     ManifoldPreintegration --|> PreintegrationBase : implements | ||||
| 
 | ||||
|     class TangentPreintegration { | ||||
|         +Vector9 preintegrated_ | ||||
|         +Matrix93 preintegrated_H_biasAcc_ | ||||
|         +Matrix93 preintegrated_H_biasOmega_ | ||||
|         +update() | ||||
|     } | ||||
|     TangentPreintegration --|> PreintegrationBase : implements | ||||
| 
 | ||||
|     class PreintegratedAhrsMeasurements { | ||||
|        +Matrix3 preintMeasCov_ | ||||
|     } | ||||
|     PreintegratedAhrsMeasurements --|> PreintegratedRotation : inherits | ||||
| 
 | ||||
|     %% Assuming PreintegrationType is TangentPreintegration for example %% | ||||
|     %% Change TangentPreintegration to ManifoldPreintegration if needed %% | ||||
|     PreintegratedImuMeasurements --|> TangentPreintegration : inherits | ||||
|     class PreintegratedImuMeasurements { | ||||
|         +Matrix9 preintMeasCov_ | ||||
|     } | ||||
| 
 | ||||
|     PreintegratedCombinedMeasurements --|> TangentPreintegration : inherits | ||||
|     class PreintegratedCombinedMeasurements { | ||||
|        +Matrix preintMeasCov_ (15x15) | ||||
|     } | ||||
|     PreintegratedCombinedMeasurements ..> PreintegrationCombinedParams : uses | ||||
| 
 | ||||
|     class ImuFactor { | ||||
|     } | ||||
|     ImuFactor ..> PreintegratedImuMeasurements : uses | ||||
| 
 | ||||
|     class ImuFactor2 { | ||||
|     } | ||||
|     ImuFactor2 ..> PreintegratedImuMeasurements : uses | ||||
| 
 | ||||
|     class CombinedImuFactor { | ||||
|     } | ||||
|     CombinedImuFactor ..> PreintegratedCombinedMeasurements : uses | ||||
| 
 | ||||
|     class AHRSFactor { | ||||
|     } | ||||
|     AHRSFactor ..> PreintegratedAhrsMeasurements : uses | ||||
| ``` | ||||
		Loading…
	
		Reference in New Issue