Kalman filters are very useful. There are several variants that can be implemented, depending on the available data and what you want to achieve. I found a great place to get your head around them was Roger Labbe's tutorials:<p><a href="http://nbviewer.jupyter.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/table_of_contents.ipynb" rel="nofollow">http://nbviewer.jupyter.org/github/rlabbe/Kalman-and-Bayesia...</a>
Slightly related: I'm driving through West Africa now, and I loaded OSM onto my cheap-o used Garmin. [1]<p>I have been absolutely shocked and blown away by the accuracy and detail of the maps. In the tiniest dirt street village, with less than 100 people, it correctly maps all the roads and even all the walking trails.<p>Of course, in the big cities too.<p>I'm staggered they have this level of detail.<p>[1] <a href="http://garmin.openstreetmap.nl/" rel="nofollow">http://garmin.openstreetmap.nl/</a>
> OSM Filter: This uses publicly available OpenStreetMap road data and maps our GPS traces to nearest possible roads<p>OSM is considered a reference for HyperTrack -- they snap to the OSM roads. But I wonder how they [OSM] might've constructed their maps given the similarly noisy GPS samples they likely would've crowdsourced from. Do they use kalman filters/more samples/higher precision GPS reference devices?
Not sure what stack exactly they use under the hood, but we have created a sophisticated, very fast but similar algorithm implemented in Java.<p>Bonus: everything is open source: <a href="https://github.com/graphhopper/map-matching" rel="nofollow">https://github.com/graphhopper/map-matching</a> including web API, routing engine, easy setup (no DB involved), simple demo UI, ...<p>Only disadvantage I see: we currently do not support online map matching but this will surely come.<p>BTW: kalman filters are very similar to our approach (hidden markov model).<p>BTW2: Their FAQ is ridiculous: "Do you have competitors? No..." There are many companies with tracking and also open source products ...