Skip to content

IMU integration #235

@ymd-stella

Description

@ymd-stella

Tasks

  • Consider how to do unit testing or benchmarking
    • unit testing of IMU preprocessings (compute_velocity, compute_gravity_dir, preintegration)
    • unit testing of edges for visual inertial
    • unit testing (or benchmarking) of globalBA, localBA, prediction, loop closure
  • Implementation features and unit tests
    • globalBA
    • localBA
    • prediction
    • loop closure
  • Stabilize the scale and gravity direction initialization if possible.
    • Make the keyframe insertion strategy customizable.
    • Consider a default keyframe insertion strategy when using IMU.
  • Investigate how to calibrate the camera and IMU.
    • (The pinhole camera model is supported by Kalibr.)
  • Exploring data sets

Implementation considerations

  • Consider how to implement without losing readability and usability.
  • Do not optimize too early. Only adopt methods that have been shown to be effective by benchmarking.

wip branch

wip/gba is an experimental implementation, but it has some issues.

  • The edge implementation is untested and suspicious.
  • It pollutes the existing global BA.
  • It is very unstable. The result will change each time you run it. In particular, the calculation of the direction of gravity is unstable.
  • There seems to be a difference in the optimal strategy for keyframe insertion: compared to Visual SLAM, we needed to insert more keyframes for scale and gravity direction initialization.
  • My impression from the experiments so far is that the time taken for initialization is too long. In some applications, it may be necessary to move the camera randomly until it is initialized.

references

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions