Skip to content

CombinedImuFactor with just one measurement leads to degeneracy #368

@mindThomas

Description

@mindThomas

Description

If only 1 measurement is integrated into the CombinedImuFactor, the position related covariance terms are all zero.
This only seems to happen for the CombinedImuFactor though. If the same single measurement is integrated into an ImuFactor all elements of the covariance matrix is filled out. No zero rows/columns.

Unfortunately, these zero rows in the covariance leads to degeneracy and the infamous 'Indeterminant linear system' error.

Steps to reproduce

  1. Create a PreintegratedCombinedMeasurements
  2. Integrate 1 IMU measurement into a the measurement
  3. Create a CombinedImuFactor with the measurement
  4. Add the factor and necessary initializations to a NonlinearFactorGraph
  5. Perform optimization

In general the problem can be reproduced with the ImuFactorsExample.cpp by ensuring that only 1 measurement is integrated: preintegrated->integrateMeasurement(imu.head<3>(), imu.tail<3>(), dt);

Expected behavior

Even with just one measurement I would expect at the very least all diagonal element to be non-zero of the preintegrated factor covariance, just as is the case if just one measurement is integrated into the ImuFactor.

Additional information

More information can be found here: https://groups.google.com/forum/#!msg/gtsam-users/WskPzqexiNk/UwQrbBe7AAAJ

Metadata

Metadata

Assignees

Labels

bugBug report

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions