Skip to content

Integrate EKF-Based Initial Pose Estimation for NDT #757

Open

Description

@ytakano

Use previously available EKF pose estimates or predictions to initialize subsequent NDT scans in Awkernel. Establish a timestamp-aware feedback path without introducing circular waits between NDT and EKF processing.

Scope:

  • Maintain a bounded history of EKF pose estimates with timestamps and validity information
  • Select or derive an initial pose at the reference timestamp of each NDT scan
  • Define permitted interpolation and prediction methods, including maximum time gaps and prediction horizons
  • Apply the coordinate transforms required by the NDT initial-pose interface
  • Define startup, stale-estimate, missing-history, and estimator-reset behavior
  • Record which EKF estimates were used to initialize each scan

Acceptance criteria:

  • Each NDT scan receives an initial pose corresponding to its reference timestamp within the defined temporal limits.
  • Only EKF outputs available when the initial pose is selected are used; offline replay does not access outputs unavailable at the corresponding replay time.
  • NDT does not wait for an EKF update that depends on the result of that same scan.
  • Tests cover different NDT/EKF rates, delayed EKF outputs, missing history, excessive prediction horizons, and resets.
  • Startup uses an explicitly supplied initial pose until valid EKF estimates become available.
  • Invalid or stale estimates trigger the documented fallback or scan-rejection policy rather than being used silently.
  • Selected source timestamps, interpolation or prediction intervals, and fallback decisions are logged for reproducibility.
  • Integrated replay tests verify NDT convergence and localization error against predefined criteria.

Out of scope:

Changes to the NDT optimization algorithm or EKF state model, GNSS-based automatic initialization, and global relocalization.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions