Learning Car Speed Using Inertial Sensors
arxiv.org
arxiv.org
For example, GPS has a common problem in areas with tall buildings where satellite signals bounce off a large flat sides of buildings, putting you a block away from where you actually are. Uber has done some fascinating work in this area by actually knowing the location and shape of all tall buildings in a bunch of cities- very clever.
But what if instead, the location estimator took in both the GPS signal and the inertial sensor. Sure, GPS says you just changed blocks, but the inertial sensor says you haven't accelerated from your previous location and heading.
Lots of noisy estimates, combined, can make for a pretty accurate estimate.
The "novelty" here is the ML approach although I am not sure if that is particularly novel as well.
For instance, I built a fuzzy matcher for business addresses which was based on hand-rolled heuristics but used logistic regression to train a probability estimator that the match was correct and then hand-evaluated a few thousand matches so that the matcher knew the quality of results it was returning.
Why not compute optical flow from a camera on the underside of the car? Surely that would be more sensitive than an IMU?
It also would have to work on all kinds of road surfaces, day and night, in rain and snow, with different amount of sunlight, and with varying locations of the sun in the sky.
⇒ I don’t think this is as simple as you make it look.
Most cars have speed sensors, compass and steering angle sensors, but having that work with a smartphone is another problem.
Also there were these things: https://www.thedrive.com/news/34489/car-navigation-systems-b...
In any event, GPS + measuring how fast the axial spins would be able to get some pretty precises measurements. Two things most vehicles already have. The only issue is calibration at the start of movement.
But yeah, most cars have sensors for all those things.
[1] https://en.m.wikipedia.org/wiki/Dead_reckoning [2] https://www.sbir.gov/node/1696357
Or the people building the car could spring for the 100$ gyro rather than the 0.50$ phone-type gyro. With a reasonably-accurate gyroscope you can safely abandon most all the fuzzy data.
Additionally, "first principles" can mean modeling the contact patch been the tire and road, and estimating the friction, based on weather and road conditions. Or it can mean a mixture of two models, one with and without slippage.
How do you detect which model is "active"? That's more parameters that require tuning.
Ideally, models are both data-driven and human-interpretable.
There's no reason the trained model can't emulate the dynamics accurately and do just as well as the traditional approach, but then also learn from additional clues.
It is true, that estimates of states will drift off the ground truth very fast, but I don't think that ML approaches are the best solution to these kind of problem. In our tests we tried to estimate the position of a bicycle solely with an iPhone taped to the handlebar. My first idea was to update the state based on the fact, that the handlebar would always point in the riding direction. And the second idea was to update the altitude of the estimation based on a heightmap of the environment.
Of course, without these two approaches the estimation would drift off rapidly. But the first approach was enough to confine our estimation to the general area of riding (at least for the time of measuring). With this in place the most dirft would come from noisy gyrometer measurements and the angle of corners was not always right.
The position estimation did not work as nice as I hoped. But based on the fact, that the estimation did not drift away at breakneck speeds, I concluded that at least you could use the algorithm for a speedometer. If you would add a "zero velocity update" based on unchanged GPS positions it would work even better.
It was incredibly easy to eliminate a major part of noise in this problem. It is such a trivial idea, that I was struck when I first had a look at the great results. And I am sure that a machine learning approach would just learn the transformation between the IMU and the car and then ignore measurements that are implying that the car would drive in impossible directions.
I'm at a startup where we do API as a service for insurance companies, and are specialty is acting as a platform for new insurance companies that are seeking to cater to drivers who might not have a credit history (new immigrants) or maybe even a bad one. Instead of each tiny company having to build apps that can allow them to gage driving behavior with GPS (not reliable, because shitty drivers who want to scam the company will turn off GPS every time they are behind the wheel), they could theoretically have an app installed on a customer's phone (required to have the insurance) that uses the phone's inertial sensors to estimate many factors, including speed in this case. It also allows these apps to not even have to collect location data at all, and that's a huge plus for privacy.
Maybe this isn't viable. Who knows? But the arrogance in this thread of assuming that there's no use for this is pretty absurd, and all in all negative.
This is completely useless for your stated use case.
Inertial navigation systems [0] use integration to calculation position, so errors add up quickly. The first in car navigation system [1] used inertial navigation. I think it used places where it knew the vehicle would (should?) stop as waypoints where the velocity could be set to zero. For example, if we think we're near a stop sign, and our calculated velocity is zero-ish, make it zero.
It's pretty amazing how accurate smartphones can be when you're looking at your position while moving in an area that doesn't have GPS, probably using similar techniques. The mobile device knows (is guessing) you're in a vehicle (using measured speed, Bluetooth connection to a vehicle, the fact that you're on a road, etc.) and can snap your location to a road on a map, as well as project your position.
It makes sense that inertial error could be similar for similar movement patterns, say driving over expansion joints in a concrete road. A ML model seems like a good way to try to compensate for that.
The reason I wonder if Apple is doing this already is they have all the pieces...they even know which vehicle I'm in, because I pair with the Bluetooth system in both vehicles. So they could actually build a model per vehicle, which I imagine would be more accurate.
They do have a patent pending for applying machine learning to the location domain, looks like this one is for GNSS though: https://patents.google.com/patent/US20200049837A1/en?oq=US20...
[0] - https://en.wikipedia.org/wiki/Inertial_navigation_system
Not quite. Etak had wheel sensors. The sensor package was two wheel sensors, a vertical reference using fluid in a cup sensed electrostatically, a 2-axis magnetometer, and a 2-axis rate gyro which used a spinning disc that deformed slightly when turning. I still have one, somewhere.
All those sensors were very noisy and inaccurate. What made Etak work was map matching of turns. It tried to match its estimate of the recent path to the map data. It could get lost, but usually could find itself again after a few turns. The main problem was in grid cities. If estimated position became off by one block, turns would not help to disambiguate the problem, and so it would remain lost.
OTOH I'm skeptical that this method really solves it either
It might not be practical or the easiest way, but I suspect that you could tell the difference between steady highway driving at 50 vs 55 from acceleration data only (due to inherent road imperfections).
Although autocorrelation is probably a better way to get that data than just throwing it into a AI model.
Basically, fuck (MEMS) accelerometers.
I struggled with this in my early university days.
"Wait, we get acceleration? Why not just cumsum twice!" except get garbage.
So this is a fuck you to accelerometers for wasting my time
Combining this with other covariates/sensors could also provide more correction and better detection of "special events".
I wonder if something like this applied on top of traditional methods that incorporate the dynamics would make a better approach since you get the advantage of using the known dynamics + learnable "special event" corrections.
The point of the technique, however, is dead-reckoning of position which means integrating speed, which is prone to accumulate errors over time if you just look at the wheels.
The title of the paper, I think, could be better.