Although I guess I should have been calling it a "Kálmán filter" this whole time.
Although I guess I should have been calling it a "Kálmán filter" this whole time.
I've always found that determining where to put outputs from disparate sensors as opposed to just filtering a single observation like the GPS output in your example is challenging. Have you tried extending this to include input from other sensors (e.g. accelerometer, gyroscope, magnetometer, etc.)?
Here's some ancient code from those days: https://github.com/Qworg/Robot-Sensor-Fusion
Specifically, the Kalman filter depends on the data having the Markov property, and that the noise is Gaussian. The output of the filter has neither property, so you are not going to get better data. You may "smooth" the data, but all you are really doing is 1) discarding useful information, and/or 2) introducing a lag into the signal.