3
$\begingroup$

I am currently thinking about approaches to estimating the position and velocity of an accelerating target.

At this time, I have tried a few approaches that work alright. I have tried two variations of Kalman filters, the first where it estimates position and velocity given the following:

  • Dynamics: \begin{align} \dot{x} &= v + \eta_1\\ \dot{v} &= \eta_2 \end{align}

  • Measurement: $$y = x + \eta_3$$ where $\eta_i$ are noise from a Gaussian distribution.

The other Kalman Filter approach was based on the following:

  • Dynamics: \begin{align} \dot{a_1} &= \eta_1\\ \dot{a_2} &= \eta_2 \end{align}

  • Measurement: $$y_{i+1} = y_{i}+a_1 \Delta t + a_2 \frac{\Delta t^2}{2}$$

I also implemented a filter using local regression based on the last $N$ position samples in the time series.

All of these filters do fairly well, but I still question if there might be something better. I have tried looking for any papers or lectures on the subject but struggle to find anything worthwhile.

One other thing that coworker and myself discussed was potentially using Euler's Equation for Rigid Body Dynamics to add some constraints into a target's ability to turn too rapidly based on using a ballpark inertia matrix (assuming we're going after a small car).

This obviously makes the dynamics nonlinear and would push us to using something like an Unscented Kalman filter. Does anyone know whether this would be worth it? We suspect it could help our estimate not make any unrealistic jumps that it might otherwise make with the purely linear model, but don't know if this would make a big enough difference.

$\endgroup$
1
$\begingroup$

I don't have a really good answer for you, but I can see a possible problem with your second attempt: the value of $a_3$ has the potential to completely blow up the dynamics because it is multiplying $t^3$.

In cases like this, you are better off defining an interval over which you wish to do the estimation, $[T_1,T_2]$ and then choosing well-behaved polynomials on this interval (e.g. the Legendre polynomials, $P_k(x)$) and multiplying them.

That way your measurement becomes $$ y(t) = \alpha_1 P_0(x;T_1, T_2) + \alpha_2 P_1(x;T_1, T_2) + \alpha_3 P_2(x;T_1, T_2) $$ where $P_k(\cdot;T_1, T_2)$ is the (scaled) $k^{\rm th}$ order Legendre polynomial: $$ P_k(\cdot;T_1, T_2) = \frac{1}{T_2 - T_1} P_k\left( \frac{2t -T_1 - T_2}{T_2 - T_1} \right) $$ where $P_k(\cdot)$ is the standard Legendre polynomial.

I've used the technique in a formulation of the EKF for frequency tracking.

$\endgroup$
  • $\begingroup$ Good thought! My coworker and I were actually discussing using a different basis potentially that would, in other numerical problems, have a better condition number. How much of an improvement do you see using an alternative basis? I just skimmed your paper and will need to look into it a little more since I don't know La Scala & Bitmead's technique offhand. $\endgroup$ – spektr May 9 '16 at 14:23
  • $\begingroup$ @choward When we first tried the polynomial coefficient approach, it worked fine for the first few samples and then kept blowing up --- and in general didn't actually succeed very much. The Legendre approach worked much better, though not as well as we'd hoped. The work was a while ago, so I don't recall the details (except what was in the paper!). :-) $\endgroup$ – Peter K. May 9 '16 at 14:35
  • $\begingroup$ Haha that's interesting. I will have to see if your paper shows the timeframe you're working with. I am working with an upper bound of around 60 seconds, with most timeframes within 30 seconds. I have tried things before like using a non-dimensional time variable scaled using the upper bound timeframe and that helps improve the polynomial basis. I will have to try it with the Legendre polynomials! $\endgroup$ – spektr May 9 '16 at 14:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.