It’s always struck me that there seem to be two critical elements to sensor fusion. There’s the part that can be resolved with math – for instance, compensating a magnetometer reading to account for the tilt as measured by an accelerometer – and then there’s the heuristic part. The latter deals with, for example, deciding that your gyro reading makes no sense and deferring to the compass instead to give you a heading. And while the math in the first part is more or less universal for all players, the heuristics would provide more of an opportunity for differentiation.
In a conversation at the recent MEMS Executive Congress, Movea’s Bryan Hoadley noted that there’s actually more to it than that. First of all, I should note that they’re touting the phrase “data fusion” rather than just “simple” sensor fusion. That would partly be due to the fact that they’re trying to raise the level of abstraction far above simple low-level fusion (as indicated by their periodic table and the fact that they’re doing analysis on running gaits and tennis serves), but also because, in many cases, data is included that doesn’t come from a sensor.
The classic example of that would be a navigation algorithm that not only uses IMU data, but also GPS or even speedometer data. (OK, I guess a speedometer is a sensor, albeit a pedestrian one… or… wait, no, a pedometer would be pedestrian… GPS? That’s less obvious.) Add map data and now you’re unquestionably fusing more than sensor data. You’re fusing data, some of which comes from sensors.
There’s one other element that comes along with this, according to Mr. Hoadley. It may sound trivial or inconsequential, but it matters, and it’s kind of like taking a look back into the kitchen of your favorite gourmet restaurant: it’s way less glamorous than the dining room. In addition to the math and the heuristics are the logistics of managing all the data and the data formats correctly and efficiently.
(Reminds me of the college programming project where I took the core assignment and simply added some I/O to it that wasn’t required. A couple ill-conceived all-nighters later and my code was 10% algorithmic stuff that mattered and 90% crap for getting data in and out. Which was worth, like, 3% extra in bonus credit. My first lesson in ROI.)
The point being, there’s more to the cooking than creating pretty stacks of elegant food (which will topple when the first fork hits it); there’s lots of boring, mundane food prep.
I’ve actually asked the question before as to whether these data formats could be simplified by any sorts of standards or unification; it’s one area where there doesn’t seem to be enough pain to worry. Either that, or the early movers have already solved the problem themselves and the chaos now acts as an entry barrier to others.