navlie

  • Home
  • Tutorial
  • API
  • navlie.composite
    • navlie.composite.CompositeInput
    • navlie.composite.CompositeMeasurement
    • navlie.composite.CompositeMeasurementModel
    • navlie.composite.CompositeProcessModel
    • navlie.composite.CompositeState
  • navlie.datagen
    • navlie.datagen.generate_measurement
    • navlie.datagen.DataGenerator
  • navlie.filters
    • navlie.filters.check_outlier
    • navlie.filters.generate_sigmapoints
    • navlie.filters.mean_state
    • navlie.filters.run_filter
    • navlie.filters.run_gsf_filter
    • navlie.filters.run_imm_filter
    • navlie.filters.CubatureKalmanFilter
    • navlie.filters.ExtendedKalmanFilter
    • navlie.filters.GaussHermiteKalmanFilter
    • navlie.filters.GaussianSumFilter
    • navlie.filters.InteractingModelFilter
    • navlie.filters.IteratedKalmanFilter
    • navlie.filters.SigmaPointKalmanFilter
    • navlie.filters.UnscentedKalmanFilter
  • navlie.types
    • navlie.types.Dataset
    • navlie.types.Input
    • navlie.types.Measurement
    • navlie.types.MeasurementModel
    • navlie.types.ProcessModel
    • navlie.types.State
    • navlie.types.StateWithCovariance
  • navlie.utils
    • navlie.utils.alignment
      • navlie.utils.alignment.associate_and_align_trajectories
      • navlie.utils.alignment.evo_traj_to_state_list
      • navlie.utils.alignment.state_list_to_evo_traj
    • navlie.utils.common
      • navlie.utils.common.associate_stamps
      • navlie.utils.common.find_nearest_stamp_idx
      • navlie.utils.common.jacobian
      • navlie.utils.common.load_tum_trajectory
      • navlie.utils.common.monte_carlo
      • navlie.utils.common.randvec
      • navlie.utils.common.schedule_sequential_measurements
      • navlie.utils.common.state_interp
      • navlie.utils.common.van_loans
      • navlie.utils.common.GaussianResult
      • navlie.utils.common.GaussianResultList
      • navlie.utils.common.MixtureResult
      • navlie.utils.common.MixtureResultList
      • navlie.utils.common.MonteCarloResult
    • navlie.utils.mixture
      • navlie.utils.mixture.gaussian_mixing
      • navlie.utils.mixture.gaussian_mixing_vectorspace
      • navlie.utils.mixture.reparametrize_gaussians_about_X_par
      • navlie.utils.mixture.update_X
    • navlie.utils.plot
      • navlie.utils.plot.plot_camera_poses
      • navlie.utils.plot.plot_error
      • navlie.utils.plot.plot_meas
      • navlie.utils.plot.plot_meas_by_model
      • navlie.utils.plot.plot_nees
      • navlie.utils.plot.plot_poses
      • navlie.utils.plot.set_axes_equal
      • navlie.utils.plot.CameraPoseVisualizer
  • navlie.batch
    • navlie.batch.estimator
      • navlie.batch.estimator.BatchEstimator
    • navlie.batch.gaussian_mixtures
      • navlie.batch.gaussian_mixtures.GaussianMixtureResidual
      • navlie.batch.gaussian_mixtures.HessianSumMixtureResidual
      • navlie.batch.gaussian_mixtures.MaxMixtureResidual
      • navlie.batch.gaussian_mixtures.MaxSumMixtureResidual
      • navlie.batch.gaussian_mixtures.SumMixtureResidual
    • navlie.batch.losses
      • navlie.batch.losses.CauchyLoss
      • navlie.batch.losses.L2Loss
      • navlie.batch.losses.LossFunction
    • navlie.batch.problem
      • navlie.batch.problem.OptimizationSummary
      • navlie.batch.problem.Problem
    • navlie.batch.residuals
      • navlie.batch.residuals.MeasurementResidual
      • navlie.batch.residuals.PriorResidual
      • navlie.batch.residuals.ProcessResidual
      • navlie.batch.residuals.Residual
  • navlie.lib
    • navlie.lib.camera
      • navlie.lib.camera.PinholeCamera
      • navlie.lib.camera.PoseMatrix
    • navlie.lib.datasets
      • navlie.lib.datasets.generate_landmark_positions
      • navlie.lib.datasets.SimulatedInertialGPSDataset
      • navlie.lib.datasets.SimulatedInertialLandmarkDataset
      • navlie.lib.datasets.SimulatedPoseRangingDataset
    • navlie.lib.imu
      • navlie.lib.imu.G_matrix
      • navlie.lib.imu.G_matrix_inv
      • navlie.lib.imu.L_matrix
      • navlie.lib.imu.M_matrix
      • navlie.lib.imu.N_matrix
      • navlie.lib.imu.U_matrix
      • navlie.lib.imu.U_matrix_inv
      • navlie.lib.imu.U_tilde_matrix
      • navlie.lib.imu.adjoint_IE3
      • navlie.lib.imu.delta_matrix
      • navlie.lib.imu.get_unbiased_imu
      • navlie.lib.imu.inverse_IE3
      • navlie.lib.imu.IMU
      • navlie.lib.imu.IMUKinematics
      • navlie.lib.imu.IMUState
    • navlie.lib.models
      • navlie.lib.models.AbsolutePosition
      • navlie.lib.models.AbsoluteVelocity
      • navlie.lib.models.Altitude
      • navlie.lib.models.BodyFrameVelocity
      • navlie.lib.models.CameraProjection
      • navlie.lib.models.DoubleIntegrator
      • navlie.lib.models.DoubleIntegratorWithBias
      • navlie.lib.models.GlobalPosition
      • navlie.lib.models.Gravitometer
      • navlie.lib.models.InvariantMeasurement
      • navlie.lib.models.InvariantPointRelativePosition
      • navlie.lib.models.LinearMeasurement
      • navlie.lib.models.Magnetometer
      • navlie.lib.models.OneDimensionalPositionVelocityRange
      • navlie.lib.models.PointRelativePosition
      • navlie.lib.models.PointRelativePositionSLAM
      • navlie.lib.models.RangePointToAnchor
      • navlie.lib.models.RangePoseToAnchor
      • navlie.lib.models.RangePoseToPose
      • navlie.lib.models.RangeRelativePose
      • navlie.lib.models.RelativeBodyFrameVelocity
      • navlie.lib.models.SingleIntegrator
    • navlie.lib.preintegration
      • navlie.lib.preintegration.AngularVelocityIncrement
      • navlie.lib.preintegration.BodyVelocityIncrement
      • navlie.lib.preintegration.IMUIncrement
      • navlie.lib.preintegration.LinearIncrement
      • navlie.lib.preintegration.PreintegratedAngularVelocity
      • navlie.lib.preintegration.PreintegratedBodyVelocity
      • navlie.lib.preintegration.PreintegratedIMUKinematics
      • navlie.lib.preintegration.PreintegratedLinearModel
      • navlie.lib.preintegration.PreintegratedWheelOdometry
      • navlie.lib.preintegration.RelativeMotionIncrement
      • navlie.lib.preintegration.WheelOdometryIncrement
    • navlie.lib.states
      • navlie.lib.states.MatrixLieGroupState
      • navlie.lib.states.MixtureState
      • navlie.lib.states.SE23State
      • navlie.lib.states.SE2State
      • navlie.lib.states.SE3State
      • navlie.lib.states.SL3State
      • navlie.lib.states.SO2State
      • navlie.lib.states.SO3State
      • navlie.lib.states.StampedValue
      • navlie.lib.states.VectorInput
      • navlie.lib.states.VectorState
  • navlie.bspline
    • navlie.bspline.SE3Bspline
On this page
  • LinearIncrement
    • LinearIncrement.dof
    • LinearIncrement.state_id
    • LinearIncrement.original_value
    • LinearIncrement.covariance
    • LinearIncrement.bias_jacobian
    • LinearIncrement.original_bias
    • LinearIncrement.new_bias
    • LinearIncrement.stamps
    • LinearIncrement.increment()
    • LinearIncrement.update_bias()
    • LinearIncrement.value
    • LinearIncrement.plus()
    • LinearIncrement.copy()
    • LinearIncrement.new()
    • LinearIncrement.stamp
    • LinearIncrement.symmetrize()

navlie.lib.preintegration.LinearIncrement¶

class navlie.lib.preintegration.LinearIncrement(input_covariance: ndarray, state_matrix: Callable[[VectorInput, float], ndarray], input_matrix: Callable[[VectorInput, float], ndarray], dof: int, bias: ndarray | None = None, state_id: Any | None = None)¶

Bases: RelativeMotionIncrement

This class preintegrates any process model of the form

\[\mathbf{x}_{k} = \mathbf{A}_{k-1} \mathbf{x}_{k-1} + \mathbf{B}_{k-1}(\mathbf{u}_{k-1} + \mathbf{w}_{k-1})\]

where \(\mathbf{w}_{k-1} \sim \mathcal{N}(\mathbf{0}, \mathbf{Q}_{k-1})\). By directly interating this equation, it can be shown that

\[\mathbf{x}_j - \left(\prod_{k=i}^{j-1} \mathbf{A}_k \right) \mathbf{x}_i + \sum_{k=i}^{j-1} \left(\prod_{\ell=k+1}^{j-1} \mathbf{A}_\ell\right) \mathbf{B}_k \mathbf{u}_k\]

which can be rewritten as

\[\mathbf{x}_j = \mathbf{A}_{ij} \mathbf{x}_i + \Delta \mathbf{u}_{ij} + \mathbf{w}_{ij}\]

This class will compute the preintegrated quantities \(\mathbf{A}_{ij}, \Delta \bar{\mathbf{u}}_{ij}, \mathbf{Q}_{ij}\) where \(\mathbf{w}_{ij} \sim \mathcal{N}(\mathbf{0}, \mathbf{Q}_{ij})\).

Parameters:
  • input_covariance (numpy.ndarray) – Covariance associated with the input. If a bias is also supplied, then this should also contain the covariance of the bias random walk.

  • state_matrix (Callable[[VectorInput, float], numpy.ndarray]) – The state transition matrix, supplied as a function of the input and time interval dt.

  • input_matrix (Callable[[VectorInput, float], numpy.ndarray]) – The input matrix, supplied as a function of the input and time interval dt.

  • dof (int) – the total dof of the state

  • bias (numpy.ndarray, optional) – If provided, this bias will be subtracted from the input values. Furthermore, the covariance associated with this RMI will also be augmented to include a bias state.

  • state_id (Any, optional) – Optional container for other identifying information, by default None.

dof¶

Degrees of freedom of the RMI

Type:

int

state_id¶

an ID associated with the RMI

Type:

Any

original_value¶

The RMI value before a new bias correction.

Type:

numpy.ndarray

covariance¶

Covariance matrix \(\mathbf{Q}_{ij}\).

Type:

numpy.ndarray

bias_jacobian¶

The bias jacobian \(\mathbf{B}_{ij}\).

Type:

numpy.ndarray

original_bias¶

The bias value used when computing the RMI

Type:

numpy.ndarray

new_bias¶

The bias value used to modify the original RMIs

Type:

numpy.ndarray

stamps¶

the two timestamps i, j associated with the RMI

Type:

List[float, float]

increment(u: VectorInput, dt: float)¶

In-place updating the RMI given an input measurement u and a duration dt over which to preintegrate.

update_bias(new_bias)¶

Update the bias of the RMI.

Parameters:

new_bias (np.ndarray) – The new bias value

property value: Tuple[ndarray, ndarray]¶

The two matrices \(\mathbf{A}_{ij}, \Delta\bar{\mathbf{u}}_{ij}\) that make up the RMI.

plus(w: ndarray) → LinearIncrement¶

Increment the RMI itself

Parameters:

w (np.ndarray) – The noise to add

Returns:

The updated RMI

Return type:

LinearIncrement

copy() → LinearIncrement¶
Returns:

A copy of the RMI

Return type:

LinearIncrement

new(new_bias=None) → LinearIncrement¶
Returns:

A copy of the RMI with reinitialized values

Return type:

LinearIncrement

property stamp¶

The later timestamp \(j\) of the RMI.

symmetrize()¶

Symmetrize the covariance matrix of the RMI.

previous

navlie.lib.preintegration.IMUIncrement

next

navlie.lib.preintegration.PreintegratedAngularVelocity

© Copyright 2022.

Created using Sphinx 7.1.2.