Freescale Semiconductor DATA SHEET: PRODUCT PREVIEW Document Number: FSFLK_DS Rev. 0.7, 9/2015 Freescale Sensor Fusion Library for Kinetis MCUs Updated for Freescale Sensor Fusion Release 5.00 1 2 3 4 Contents Introduction .................................................................................................................................... 3 Functional Overview ...................................................................................................................... 6 2.1 Introduction ............................................................................................................................... 6 2.2 Accelerometer Only .................................................................................................................. 6 2.3 Accelerometer Plus Magnetometer ........................................................................................... 7 2.4 Accelerometer Plus Gyroscope ................................................................................................. 7 2.5 Accelerometer Plus Magnetometer Plus Gyroscope ................................................................. 7 Additional Support ......................................................................................................................... 8 3.1 Freescale Sensor Fusion Toolbox for Android .......................................................................... 9 3.2 Freescale Sensor Fusion Toolbox for Windows ........................................................................ 9 3.3 Terms and Acronyms .............................................................................................................. 11 3.4 References ............................................................................................................................. 12 Mechanical and Electrical Specifications ................................................................................... 12 4.1 General Considerations .......................................................................................................... 12 4.2 Hardware Platforms Used to Measure Performance ............................................................... 13 4.3 Simulation Environments ........................................................................................................ 16 4.4 Frame of Reference ................................................................................................................ 18 4.5 Electrical Specifications .......................................................................................................... 18 4.6 Computation Metrics ............................................................................................................... 19 4.6.1 Statistics from Build #5.00 of the Sensor Fusion Library .................................................................. 19 4.7 Magnetic Calibration Metrics ................................................................................................... 20 4.7.1 Background ....................................................................................................................................... 20 4.7.2 The Magnetic Buffer.......................................................................................................................... 21 4.7.3 Magnetic Calibration Performance Metrics ....................................................................................... 22 4.8 Fusion Model Performance Metrics......................................................................................... 22 4.8.1 4.8.2 4.8.3 4.8.4 4.8.5 4.8.6 Background ....................................................................................................................................... 22 Gyro Offset Step Response .............................................................................................................. 23 Error in Computed Linear Acceleration............................................................................................. 24 Limitations Imposed via Sensor Choice/Configuration ..................................................................... 25 9-Axis Parametrics ............................................................................................................................ 26 6-axis Accelerometer + Magnetometer Parametrics ........................................................................ 27 © 2015 Freescale Semiconductor, Inc. 4.8.7 6-axis Accelerometer + Gyro Parametrics ........................................................................................ 27 4.8.8 3-axis Accelerometer Only Parametrics ........................................................................................... 28 5 Test Descriptions ......................................................................................................................... 28 5.1 MCU Current .......................................................................................................................... 28 5.1.1 Intent ................................................................................................................................................. 28 5.1.2 Procedure ......................................................................................................................................... 28 5.2 Flash and RAM Required ........................................................................................................ 29 5.2.1 Intent ................................................................................................................................................. 29 5.2.2 Procedure ......................................................................................................................................... 29 5.3 Fusion Loop Execution Time................................................................................................... 29 5.4 Compass Heading Linearity and Accuracy.............................................................................. 29 5.4.1 Intent ................................................................................................................................................. 29 5.4.2 Procedure ......................................................................................................................................... 30 5.5 Orientation Static Drift ............................................................................................................. 31 5.5.1 Intent ................................................................................................................................................. 31 5.5.2 Procedure ......................................................................................................................................... 31 5.6 Orientation Static Noise .......................................................................................................... 32 5.6.1 Intent ................................................................................................................................................. 32 5.6.2 Procedure ......................................................................................................................................... 32 5.7 Orientation Dynamic Drift ........................................................................................................ 32 5.7.1 Intent ................................................................................................................................................. 32 5.7.2 Procedure ......................................................................................................................................... 32 5.8 Maximum Angular Rate .......................................................................................................... 32 5.8.1 Intent ................................................................................................................................................. 32 5.8.2 Procedure ......................................................................................................................................... 32 5.9 Orientation Response Delay ................................................................................................... 33 5.9.1 Waveform Definitions ........................................................................................................................ 33 5.9.2 Intent ................................................................................................................................................. 33 5.9.3 Procedure ......................................................................................................................................... 33 5.10 Orientation Magnetic Immunity (Static Device)........................................................................ 34 5.10.1 Intent ................................................................................................................................................. 34 5.10.2 Procedure ......................................................................................................................................... 34 5.11 Orientation Magnetic Immunity (Moving Device) ..................................................................... 34 5.11.1 Intent ................................................................................................................................................. 34 5.11.2 Procedure ......................................................................................................................................... 34 5.12 Error in Computed Gyro Bias .................................................................................................. 34 5.12.1 Intent ................................................................................................................................................. 34 5.12.2 Procedure ......................................................................................................................................... 34 5.13 Gyro Offset Step Response .................................................................................................... 35 5.13.1 Intent ................................................................................................................................................. 35 5.13.2 Procedure ......................................................................................................................................... 35 5.14 Error in Computed Linear Acceleration ................................................................................... 35 5.14.1 Intent ................................................................................................................................................. 35 5.14.2 Procedure ......................................................................................................................................... 35 6 Revision history for XSFLK_DS .................................................................................................. 36 2 Freescale Sensor Fusion Library for Kinetis MCUs, Rev. 0.7, 9/2015 Freescale Semiconductor, Inc. 1 Introduction Sensor Fusion is the process where data from several different sensors are fused to complete computations that a single sensor could not handle. An example of sensor fusion is computing the orientation of a device in 3-dimensional space using an accelerometer and magnetometer. That data might then be used to alter the perspective presented by a 3D GUI or game. The Freescale Sensor Fusion Library for Kinetis MCUs provides advanced functions for computation of device orientation, linear acceleration, gyroscope offset and magnetic interference based upon the outputs of Freescale inertial and magnetic sensors. Features • Supports: — Accelerometer only (roll, pitch and tilt) — Magnetometer only (2D auto) — Gyro only — Accelerometer plus magnetometer (eCompass) — Accelerometer plus gyro (gaming) — Accelerometer plus magnetometer plus gyroscope sensors • Includes Freescale’s award-winning magnetic compensation software — Provides geomagnetic field strength, hard- and soft-iron corrections, and quality-of-fit indication • Very low power consumption — 3 mA 9-axis fusion IDD on Kinetis ARM® Cortex® M0+ devices at 25 Hz fusion rate/200 Hz sensor rate — 0.6mA 9-axis fusion IDD on Kinetis ARM Cortex M4F devices at 25 Hz fusion rate/200 Hz sensor rate • Programmable sensor sample and fusion rates • Supports multiple 3D frames of reference (aerospace NED, Android and Windows 8) • Library is coded in standard C99 ANSI C • Compatible with the Freescale Sensor Fusion Toolbox for Android and Windows • Supported by Freescale CodeWarrior, Kinetis Design Studio and Processor Expert tools • Out-of-the box support for the following Freedom Development Platforms with FRDM-FXS-MULTx family of sensor boards — Cortex M0+: FRDM-KL25Z / FRDM-KL26Z / FRDM-KL46Z — Cortex M4: FRDM-K20D50M — Cortex M4F: FRDM-K64F / FRDM-K22F (KDS only) • Library version 5.00 includes bonus bare-metal implementations for tilt and eCompass. Typical Applications • • • • Notebook, tablet and smartphone sensor fusion Gaming, motion control, head-mounted displays, wearable electronics Air mouse, remote control Navigation, eCompass, IoT (Internet of Things) sensor data management Freescale Sensor Fusion Library for Kinetis MCUs, Rev. 0.7, 9/2015 Freescale Semiconductor, Inc. Introduction Table 1. Feature Comparison of the Freescale Sensor Fusion Algorithm Options Feature Filter type Accel only Mag only Gyro Only Accel + gyro Accel + mag 1 Accel + mag + gyro Low pass Low pass N/A Indirect Kalman Low pass Roll / Pitch / Tilt in degrees Yes No Yes Yes Yes Yes Yaw in degrees No Yes Yes No Yes Yes 2 Angular rate in degrees/second virtual 2 axis 3 Indirect Kalman Yaw only Yes Yes virtual 3 axis Yes Compass heading (magnetic north) in degrees No Yes No No Yes Yes Quarternion and rotation vector Yes Yaw only Yes 5 Yes Yes Yes Rotation matrix Yes Yaw only Yes 5 Yes Yes Yes Linear acceleration separate from gravity No No No Yes Yes 4 ENU (Windows 8 variant) frame of reference Yes 4 ENU (Android variant) frame of reference Yes 4 Magnetic calibration included N/A NED (North-East-Down) frame of reference No Yes Yes 4 Yes 4 Yes Yes Yes Yes 4 Yes 4 Yes Yes Yes Yes 4 Yes 4 Yes Yes Yes N/A N/A Yes Yes Yes Gyro offset calibration included N/A N/A No Yes N/A Yes FRDM-KL25Z board support Yes Yes Yes Yes Yes Yes FRDM-KL46Z board support Yes Yes Yes Yes Yes Yes FRDM-K20D50M board support Yes Yes Yes Yes Yes Yes FRDM-KL26Z board support Yes Yes Yes Yes Yes Yes FRDM-K64F board support Yes Yes Yes Yes Yes Yes FRDM-K22F board support 1. 2. 3. 4. 5. 4 KDS only More precisely: a non-linear modified exponential low pass quaternion SLERP filter. Angular rate for 6 and 9-axis configurations with a gyro include corrections for gyro offset. Subject to well-known limitation of being blind to rotation about axes aligned with gravity. These solutions do not include a magnetometer, therefore there is no sense of compass heading. Rotations for gyro-only solution are relative to sensor position (there is no global frame). Freescale Sensor Fusion Library for Kinetis MCUs, Rev. 0.7, 9/2015 Freescale Semiconductor, Inc. Table 2. Feature Options Feature Options License CPU selection BSD 3-Clause MKL25Z128VLK4 MKL26Z128VLH4 MK20DX128VLH5 MKL46Z256VMC4 MK64FN1M0VLL12 MK22FN512VLH12 (KDS only) Board customizable Yes Sensor sample rate Programmable Fusion rate Programmable Frame of Reference Programmable Algorithms Executing Programmable Sleep mode enabled between samples/calculations No It can be added by user, but will interfere with UART operation RTOS MQX-Lite Code flexibility Full source code is provided. All files are can be modified. Access to Processor Expert Product Deliverables 1. 2. 3. Yes • This datasheet • Software user guide • Zip file containing both CodeWarrior and KDS projects Listed MCUs are those supported by included project templates. The fusion library should be portable to any ARM® processor without change. Ports to other architectures are expected to be very straightforward, as the library is written in standard C. FRDM-KL25Z, FRDM-KL26Z, FRDM-KL46Z, FRDM-K20D50M, FRDM-K64F and FRDM-K22F are supported out-of-the box and may be used as templates for other boards. The sensor fusion library was written assuming the MQXLite RTOS, but should be easily adaptable to other operating systems. See the "Freescale Sensor Fusion for Kinetis User Guide" for additional details. The sensor fusion library has also been incorporated into Freescale’s Intelligent Sensing Framework (ISF). ISF 2.2 offers an RTOS abstraction that allows you to target alternate real time operating systems. The Freescale Sensor Fusion Toolbox includes bonus projects for 3-axis tilt and 6-axis eCompass running without an RTOS. Sensor shield boards are not needed for these configurations. This results in very low-cost demonstration platforms. The bonus projects are compatible with the Sensor Fusion Toolbox for Windows over USB connection. The FRDM-KL46Z eCompass version can also be used stand-alone since the compass heading is displayed directly on the FRDM-KL46Z LCD display. The bare-board eCompass projects have sensor sampling, sensor fusion and magnetic algorithms run as a single task at 25Hz. On power up, the green LED flashes slowly to indicate that the software is executing but that there is no magnetic calibration solution. The green LED then flashes rapidly to signal that the compass heading display is accurate and that a valid magnetic calibration has been obtained after rotating the Freedom development board. Freescale Sensor Fusion Library for Kinetis MCUs, Rev. 0.7, 9/2015 Freescale Semiconductor, Inc. Functional Overview 2 Functional Overview 2.1 Introduction Sensor fusion encompasses a variety of techniques that: • Trade off strengths and weaknesses of the various sensors to compute something more than can be calculated using the individual components • Improve the quality and noise level of computed results by taking advantage of: — Known data redundancies between sensors — Knowledge of system transfer functions, dynamics and kinematics The Freescale Sensor Fusion Library for Kinetis (Fusion Library) supports several combinations of sensors. In general, performance improves as more sensors are added to the system. The primary function of the library is to compute orientation of a sensor subsystem relative to a global frame of reference. Orientation can be expressed in a number of different ways: • Tilt from vertical (may also be expressed as roll + pitch) • Compass heading (geomagnetic north) • Full 3D rotation from a global frame in any of the following forms: — Rotation matrix — Rotation vector (3D axis of rotation and rotation about that axis) — Quaternion — Euler angles (roll, pitch and yaw) For additional portability details and guidelines refer to the Freescale Sensor Fusion for Kinetis MCUs User Guide which is part of the Sensor Fusion Library installation. The Fusion Library is available in source code form and is designed to sit on top of board abstractions provided by Processor Expert and MQXLite. The C source and header files in the Sources directory of the project templates are board and MCU independent. Board dependencies are included as compile time options. If a particular board does not bring out the GPIO, I2C or UART needed, the board will not be compati compatible ble with the software and therefore will not be supported by Processor Expert. 2.2 Accelerometer Only An accelerometer measures linear acceleration minus gravity. If linear acceleration is zero, this sensor can be used to measure tilt from vertical, roll and p pitch. itch. Computation of yaw is not supported by this configuration. Figure 1. Accelerometer only block diagram 6 Freescale Sensor Fusion Library for Kinetis MCUs, Rev. 0.7, 9/2015 Freescale Semiconductor, Inc. 2.3 Accelerometer Plus Magnetometer The accelerometer plus magnetometer configuration is often used as an electronic compass. The electronic compass is subject to the linear acceleration equals zero, assumption. Accuracy is dependent upon negligible magnetic interference from the environment in which the sensors travel. Figure 2. Accelerometer plus magnetometer block diagram 2.4 Accelerometer Plus Gyroscope Using a gyroscope in addition to an accelerometer yields the ability to smoothly measure rotation in 3D space, although the system can only yield orientation to some random horizontal global frame of reference. That is, the system has no sense of magnetic north. Computation of yaw is not supported by this configuration. This configuration is commonly known as an Inertial Measurement Unit (IMU). Figure 3. Accelerometer Plus Gyroscope Block Diagram 2.5 Accelerometer Plus Magnetometer Plus Gyroscope Sometimes referred to as Magnetic, Angular Rate and Gravity (MARG), this subsystem offers an optimal combination of sensors for smooth tracking of orientation and separation of gravity and linear acceleration. This system is capable of yielding absolute orientation data with respect to magnetic north. Freescale Sensor Fusion Library for Kinetis MCUs, Rev. 0.7, 9/2015 Freescale Semiconductor, Inc. Additional Support Figure 4. Accelerometer Plus Magnetometer Plus Gyroscope Block Diagram 3 Additional Support Freescale Sensor Fusion Toolbox provides support for both Android and Windows operating systems. See Table for the differences between the two implementations. Table 3. Freescale Sensor Fusion Toolbox Features by Platform Feature Android PC Bluetooth wireless link ✔ Requires BT on PC (built-in or dongle) Ethernet wireless link On WiGo board only — UART over USB — ✔ OS requirements >=Android 4.0.3 >=Windows 7.0 Support for native sensors ✔ — Device View ✔ ✔ Panorama View ✔ — Statistics View ✔ — Canvas View ✔ — Orientation XY Plots — ✔ Inertial XY Plots — ✔ Magnetics — ✔ Kalman — ✔ Altimeter XY Plots — ✔ Data Logging ✔ ✔ Integrated documentation ✔ ✔ 8 Freescale Sensor Fusion Library for Kinetis MCUs, Rev. 0.7, 9/2015 Freescale Semiconductor, Inc. Feature Availability Price Android PC Google Play Freescale website Free Free 3.1 Freescale Sensor Fusion Toolbox for Android The Fusion Library is supplied in the form of CodeWarrior projects for specific Freescale development boards. The basic function of the Sensor Fusion Android implementation are shown in Figure 5. These projects are compatible with the Freescale Sensor Fusion Toolbox for Android, which can be freely downloaded from Google Play. For download and training links, visit freescale.com/sensorfusion. Figure 5. Freescale Sensor Fusion Toolbox for Android Basic Functions 3.2 Freescale Sensor Fusion Toolbox for Windows The Sensor Fusion Toolbox includes an equivalent vversion ersion of the software for Windows. For download and training links, visit freescale.com/sensorfusion. Important Note: Version 5.0 of the Sensor Fusion Library has a modified Kalman packet structure as compared to that used in prior releases. Be sure you have downloaded the Windows toolbox built 3 Sept 2015 or later. Freescale Sensor Fusion Library for Kinetis MCUs, Rev. 0.7, 9/2015 Freescale Semiconductor, Inc. Additional Support Figure 6 and Figure 7 are Sensor Fusion Toolbox screenshots of the Windows version. Figure 6. PC Version - Main Tab Figure 7. PC Version - Magnetics Tab 10 Freescale Sensor Fusion Library for Kinetis MCUs, Rev. 0.7, 9/2015 Freescale Semiconductor, Inc. 3.3 Terms and Acronyms Term Definition DUT Device Under Test ENU A global frame of reference described by X = East, Y = North, Z = Up g gauss IMU abbreviation for gravities. 1 standard gravity = 9.80665 m/s2. Accelerometers are commonly trimmed using the local gravimetric field, which can vary by 1/2 percent depending upon altitude and latitude. CGS system unit for measuring magnetic field strength. 100 µT = 1 gauss. Inertial Measurement Unit = accelerometer + gyro Kinetis Freescale family of ARM®-based MCUs MagCal Magnetic Calibration MARG Magnetic Angular Rate Gravity = IMU + magnetometer MCU microTesla Micro-Controller Unit The Tesla is the SI unit for measuring magnetic field strength. 1E–4 Tesla = 100 µT = 1 gauss NED A global frame of reference described by X = North, Y = East, Z = Down pitch In the Aerospace/NED frame of reference, defined as a rotation about the Y-axis RHR Right Hand Rule—a standard convention for describing the positive/negative sense of rotations about an axis of rotation. See http://en.wikipedia.org/wiki/Right_hand_rule. roll RPY SI In the Aerospace/NED frame of reference, defined as a rotation about the X-axis Roll, Pitch, and Yaw. In the Aerospace/NED frame of reference these are defined as rotations about the X axis,Y axis, and Z axis International System of Units (meter, kilogram, second, ...) SLERP Spherical Linear intERPolation - See http://en.wikipedia.org/wiki/SLERP SysTick A feature of the ARM® processor; a clock timer which for the purposes of this discussion, 1 sysTick = 1 CPU clock cycle. tilt UART yaw Angle from vertical Universal Asynchronous Receiver / Transmitter, also known as SCI (Serial Communications Interface) In the Aerospace/NED frame of reference, defined as a rotation about the Z-axis Freescale Sensor Fusion Library for Kinetis MCUs, Rev. 0.7, 9/2015 Freescale Semiconductor, Inc. Mechanical and Electrical Specifications 3.4 References 1. "Orientation Representations: Part 1" at http://blogs.freescale.com/iot/2012/10/orientationrepresentations-part-1/ community/the-embedded-beat/blog/2012/ 10/29/orientationrepresentations-part-1 2. "Orientation Representations: Part 2" at http://blogs.freescale.com/sensors/2013/01/orientationrepresentations-part-2/ community/the-embedded-beat/blog/2013/ 01/22/orientationrepresentations-part-2 3. "Hard and soft iron magnetic compensation explained" at http://blogs.freescale.com/sensors/2011/03/hard-and-soft-iron-magnetic-compensation-explained/ community.freescale.com/community/the-embeddedbeat/ blog/2011/03/14/hard- and-soft-ironmagnetic-compensation-explained 4. CodeWarrior Integrated Development Environment Software at freescale.com/codewarrior 5. Kinetis Design Studio Integrated Development Environment 6. "Euler Angles" at http://en.wikipedia.org/wiki/Euler_Angles 7. "Introduction to Random Signals and Applied Kalman Filtering", 3rd edition, by Robert Grover brown and Patrick Y.C. Hwang, John Wiley & Sons, 1997 8. "Quaternions and Rotation Sequences", Jack B. Kuipers, Princeton University Press, 1999 9. Freescale Freedom development platform home page at freescale.com/freedom 10. OpenSDA User’s Guide, Freescale Semiconductor, Rev 0.93, 2012-09-18 11. PE micro Open SDA Support 12. PE micro Embedded OSBDM support 13. Matlab computer software by MathWorks—http://www.mathworks.com/products/ matlab/ 14. www.freescale.com/opensda 4 Mechanical and Electrical Specifications 4.1 General Considerations Fusion algorithms can be tuned to trade off one performance parameter versus another. Examples include: • Speedy handling of magnetic interference versus slower convergence to magnetic north • Smoothness versus responsiveness • Accuracy versus bandwidth NOTE All of the above means that there is no one correct configuration. Accordingly, this datasheet presents typical performance as observed on the sample projects supplied by Freescale on specific Freescale development platforms. No attempt has been made to measure a statistically significant number of boards. Measured values are typically those observed on as few as one board. 12 Freescale Sensor Fusion Library for Kinetis MCUs, Rev. 0.7, 9/2015 Freescale Semiconductor, Inc. 4.2 Hardware Platforms Used to Measure Performance In the following subsections, some parametrics are measured, some represent simulated results. There are multiple methods used to determine parametrics. These make use of hardware platforms for benchmarking purposes, in addition to Matlab. Kinetis Cortex M0+ This configuration is composed of a Freescale KL25Z, KL46Z or KL26Z Freedom development platform paired with a FXS-MULT2-B Bluetooth-enabled sensor board1. Use of Bluetooth allows the board to be rotated freely, untethered by cords or power cables. Table 4. Cortex M0+ Test Configuration Component / Parameter Baseboard Value FRDM-KL25Z / FRDM-KL26Z / FRDM-KL-46Z Sensor Board FRDM-FXS-MULT2-B MCU Kinetis MKL25Z128VLK4 / MKL26Z128VLH4 / MKL46Z256VMC4 CPU ARM® Cortex M0+ CPU Clock 48 MHz Bus Clock 24 MHz Accelerometer FXOS8700CQ Magnetometer Gyroscope FXAS21000 Sensor Sampling Rate 200 Hz Fusion Rate 25 Hz Magnetic Calibration Rate Twice per minute once full calibration is reached This board combination is battery powered and nominally regulated to 3.3 V for use by the sensors in question. 1 The primary difference between the FRDM-FXS-MULTI-B and FRDM-FXS-MULT2-B is that the latter includes a production FXAS21002 gyroscope, whereas the former used FXAS21000 pre-production units. The FRDMFXS-MULTI-B board is no longer in production, but continues to be supported by the kit. The two boards are similar in appearance. Freescale Sensor Fusion Library for Kinetis MCUs, Rev. 0.7, 9/2015 Freescale Semiconductor, Inc. Mechanical and Electrical Specifications Figure 8. FRDM-KL25Z / FRDM-FXS-MULTI-B sensor fusion prototype platform Figure 9. Expanded Diagram of FRDM-FXS-MULT2-B Sensor Board 14 Freescale Sensor Fusion Library for Kinetis MCUs, Rev. 0.7, 9/2015 Freescale Semiconductor, Inc. Kinetis Cortex M4 Table 5. Kinetis Cortex M4 Component / Parameter Value Baseboard FRDM-K20D50M Sensor Board FRDM-FXS-MULT2-B MCU Kinetis MK20DX128VLH5 CPU ARM® Cortex M4 CPU Clock 48 MHz Bus Clock 24 MHz Accelerometer FXOS8700CQ Magnetometer Gyroscope FXAS21000 Sensor Sampling Rate 200 Hz Fusion Rate 25 Hz Magnetic Calibration Rate Twice per minute once full calibration is reached This board combination is battery powered and nominally regulated to 3.3 V for use by the sensors in question. Physically, the FRDM-K20D50M / FRDM-FXS-MULT2- B board combination is similar to the KL25Z variant shown in Figure 8, with the exception that the bottom board is red. Kinetis Cortex M4 with FPU Table 6. Kinetis Cortex M4 with FPU Component / Parameter Value Baseboard FRDM-K64F / FRDM-K22F Sensor Board FRDM-FXS-MULT2-B MCU Kinetis MK64FN1M0VLL12 / MK22FN512VLH12 CPU ARM® Cortex M4 with FPU CPU Clock 120 MHz Bus Clock 60 MHz Accelerometer FXOS8700CQ Magnetometer Gyroscope FXAS21000 Sensor Sampling Rate 200 Hz Fusion Rate 25 Hz Magnetic Calibration Rate Twice per minute once full calibration is reached The FRDM-K64F /FRDM-K22F / FRDM-FXS-MULTI-B board combinations are similar to the KL25Z variant shown in Figure 8, except that the bottom base board is different. Freescale Sensor Fusion Library for Kinetis MCUs, Rev. 0.7, 9/2015 Freescale Semiconductor, Inc. Mechanical and Electrical Specifications 4.3 Simulation Environments Many parameters are difficult, if not impossible, to reliably measure in a lab or production environment. Ambient magnetic fields vary tremendously in indoor environments. Determining filter sensitivities to various input parameters can only be done in a simulated environment. Accordingly, the subsequent sub-sections sections discuss environments that may be used to explore these areas. Pure Matlab Matlab is commonly used in the early development of sensor fusion algorithms. It can be used to model physical stimulus, expected responses and filter operation. See the next section for details concerning sensorr and environmental models used to construct stimulus. Matlab Stimulus/Expected Response + Hardware Hardware-based Fusion Once algorithms are functional, they are translated into C, optimized and then optimized again. The result often makes use of fixed point arit arithmetic hmetic running on an MCU to compute results. To ensure bitbit accurate results, a mixture of Matlab (used to generate test stimulus and expected response) and hardware (used to run the filter) are used to determine many parameters. Simulated values were computed ted with version 4.17 of the sensor fusion library. Version 4.22 should have almost identical results. Version 5.00 is expected to have better dynamic tracking than indicated in this datasheet, but simulations are still outstanding. Figure 10. Mixed Simulation/Hardware Characterization Unless stated otherwise elsewhere, parameters used to create the simulated sensors and environment are: • Earth magnetic field corresponding to U.S. zip code 85284 (Tempe, Arizona) on 7 November 2013 as determined using the NOAA calculator at ngdc.noaa.gov/geomag-web — Declination: 10 degrees 39’ 36” — Inclination: 59 degrees 32’ 53” — Horizontal Intensity: 24.2976 µT — North Component (+N | -S): 23.8782 µT — East Component (+E | -W): 4.4945 µT — Vertical Component (+D | -U): U): 41.3285 µT 16 Freescale Sensor Fusion Library for Kinetis MCUs, Rev. 0.7, 9/2015 Freescale Semiconductor, Inc. — Total field: 47.9418 µT • Ideal accelerometer model + simple noise — Sample rate = 200 Hz — milli-g noise on X,Y,Z — 1 g = 9.80665 m/s2 assumed • Ideal magnetometer model + simple nose — Sample rate = 200 Hz — X, Y noise 0.85 µT; Z noise 1.3 µT • No hard/soft iron distortion • Ideal gyroscope model and simple noise — Sample rate 200 Hz — X, Y, Z noise 0.3 dps based Trajectory & Sensor Simulation Toolkit (TSim) is used to For all tests, the Freescale Matlab-based create DUT trajectories and simulated sensors readings. Some of the tests require that magnetic calibration procedure is run before the test to initialize the sensor fusion software magnetic buffer. Magnetic calibration is implemented as a trajectory made up of a sequence of random rotations lasting 30seconds. Benchtop Rotary Table based system is shown in Figure 11. In this case, Matlab is used to control a A variant on the Matlab-based desktop rotary table and to post-process process the fusion results into reports. Physical sensor readings are used to drive the fusion routines. Because indoor environments vary magnetically, results may vary from day to day as the setup is moved or electronics in the area cycle on and off. Results will also change simply because the state of the magnetic buffer is continuously updated. Figure 11. Benchtop Rotary Table Setup Freescale Sensor Fusion Library for Kinetis MCUs MCUs, Rev. 0.7, 9/2015 Freescale Semiconductor, Inc. Mechanical and Electrical Specifications 4.4 Frame of Reference Table summarizes differences between the standard frames of reference supported by the fusion library. Table 7. Frame of Reference Variations NED Android Windows 8 Axes alignment NED ENU ENU Angle rotation order Yaw then pitch then roll Yaw then roll then pitch Yaw then pitch then roll Gimbal lock Roll instability (x axis) at ±90 deg pitch (y axis) Pitch instability (x axis) at ±90 deg roll (y axis) Roll instability (y axis) at ±90 deg pitch (x axis) Roll range Clockwise –180 to 180 deg Anti-clockwise –90 to 90 deg Clockwise –90 to 90 deg Pitch range –90 to 90 deg –180 to 180 deg –180 to 180 deg Yaw range 0 to 360 0 to 360 0 to 360 Compass heading Yaw Yaw –Yaw 1. A clockwise rotation is defined as one that is positive in the Right-Hand-Rule (RHR) sense. 4.5 Electrical Specifications The parameters in each table are measured using the configurations defined in Hardware Platforms Used to Measure Performance. The MCU currents are estimated using the process defined in MCU Current. Tables 8 and 9 were developed using the build #5.00 of the Sensor Fusion Library. Table 8. Typical IDD for FRDM-KL26Z only Function Fusion Idd @ 25Hz rate (mA) Fusion Idd / Hz (mA) Accel only 0.25 0.01 2D Mag 0.19 0.01 Gyro only 0.74 0.03 Accel + Mag, eCompass 0.31 0.01 Accel + Gyro 0.92 0.04 9-axis 3.20 0.13 subtotal 5.61 0.22 estimated RTOS/other 2.79 0.44 Table 9. 9-Axis IDD as a Function of Board and Development Tool Function FRDM-K64F FRDM-K22F FRDM-K20D50M FRDM-KL46Z FRDM-KL26Z FRDM-KL25 18 Fusion Idd @ 25Hz rate (mA) Fusion Idd / Hz (mA) Compiled with CodeWarrior Compiled with KDS 0.40 N/A 3.53 3.70 3.20 2.47 0.51 0.41 4.11 4.16 3.76 2.93 Freescale Sensor Fusion Library for Kinetis MCUs, Rev. 0.7, 9/2015 Freescale Semiconductor, Inc. 4.6 Computation Metrics The Sensor Fusion Library computations are measured directly using the Sensor Fusion Toolbox and the ARM® sysTick clock. 4.6.1 Statistics from Build #5.00 of the Sensor Fusion Library For the current build (5.00), Freescale used the built in sysTick counter to measure each iteration of the algorithm in units of CPU clock cycles. The customer can repeat the exact same measurement, because both PC and Android Sensor Fusion Toolboxes display this information in a real-time basis. The test results will vary depending device movement are presented as “typical” numbers. Table 10. SysTick Values for Freedom Development Platforms and Sensor Combinations Freedom Platform Accel 2D Mag Gyro eCompass Accel +Gyro 9-axis SysTick Values for CodeWarrior Build 5.00 in kTicks KL25Z 58 46 172 72 208 740 KL26Z 58 45 171 71 210 740 KL46Z 59 45 171 72 207 740 K20D50M 34 26 63 42 157 509 K64F 3.1 2.86 4.5 3.6 10.6 50.5 KL25Z 58 46 172 72 208 740 SysTick Values for KDS Build 5.00 in kTicks KL25Z 59 47 174 74 211 840 KL26Z 61 48 173 75 211 860 KL46Z 60 49 174 74 210 840 K20D50M 35 27 66 44 160 580 K64F 3.3 3.1 4.9 3.9 11.4 54.6 K22F 3.9 3.7 5.8 4.4 13.4 59.1 Freescale Sensor Fusion Library for Kinetis MCUs, Rev. 0.7, 9/2015 Freescale Semiconductor, Inc. Mechanical and Electrical Specifications Table 11. Memory Requirements for “All Algorithms” Builds Freedom Platform Text Data BSS Flash RAM CodeWarrior FRDM-KL25Z 96028 72 14776 96100 14848 FRDM-KL26Z 96020 72 14780 96092 14852 FRDM-KL46Z 95956 72 14780 96028 14852 FRDM-K20D50M 88116 72 14972 88188 15044 FRDM-K64F 79724 84 KDS 16484 79808 16568 FRDM-KL25Z 77812 172 14816 77984 14988 FRDM-KL26Z 77828 172 14816 78000 14988 FRDM-KL46Z 77772 172 14816 77944 14988 FRDM-K20D50M 67356 172 15008 67528 15180 FRDM-K64F 65024 184 16652 65208 16836 FRDM-K22F 62268 184 16492 62452 16676 Table 12. CodeWarrior Memory Requirements for FRDM-KL25Z and Single Algorithm Freedom Platform Text Data BSS Flash RAM Accel (Tilt) 2D Mag Gyro Only Accel/Mag Accel/Gyro 9-axis 34280 53904 33944 55172 54716 75552 64 64 64 64 72 64 12580 12580 12528 12588 12892 13664 34344 53968 34008 55236 54788 75616 12644 12644 12592 12652 12964 13728 4.7 Magnetic Calibration Metrics 4.7.1 Background Hard-iron effects are due to magnetic materials in the vicinity of the sensor. These materials result in an apparent offset to sensor readings when the source of interference is fixed spatially, relative to the sensor. For a given point in space, plotting magnetometer measurements at various sensor rotations results in the sphere shown on the right hand side of Figure 12. This makes sense, as the magnitude of the 3D magnetic field should not change just because the sensor is rotated. Soft-iron effects result from the interaction of ferrous materials near the sensor interacting with the ambient magnetic field. If the source of soft iron interference is again fixed spatially with respect to the sensor and does not demonstrate magnetic hysteresis, then the sphere of plotted measurements is distorted into an ellipsoid. This is shown (along with a hard-iron offset) on the left side of Figure 12. Reference 2: Orientation Representations provides background on the topic of hard- and soft-iron magnetic compensation. For the case where the sensor and sources of interference are spatially fixed with respect to one another, the distortions are linear, and can be reversed mathematically. This is the function of the Freescale magnetic calibration library. 20 Freescale Sensor Fusion Library for Kinetis MCUs, Rev. 0.7, 9/2015 Freescale Semiconductor, Inc. Figure 12. Distorted (left) and Corrected (right) Magnetic Field Data (simulated) Both hard- and soft-iron interferences are a function of the sensor environment, and not the sensor itself. Each product design will inevitably result in different distortions. Engineers assigned the task of physically designing PCBs and housings should pay careful attention to sources of magnetic interference early in the design phase. Inductive charging films found in some portable devices exhibit a significant amount of magnetic hysteresis. This is a nonlinear phenomena and cannot be fully corrected by the Freescale magnetic calibration library. 4.7.2 The Magnetic Buffer Freescale’s magnetic calibration library performs a total least squares fit of a number of data points to map the measured ellipsoid of measurements back into the ideal sphere. Quality of that fit improves as number and spacing of samples across the ellipsoid surface increases. There is a tradeoff in terms of data set size used for calibration versus CPU resources versus quality of fit. Figure 13 shows improvement in standard deviation of computed results (for a uniform field) versus constellation size. Freescale Sensor Fusion Library for Kinetis MCUs, Rev. 0.7, 9/2015 Freescale Semiconductor, Inc. Mechanical and Electrical Specifications Figure 13. Simulated Standard Deviation and Variance as f(constellation size) 4.7.3 Magnetic Calibration Performance Metrics Table 13 provides some basic guidance with regard to performance of the magnetic calibration library in a stand-alone configuration. Table 13. Magnetic Calibration Performance Metrics Characteristic Symbol Conditions Min Typ Max Unit Compass heading linearity; see Compass Heading Linearity and Accuracy TBD — — <5 — degrees Compass heading accuracy; see Compass Heading Linearity and Accuracy TBD — <5 — degrees NOTE: The results shown in this table are more conservative than simulated numbers, and are more likely to be representative of actual results. 4.8 Fusion Model Performance Metrics 4.8.1 Background The six and nine-axis Kalman filters are optimized for calculation of device orientation. Unmodelled sources of error will affect the other sensor outputs. Tradeoffs are a function of the Kalman filter configuration and are subject to change. Separate tables are presented for each of the sensor combination options provided by the Fusion Library. Common test conditions and setups are used for all options. 22 Freescale Sensor Fusion Library for Kinetis MCUs, Rev. 0.7, 9/2015 Freescale Semiconductor, Inc. NOTE: Results that follow are simulated build 4.17 using basic sensor models odels which include noise effects, but ignore nonlinearity and other factors. See Simulation Environments for details. Build uild 5.00 dynamic performance is expected to be improved from the 4.17 plots shown here. 4.8.2 Gyro Offset Step Response Gyro Offset Step Response plots are shown in Figure 14 and Figure 15 for 9-axis axis and 6- axis Accelerometer+Gyro algorithms, respectively and provide an indication of the responsiveness of the system to changes in gyro offsets. The simulation artificially introduces a step in the modeled gyro offset. However, under normal circumstances, gy gyro ro offsets change very slowly. The only times that a change such as this would likely occur are: • at powerup • if the gyro has an autonomous offset cancellation circuit (which Freescale recommends be turned OFF). Figure 14. Gyro Offset Step Response for 9-Axis algorithm Freescale Sensor Fusion Library for Kinetis MCUs MCUs, Rev. 0.7, 9/2015 Freescale Semiconductor, Inc. Mechanical and Electrical Specifications Figure 15. Gyro Offset Step Response for 6 6-Axis Axis Accelerometer+Gyro algorithm 4.8.3 Error in Computed Linear Acceleration Estimation of linear acceleration in the 9 9-axis algorithm is optimized for or short duration accelerations lasting less than 1 second. Continuous accelerations are inconsistent with modeled dynamics, and the acceleration estimation error increases. The acceleration error starts leaking into the estimates of orientation resulting in errors in gyro offset and magnetic disturbance estimates. Figure 16, 16 Figure 17 and Figure 18 present the true and 9 9-axis axis algorithm calculated linear acceleration for accelerations lasting 0.5 s, 1 s and 5 s respectively. Figure 16. True and calculated linear acceleration, acceleration time 0.5 s 24 Freescale Sensor Fusion Library for Kinetis MCUs, Rev. 0.7, 9/2015 Freescale Semiconductor, Inc. Figure 17. True and calculated linear acceleration, acceleration time 1 s Figure 18. True and calculated linear acceleration, acceleration time 5 s Similar dependence on the magnetic pulse duration time was noticed in the Orientation Magnetic Immunity tests. A slow-moving moving magnet introduces a longer lasting magnetic field disturbance pulse than a fast-moving moving magnet. The longer the magnetic disturbance pulse lasts, the greater the orientation error it causes on the output of the fusion algorithm. 4.8.4 Limitations Imposed via Sensor Choice/Configuration Table 14 represents the sensor configuration used to determine parameters specified in this datasheet. Freescale Sensor Fusion Library ry for Kinetis MCUs MCUs, Rev. 0.7, 9/2015 Freescale Semiconductor, Inc. Mechanical and Electrical Specifications Table 14. Sensor/Configuration Imposed Limitations Symbol Min Max Unit Maximum Angular Rate Characteristic ARmax –2000 +2000 dps Linear Acceleration LAmax –4 +4 g Magnetic Field Bmax –1200 +1200 µT It is believed that the fusion algorithms themselves have no upper limits on any of the parameters above. These are strictly limits associated with the specific physical sensors used to characterize the library. 4.8.5 9-Axis Parametrics Table 15 provides guidance for the 9-axis (accelerometer/magnetometer/gyro) indirect Kalman filter implementation. NOTE: All parametrics provided in the following table are based on build 4.17 simulations. Build 5.00 simulations are still pending. Table 15. 9-axis Sensor Fusion Performance Metrics Characteristic Symbol Conditions(s) Min Typ Max Unit Orientation static drift OSD See Orientation Static Drift — 0.05 — degrees Orientation static noise OSN See Orientation Static Noise — 1.21 — degrees RMS Orientation dynamic drift ODD See Orientation Dynamic Drift — 0.17 — degrees — dps Max angular Rate ARMAX See Maximum Angular Rate — 1600 Error! Reference source not found. Orientation response delay ORD Gyro offset step response TGOSR 2 See Orientation Response Delay — <1 — fusion time interval See Gyro Offset Step Response — 3.76 — seconds Error in computed linear acceleration LAE See Error in Computed Linear Acceleration — 0.243 — g Compass heading 3 linearity CHl See Compass Heading Linearity and Accuracy — 1.02 — degrees Compass heading accuracy CHacc — 1.37 — degrees Orientation magnetic immunity - static device Omis See Orientation Magnetic Immunity (Static Device) — 9.36 — degrees Orientation magnetic immunity - moving device Omim See Orientation Magnetic Immunity (Moving Device) — 8.98 — degrees 26 Freescale Sensor Fusion Library for Kinetis MCUs, Rev. 0.7, 9/2015 Freescale Semiconductor, Inc. 1. 2. 3. The Sensor Fusion algorithm has no intrinsic limitation; this was the maximum value supported by the gryo in Freescale testing. Number of output sampling periods where one period = 40 ms Linear sensors, which yields very good compass heading values were assumed. However experience shows that +/5 degrees are more realistic values. 4.8.6 6-axis Accelerometer + Magnetometer Parametrics NOTE: All parametrics provided in the following table are based on build 4.17 simulations. Build 5.00 is believed to have similar performance. Table 16. 6-axis Sensor Fusion Accel + Mag Performance Metrics Characteristic Symbol Conditions(s) Min Typ Max Unit Orientation static drift OSD See Orientation Static Drift — 0.0018 — degrees Orientation static noise OSN See Orientation Static Noise — 1.06 — degrees RMS Orientation dynamic drift ODD See Orientation Dynamic Drift — 1.16 — degrees Orientation response delay ORD See Orientation Response Delay — <10 — sample Er periods ror! Reference source not found. 2 Compass heading linearity CHl Compass heading accuracy2 CHacc 1. 2. See Compass Heading Linearity and Accuracy — 1.20 — degrees — 1.58 — degrees Number of output sampling periods where one period = 40 ms Linear sensors, which yields very good compass heading values were assumed. However, experience shows that ±5 degrees are more realistic values. 4.8.7 6-axis Accelerometer + Gyro Parametrics NOTE: All parametrics provided in the following table are based on build 4.17 simulations. Build 5.00 is believed to have similar static and improved dynamic performance. Table 17. 6-axis Sensor Fusion Gyro + Accel Performance Metrics Characteristic Symbol Conditions(s) Min Typ Max Unit Orientation static drift OSD See Orientation Static Drift — 19.07 — degrees Orientation static noise OSN See Orientation Static Noise — 0.068 — degrees RMS Orientation dynamic drift ODD See Orientation Dynamic Drift — 2.04 — degrees See Maximum Angular Rate — 1440 — dps Max angular Rate ARMAX Orientation response delay ORD See Orientation Response Error! Reference source not found. Delay — <1 — sample 2 periods Gyro offset step response TBD See Gyro Offset Step Response — 3.76 — seconds Freescale Sensor Fusion Library for Kinetis MCUs, Rev. 0.7, 9/2015 Freescale Semiconductor, Inc. Test Descriptions 1. 2. Output sampling period = 40 ms Number of output sampling periods where one period = 40 ms 4.8.8 3-axis Accelerometer Only Parametrics NOTE: All parametrics provided in the following table are based on build 4.17 simulations. Build 5.00 should be similar. Table 18. 3-axis Accelerometer Performance Metrics Characteristics Symbol Conditions Min Typ Max Units Tilt Error RMS TAE Note 1 — 0.082 — degrees Orientation response delay ORD See Orientation Response 2 Delay — <5 — output sample period 1. RMS of accelerometer tilt angle error is calculated using the simulated sensor noise RMS values along each of the three axes and the following formula (given for tilt error from the z-axis) TAE = arctan 2. , where NRMSx, NRMSy, NRMSz - RMS values of accelerometer noise for X, Y, Z axes in g units. Number of output sampling periods where one period = 40 ms 5 Test Descriptions Each of the following sub-sections defines the specification intent and the sample procedure for the specifications listed in Mechanical and Electrical Specifications. Procedures may evolve in future drafts of this document in order to better service the specification intents. 5.1 MCU Current 5.1.1 Intent This is the average current consumption of the MCU executing the core Fusion routines. This is obviously specific to the particular MCUs listed. This metric must be associated with a specific hardware configuration similar to those defined earlier in this document. The Freedom Development Platform was powered via the OpenSDA USB port for the results specified. 5.1.2 Procedure 1. This procedure uses modified versions of the standard demo build: a. Measure (using the Sensor Fusion Toolbox) sysTickfusion which only includes time spent in the core fusion routines. It does not include: 1) calls to magnetic calibration 2) reading sensor data 3) applying hardware abstraction layer 4) RTOS 5) Communications overhead 28 Freescale Sensor Fusion Library for Kinetis MCUs, Rev. 0.7, 9/2015 Freescale Semiconductor, Inc. 2. Percentage of time spent in the core fusion routines = 100*sysTickfusion / total_sysTicks2 3. Idd Current into the MCU is measured via power jumper on the board using a simple DVM3 4. Fusion Idd = MCU Idd X percentage 5. All currents shown are in mA 6. Sample size = 1 board For devices with floating point units, this may yield a somewhat optimistic number, as the computation makes the assumption that all MCU instructions consume the same amount of power. In fact, we can expect floating point instructions to consume a bit more. 5.2 Flash and RAM Required 5.2.1 Intent These parameters are total RAM and flash memory required to implement and execute the Fusion Library plus MQX-Lite RTOS. The projects for the binaries were created using both CodeWarrior and Kinetis Design Studio. Values for Text, Data and BSS were read directly from the console window after builds completed. This includes space for code storage, static and dynamic (stack) variables. This metric must be associated with a specific hardware configuration similar to those defined in earlier in this document. 5.2.2 Procedure The text, data and bss sizes for each build were extracted using the technique outlined at MCU on Eclipse; text, data and bss: Code and Data Size Explained. 1. text; includes the user code, the vector table plus constants. 2. data; is for initialized variables, and it counts for RAM and FLASH. The linker allocates the data in FLASH which then is copied from ROM to RAM in the startup code. 3. bss; is for the uninitialized data in RAM which is initialized with zero in the startup code. Refer to Computation Metrics for statistics gathered using the 5.00 build. 5.3 Fusion Loop Execution Time This is simply CPU cycle time X sysTickfusion as measured in Section 5.1. 5.4 Compass Heading Linearity and Accuracy 5.4.1 Intent Linearity is defined as the deviation of measured data from a least squares straight line approximation of that data. Absolute accuracy is defined as the maximum difference between measured and ideal values. 2 3 Which is simply the clock rate of the MCU divided by the sensor fusion rate (nominally 25) Consult the user guide / schematic for your Freedom board to determine the specific jumper number applicable to that board. Freescale Sensor Fusion Library for Kinetis MCUs, Rev. 0.7, 9/2015 Freescale Semiconductor, Inc. Test Descriptions These two concepts are illustrated in Figure 19. This metric must be stated specifically for a hardware configuration similar to those defined earlier in this document. Figure 19. Nonlinearity vs. Absolute Accuracy 5.4.2 Procedure Heading Linearity Hardware-based based Fusion. Fusion Matlab is used to Setup as defined in Matlab Stimulus/Expected Response + Hardware post-process data. 1. Precondition the DUT by executing magnetic calibration trajectory leaving DUT in AZ = + 1 orientation (See Matlab Stimulus/Expected Response + Hardware Hardware-based based Fusion) Fusion 2. Rotate DUT around the z-axis axis from 0 to 360 degrees with an increment step of 10 degrees as follows 3. Program rate table with desired steps and maximum velocity a. Rotate tabletop by 10 degrees over 0.5 second per period b. Pause 0.5 seconds c. Read orientation d. Repeat steps a-cc above until 360 degrees is reached. Absolute Heading Accuracy These numbers are based on simulations that are idealized models. The real real-world world values will tend to be approximately 5 degrees. 30 Freescale Sensor Fusion Library for Kinetis MCUs, Rev. 0.7, 9/2015 Freescale Semiconductor, Inc. 5.5 Orientation Static Drift 5.5.1 Intent The maximum change in orientation observed for a DUT remaining motionless for 100 seconds. 5.5.2 Procedure Setup as defined in Matlab Stimulus/Expected Response + Hardware Hardware-based based Fusion. Fusion Matlab is used to post-process data. tric must be associated with a specific hardware configuration similar to those defined in earlier This metric in this document.. Matlab is used to record and post post- process data. 1. Precondition the DUT by executing magnetic calibration trajectory leaving DUT in a given orientation. 2. While the DUT remains in given orientation collect orientation samples for 120 seconds. 3. Plot and process the last 100 s of the test. Orientation static drift is the maximum angle change in the measured rotation vectors. 4. Repeat steps 1-3 for all 6 major orientations of the development board as shown in Figure 20. Figure 20 20. Major orientations relative to gravity Freescale Sensor Fusion Library for Kinetis MCUs MCUs, Rev. 0.7, 9/2015 Freescale Semiconductor, Inc. Test Descriptions 5.6 Orientation Static Noise 5.6.1 Intent RMS noise as a function of orientation for a motionless DUT. 5.6.2 Procedure This can be based upon data gathered for the orientation static drift test. The classic standard deviation equation is used to compute the metric/value. 5.7 Orientation Dynamic Drift 5.7.1 Intent Measure of the ability of fusion code to return to a known orientation after movement. 5.7.2 Procedure Setup as defined in Matlab Stimulus/Expected Response + Hardware-based Fusion and in Figure 9. Matlab is used to post-process data. 1. Precondition the DUT by executing magnetic calibration trajectory leaving DUT in a given orientation. 2. Keep DUT in a given orientation motionless for 2 seconds. 3. Rotate DUT at 0.5 revolution/sec for 10 seconds around vertical axis. 4. Keep DUT in its last orientation motionless for 2 seconds. 5. Determine the initial orientation by averaging orientation samples from the initial motionless period and the final orientation by averaging the samples from the final motionless period. The difference between the two orientations is the orientation dynamic drift. 6. Repeat steps 1-5 for all six major orientations of the development board. 5.8 Maximum Angular Rate 5.8.1 Intent This test determines the maximum rotation rate for which the filter is able to correctly track orientation. 5.8.2 Procedure Setup as defined in Matlab Stimulus/Expected Response + Hardware-based Fusion. Matlab is used to post-process data. 1. Rotate DUT around X axis five times starting at rotation rate 360 dps. 2. Plot the ideal simulated orientation together with the orientation samples calculated by Kalman filter fusion algorithms: 9DOF and 6DOF Accelerometer + Gyro and notice if fusion data tracks the ideal orientation. 3. Increase the rotation rate by 360 dps and repeat steps 1 and 2. 4. The highest angular rate at which the fusion algorithm orientation still tracks the ideal simulated orientation is the maximum angular rate. 32 Freescale Sensor Fusion Library for Kinetis MCUs, Rev. 0.7, 9/2015 Freescale Semiconductor, Inc. 5.9 Orientation Response Delay 5.9.1 Waveform Definitions 90° Input Change in Orientation The 90° input orientation change waveform is defined as: • From any starting orientation • Through the center of mass of the accelerometer • A change in one of roll, pitch or yaw (global frame) • Orientation change = ±90° • Orientation change is linear in time • Transition period = 1.0 seconds • Propagation delays are measured from the 1/2 point (±45°) Output Orientation Changes When measuring changes in orientation, there are many ways to get from orientation A to orientation B. It is assumed that output orientation changes should track input orientation changes. The Fusion Library will inherently output those values. However, to avoid any ambiguity when measuring propagation delays, the 50% point in computed orientations changes is defined as shown in Figure 21. Figure 21. Propagation delays are measured at the plane that bi bisects sects and is perpendicular to SLERPA–B 5.9.2 Intent Orientation response delay is measured from change in physical orientation to the related change in fusion orientation output. 5.9.3 Procedure Using 90° input orientation change as defined in 90° Input Change in Orientation,, the response delay is measured from the 50% point on the input wav waveform eform to the 50% point of the output waveform as defined in Output Orientation Changes Changes. Freescale Sensor Fusion Library for Kinetis MCUs MCUs, Rev. 0.7, 9/2015 Freescale Semiconductor, Inc. Test Descriptions 5.10 Orientation Magnetic Immunity (Static Device) 5.10.1 Intent The test response of the stationary DUT to momentary changes in the local magnetic field is used to measure the orientation magnetic immunity. Because the device is stationary, the accelerometer and gyroscope readings remain relatively constant, changing only due to sensor noise. 5.10.2 Procedure Setup as defined in Matlab Stimulus/Expected Response + Hardware-based Fusion. Matlab is used to post-process data. 1. 2. 3. 4. Starting point = device stationary, fusion outputs stable 100 µT magnet moving at 0.25 m/s Closest approach to magnetic sensor = 5 cm Test to be simulated using environment specified in Matlab Stimulus/Expected Response + Hardware-based Fusion. Magnetic interference may be modeled as a time varying field which is consistent with the description above. 5.11 Orientation Magnetic Immunity (Moving Device) 5.11.1 Intent This test measures the immunity of a linearly, with no rotation, moving DUT to a 100 µT magnet change in the magnetic field. The outputs of all acceleration and magnetic sensors change during this test. Gyro outputs should be constant throughout, with any changes attributed to noise only. 5.11.2 1. 2. 3. 4. Procedure Starting point = device stationary, fusion outputs stable. Use a 100 µT magnet. The DUT moves by magnet at 0.25 m/s with the closest approach to magnet=5cm. Test to be simulated using environment specified in Matlab Stimulus/Expected Response + Hardware-based Fusion. Magnetic interference may be modeled as a location varying field which is consistent with the description above. 5.12 Error in Computed Gyro Bias 5.12.1 Intent Measure how well the fusion library tracks slowly varying gyro bias. 5.12.2 Procedure Test to be simulated using environment specified in Matlab Stimulus/Expected Response + Hardwarebased Fusion. 1. Starting point = device stationary, fusion outputs stable 2. Add 10 dps gyro offset as step function 3. Run test until computed gyro offset stabilizes 34 Freescale Sensor Fusion Library for Kinetis MCUs, Rev. 0.7, 9/2015 Freescale Semiconductor, Inc. 4. Note computed/actual for final value 5. Note response time 5.13 Gyro Offset Step Response 5.13.1 Intent Measure how well the fusion library tracks varying gyro offset. 5.13.2 Procedure Setup as defined in Matlab Stimulus/Expected Response + Hardware-based Fusion. Matlab is used to post-process data. 1. 2. 3. 4. Starting point = DUT is stationary and fusion outputs are stable. Add offset of 10 dps to gyro X read data. Run test until computed gyro offset stabilizes. Plot the gyro read data step function and the response fusion algorithm estimated offset. Record response time as time between 50% step change in gyro X read data and 50% change in fusion algorithm estimated gyro X offset. 5.14 Error in Computed Linear Acceleration 5.14.1 Intent Measure how well the fusion library tracks linear acceleration. 5.14.2 Procedure Setup as defined in Matlab Stimulus/Expected Response + Hardware-based Fusion. Matlab is used to post-process data. 1. Starting point = DUT is stationary and fusion outputs are stable. 2. Subject DUT to acceleration A*sin(2*pi*f*t), where: A = 2 g, f = 1 Hz, t = zero to one second (1 period), pi = 3.141592654 3. Plot the ideal DUT acceleration and fusion algorithm computed acceleration. Determine the maximum error between the two accelerations. Freescale Sensor Fusion Library for Kinetis MCUs, Rev. 0.7, 9/2015 Freescale Semiconductor, Inc. Revision history for FSFLK_DS 6 Revision history for FSFLK_DS Rev. No. 36 Date Description 0 12 Nov 2013 • ROUGH DRAFT ONLY - PRE-REVIEW 0.1 22 Nov 2013 • Preliminary draft includes updates from 1st review. 0.2 Feb 2014 • Initial public release. 0.3 Apr 2014 • Updated for licensing, software updates and board support changes. 0.4 May 2014 0.5 Sept 2014 0.6 Sept 2014 0.7 Sept 2015 • Updated for software updates, additional (FRDM-K64F) board support changes and electrical specs and computation metrics. • Updated Fusion Performance Metrics section by adding four new figures and tables. • adjusted selected parametric values • altered several Test Description procedures. • Separated out Computational Metrics section and various minor markups • Changed Feature - License, option text. • Feature Comparison Based on License Option, Added KDS to Product Deliverables row • Moved sections 4.1, 4.1.1 & 4.1.2 and merged in 4.11 • Added xrefs from Electrical Specs tables to appropriate Test Description sections • Adjusted Performance Metric tables, symbols and units in some cases • Updated for build 5.00 of the sensor fusion library. This version has completely redesigned 6 and 9-axis Kalman filters. • Updated all computation metrics. • Removed outdated fusion time measurements. • Added K22F for KDS. Added additional fusion options. • Changed document name from XSFLK_DS to FSFLK_DS. • Noted that MULTI-B boards have been replaced with MULT2-B boards. Freescale Sensor Fusion Library for Kinetis MCUs, Rev. 0.7, 9/2015 Freescale Semiconductor, Inc. How to Reach Us: Home Page: freescale.com Web Support: freescale.com/support Information in this document is provided solely to enable system and software implementers to use Freescale products. There are no express or implied copyright licenses granted hereunder to design or fabricate any integrated circuits based on the information in this document. Freescale reserves the right to make changes without further notice to any products herein. Freescale makes no warranty, representation, or guarantee regarding the suitability of its products for any particular purpose, nor does Freescale assume any liability arising out of the application or use of any product or circuit, and specifically disclaims any and all liability, including without limitation consequential or incidental damages. “Typical” parameters that may be provided in Freescale data sheets and/or specifications can and do vary in different applications, and actual performance may vary over time. All operating parameters, including “typicals,” must be validated for each customer application by customer’s technical experts. Freescale does not convey any license under its patent rights nor the rights of others. Freescale sells products pursuant to standard terms and conditions of sale, which can be found at the following address: freescale.com/SalesTermsandConditions. Freescale and the Freescale logo are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. All other product or service names are the property of their respective owners. © 2015 Freescale Semiconductor, Inc. Document Number: FSFLK_DS Revision Rev. 0.7, 9/2015