drake icon indicating copy to clipboard operation
drake copied to clipboard

Extended Kalman filter and unscented Kalman filter

Open wei-chen-li opened this issue 8 months ago • 1 comments

Is your feature request related to a problem? Please describe.
The current estimators in Drake, such as the LuenbergerObserver, is somewhat limited in scope. It would be nice to have more general types of state estimators.

Describe the solution you'd like
I propose adding implementations of the widely-used extended Kalman filter (EKF) and unscented Kalman filter (UKF). I plan to submit a series of pull requests introducing various forms of these Gaussian state observers, with the following features:

  • [ ] Discrete-time extended Kalman filter
  • [ ] Continuous-time extended Kalman filter (Kalman–Bucy filter)
  • [ ] Continuous-time EKF with discrete-time measurement updates (Hybrid Kalman filter)
  • [ ] Iterated extended Kalman filter [Barfoot, 2024, §4.2.5]
  • [ ] Discrete-time unscented Kalman filter
  • [ ] Continuous-time unscented Kalman filter
  • [ ] Continuous-time UKF with discrete-time measurement updates
  • [ ] Iterated unscented Kalman filter [Barfoot, 2024, §4.2.10]
  • [x] Supporting utilities for testing (e.g., stochastic linear systems)

Describe alternatives you've considered
I'm open to refining the APIs and implementation details as part of the code review process.

Additional context
Reiterating that I intend to send in the PR’s if Drake maintainers are happy to receive an implementation.

wei-chen-li avatar Apr 16 '25 09:04 wei-chen-li

I would be interested in this feature (and reviewing it).

agarwal-abhinav avatar Apr 16 '25 21:04 agarwal-abhinav