3 ms·
When you implement a Kalman filter, make sure to use the actual timesteps (i.e. delta time = now - last) instead of a theoretical fixed timestep (e.g. delta tim
by xaedes 5y ago
When you implement a Kalman filter, make sure to use the actual timesteps (i.e. delta time = now - last) instead of a theoretical fixed timestep (e.g. delta time = 0.1s or similar) or averaged timestep.
Makes all the difference
- wanderer_ 5y agoI'd be willing to bet that this particular tidbit of knowledge was won after a session of frustrating debugging...
- xaedes 5y agoHahaha... yea. I actually had to submit my thesis with - lets say not the best - results because I did not use the actual timesteps. My inertial navigation system for an autonomous rc model car would estimate paths that where kinda right, but always strongly distorted. For weeks and months after the thesis defence it really bothered me and I regularly dived into the system to find the cause for it. Some day I fiddled with the timesteps, rerun the evaluation and boom all the curves where perfectly aligned with the actual driving trajectory that we used to generate the data. I was amazed how good it now worked, and kinda sad that I could not present _these_ results for my thesis. Should have figured it out sooner. Too bad that all the literature, that I read so far, always only talked about fixed timesteps...
- dr_zoidberg 5y agoCan't you host an errata somewhere that explains the changes and how it fixes the thesis?
- Eddy_Viscosity2 5y agoThis is also true for post-processing data, like applying FFT filters. Oftentimes real world data does not have constant timestep sizes but most library functions for things like FFT assumed that they do. So I always resample to constant timestep size before doing anything filtering. This of course doesn't apply to real-time analysis.