Sensor Fusion algorithm and API for Android-based ARM platforms
Data brief
Features
■ Absolute point tracking and motion tracking
accuracy
■ Immunity to magnetic interference for high
performance in real-world conditions
■ Few user-calibration interruptions, enabling
innovative and longer game play
■ Reliable compass heading for accurate
navigation
■ Accurate direction enabling true augmented
reality applications
■ Compatible with Android starting from version
2.3.3
■ Support for ARM platforms
■ Full tunability
■ Embedded calibration
iNEMOEngine_PAAP
Description
The iNEMO engine is a new, advanced software
engine that fuses accelerometer, gyroscope and
magnetometer data to deliver accurate and
reliable motion-sensing information that is easy to
integrate into smart consumer devices.
The iNEMOEngine_PAAP software pack comes
with the iNEMO Engine as a precompiled library
for ARM microcontrollers and is compatible with
Android starting from version 2.3.3. It includes
complete HAL and API for algorithm setup and
tuning.
October 2011Doc ID 022214 Rev 21/7
For further information contact your local STMicroelectronics sales office.
www.st.com
7
iNEMO Sensor fusioniNEMOEngine_PAAP
1 iNEMO Sensor fusion
1.1 Overview
The iNEMO engine is a new, advanced software engine that fuses accelerometer,
gyroscope and magnetometer data to deliver accurate and reliable motion-sensing
information that is easy to integrate into smart consumer devices.
Figure 1.9-axis sensor fusion
Magnetometer
Gyroscope
Accelerometer
SW libraries
9-axis sensor fusion
1.2 How the iNEMO engine works
The iNEMO engine fuses data from the integrated 9-axis sensor suite with advanced
algorithms that use true high-number-of-states adaptive Kalman filtering.
The iNEMO engine’s adaptive filters converge so correct heading data overrides magnetic
distortions and anomalies, resulting in more accurate and reliable data.
iNEMO allows correction of:
●magnetic distortions registered on the magnetometers
●dynamic distortion measured by the accelerometers
●inherent drift of the gyroscope over time
AM10211V1
The iNEMO engine integrates all 9 axes inertial plus compass with complex fusion
algorithms, so the output of the sensor cluster is optimized.
This allows for faster, easier integration into smart consumer devices and higher
performance of the solution as a whole.
2/7 Doc ID 022214 Rev 2
iNEMOEngine_PAAPiNEMO Sensor fusion
The library can be configured to achieve the best tradeoff between performance and powersaving to match application requirements.
Figure 2.HAL and API
Orientation
Gravity
Li
LiA
Quaternion
iNemoEngineAPI
iNemoEngine.a
near Acc
Acc
Acc
Mag
Gyro
(Orientation)
Gravity
Linear Acc
Rotation
Vector
iNemoEngine
Sensor
Sensor
Manager
g
sensor.cpp
MagnSensorAccelSensor
Sensor
Service
GyroSensor
GYROMAGACC
AM10210V1
Doc ID 022214 Rev 23/7
Input and output dataiNEMOEngine_PAAP
2 Input and output data
Figure 3.Sensor fusion input and output
InputsOutputsInputsOutputs
2.1 Sensor fusion algorithm input
The iNEMO engine API is based on a 9-axis sensor fusion suite.
Required input:
●Accelerometer output data: x,y,z
●Gyroscope output data: yaw, pitch, roll
●Magnetic sensor output data x,y,z
●LIbrary configuration parameters
2.1.1 Orientation of the sensors
iNEMO engine API sensor orientation is compatible with the reference system defined by
Android (east, north, up).
2.2 Output
The iNEMO engine software libreries fuse data from the integrated 9-axis sensor suite with
an advanced algorithm based on a true adaptive Kalman filter to obtain precise error
modeling, outstanding accuracy prediction and magnetic distorsion correction.
AM10212V1
4/7 Doc ID 022214 Rev 2
iNEMOEngine_PAAPSystem specifications and settings
Librery output:
●Quaternions four number hpr system
●Rotation: heading, pitch, and roll
●Linear acceleration: device frame linear accelerations
●Gravity: device frame gravity acceleration
3 System specifications and settings
3.1 Typical sensor settings
3.1.1 Sensor full scale
●Accelerometer: 2 g
●Gyroscope: 2000 dps
●Magnetometer: 8.1 gauss
3.1.2 Sensor ODR
●Gyroscope: 100 Hz
●Accelerometer: 100 Hz
●Magnetometer: 75 Hz
Doc ID 022214 Rev 25/7
Revision historyiNEMOEngine_PAAP
4 Revision history
Table 1.Document revision history
DateRevisionChanges
09-Sep-20111Initial release.
Added Section 2: Input and output data and Section 3: System
26-Oct-20112
specifications and settings.
Minor text changes.
6/7 Doc ID 022214 Rev 2
iNEMOEngine_PAAP
Please Read Carefully:
Information in this document is provided solely in connection with ST products. STMicroelectronics NV and its subsidiaries (“ST”) reserve the
right to make changes, corrections, modifications or improvements, to this document, and the products and services described herein at any
time, without notice.
All ST products are sold pursuant to ST’s terms and conditions of sale.
Purchasers are solely responsible for the choice, selection and use of the ST products and services described herein, and ST assumes no
liability whatsoever relating to the choice, selection or use of the ST products and services described herein.
No license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted under this document. If any part of this
document refers to any third party products or services it shall not be deemed a license grant by ST for the use of such third party products
or services, or any intellectual property contained therein or considered as a warranty covering the use in any manner whatsoever of such
third party products or services or any intellectual property contained therein.
UNLESS OTHERWISE SET FORTH IN ST’S TERMS AND CONDITIONS OF SALE ST DISCLAIMS ANY EXPRESS OR IMPLIED
WARRANTY WITH RESPECT TO THE USE AND/OR SALE OF ST PRODUCTS INCLUDING WITHOUT LIMITATION IMPLIED
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE (AND THEIR EQUIVALENTS UNDER THE LAWS
OF ANY JURISDICTION), OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT.
UNLESS EXPRESSLY APPROVED IN WRITING BY TWO AUTHORIZED ST REPRESENTATIVES, ST PRODUCTS ARE NOT
RECOMMENDED, AUTHORIZED OR WARRANTED FOR USE IN MILITARY, AIR CRAFT, SPACE, LIFE SAVING, OR LIFE SUSTAINING
APPLICATIONS, NOR IN PRODUCTS OR SYSTEMS WHERE FAILURE OR MALFUNCTION MAY RESULT IN PERSONAL INJURY,
DEATH, OR SEVERE PROPERTY OR ENVIRONMENTAL DAMAGE. ST PRODUCTS WHICH ARE NOT SPECIFIED AS "AUTOMOTIVE
GRADE" MAY ONLY BE USED IN AUTOMOTIVE APPLICATIONS AT USER’S OWN RISK.
Resale of ST products with provisions different from the statements and/or technical features set forth in this document shall immediately void
any warranty granted by ST for the ST product or service described herein and shall not create or extend in any manner whatsoever, any
liability of ST.
ST and the ST logo are trademarks or registered trademarks of ST in various countries.
Information in this document supersedes and replaces all information previously supplied.
The ST logo is a registered trademark of STMicroelectronics. All other names are the property of their respective owners.