As I have observed and listened to the things that folks in the sensor fusion business (whether purveyors of sensors or sensor-agnostic) have been saying, there’s something of a change in the air, and it was reinforced at CES. The focus of fusion is shifting.
At the very bottom of the fusion stack are complex mathematical relationships that turn, for example, individual sensor readings into higher-level orientation information. Clearly, there’s been a period where getting that right and getting it all to be computed in real time was an effort. But that time appears to be over. Things are moving up in abstraction, but there’s a big qualitative change that’s coming with that.
The math, however, complex, more or less provides a “right answer” that’s not subject to judgment. All sensor fusion implementations would presumably agree on the answer.
The bigger effort now is not on getting the math right. Now the issue is: which sensor should I listen to? For example, if the mag sensor shows movement but the accelerometer hasn’t budged, should the mag data be ignored? Or, more perniciously, if a gyro indicates movement but the mag doesn’t, then ignore the gyro… but if the mag indicates movement and the gyro doesn’t then ignore the mag?
As will be evident in various stories I’ll elaborate on over the next little while, the challenge these days seems to be on comparing various inputs and then deciding whom to believe. And this feeds into a higher-level concept that I heard mentioned numerous times at CES: context.
Context has implications far beyond simple questions of, for instance, orientation. But judging which sensors to acknowledge and which to ignore is really a primitive context exercise.
And here’s where it’s qualitatively different from what’s come before: There is no right answer. Well, I mean, I guess there is a right answer (or, perhaps stated more accurately, any of us that have had our devices try to be too clever and guess what we’re doing, there are many wrong answers). But this is not a math problem: It’s a heuristic problem. Which means that ten different fusions algorithms may approach the problem ten different ways.
This is actually good for competition in that there can be true differentiation. It also means that several completely different approaches may all work well, which suppresses that differentiation.
The bottom line to me is that it all feels slightly more messy and complex than the complex math. Structuring an algorithm replete with heuristics can be tough – if you want to make it flexible enough to accommodate frequent changes and refinements to the algorithm. Over time, I wouldn’t be surprised to see this be a strong contributing factor in determining who wins and who loses in the long term.