I'm trying to find out how could I start to implement sensor fusion on the iPhone. I've started from this talk from David Sachs:
Sensor Fusion on Android Devices
Although David's talk is very illustrative, it doesn't show any code (it makes sense). I've seen both the GLGravity (to extract the gravity vector) and the AccelerometerGraph examples, but I need some help or at least guidance on how to combine the accelerometer, gyroscope and compass inputs so that the result is similar to what David shows.
Thanks
Essentially, sensor fusion aims to overcome the limitations of individual sensors by gathering and fusing data from multiple sensors to produce more reliable information with less uncertainty. This more robust information can then be used to make decisions or take certain actions.
Sensor fusion is the process of combining sensor data or data derived from disparate sources such that the resulting information has less uncertainty than would be possible when these sources were used individually.
Sensor fusion is the ability to bring together inputs from multiple radars, lidars and cameras to form a single model or image of the environment around a vehicle. The resulting model is more accurate because it balances the strengths of the different sensors.
Description. Multi sensor data fusion technology is to use multiple sensors to collect data from the same target, analyze and synthesize the collected data using computer technology, and form data with high accuracy and low redundancy to support the decision-making process.
UPDATE: As of May 19, 2015, there is no point in implementing sensor fusion yourself on mobile devices: Both Android (SensorManager under Sensor.TYPE_ROTATION_VECTOR
) and iPhone (Core Motion under CMAttitude
) offers its own.
(The original answer from May 5, 2011)
I have implemented sensor fusion for Shimmer 2 devices based on this manuscript. I highly recommend it.
Sensor fusion is often achieved by Kalman Filter.
However, there is no such thing as "Kalman Filter for programmers". Kalman filter is difficult to understand. You won't be able to implement and use it correctly if you do not understand it. Just use the above manuscript.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With