How does navX2-MXP improve upon the “Classic” navX-MXP sensor?
Improved Sensors: navX2-MXP replaces the now-obsolete MPU-9250 9-axis IMU with the newer 6-axis ISM330DHCX IMU and LIS2MDL Magnetometer from ST Microelectronics; these modern sensors feature significantly lower noise, greater sensor range and stability, higher accuracy and improved shock resistance than the now-obsolete Invensense MPU-9250 found in the “Classic” navX-MXP sensor. Notably, navX2-MXP’s ISM330DHCX IMU is an industrial-class sensor which is extremely stable, has far lower sensor noise characteristics, and handles higher rotation speeds (4000 degrees/second).
Improved Processing Power and Sensor Fusion: navX2-MXP features an upgraded 180Mhz onboard 32-bit floating-point microcontroller which doubles the computation power found on the “Classic” navX-MXP. This additional computation power enables navX2-MXP to introduce a new Kalman Filter-based algorithm with improved accuracy, running at a blazing fast 416Hz update rate and processing +/- 4000 degree/second gyroscope and +/-16G accelerometer data.
As a result of these enhancements:
- Yaw drift is now much lower; when still, the sensor stability, extremely low noise and advanced fusion yield an amazing average of 2 degrees of drift per day if held still (yes, you read that correctly); when moving, yaw drift averages only 0.5 degree/minute.
- Startup time is reduced to only 5 seconds.
- Pitch/Roll accuracy is increased to 0.5 degrees.
- Errors due to Extreme inertial events are minimized: The combination of increased 4000 degree/second gyroscope range, 16G accelerometer range and high-speed Kalman Filter based on this data greatly minimizes Yaw angle errors due to vibration and high-speed impacts.
- Velocity Measurement accuracy is improved: Lower accelerometer noise levels and stability enable very accurate Linear Velocity Vectors.
- Displacement Estimate accuracy is improved: Lower accelerometer noise levels, improved “zero-velocity update” processing, and higher-speed Kalman Filter updates increase the accuracy of displacement estimates, although error levels are still high enough that they are referred to as “estimates” rather than “measurements”.
For more details, please review the navX2-MXP Technical Specifications.
If I currently use the “Classic” navX-MXP, how easy is it to upgrade to the new navX2-MXP?
Simply swap out the existing navX-MXP, replacing it with the new “Generation 2” navX2-MXP. navX2-MXP is identical to navX-MXP from both a hardware and software interface perspective; navX2-MXP is a “drop-in replacement” with enhanced performance.
Why is the 4000 degree/second gyroscope in navX2-MXP useful on a FRC robot?
Simply put, this minimizes yaw errors during high-inertia (e.g., impact) events.
Current consumer-class IMUs typically found on FRC robots (e.g., the “classic” navX-MXP) are limited to measuring rotation at 2000 degrees/second. At first glance, this seems sufficient, since FRC robots don’t typically rotate 6 times per second. However 2000 degrees translates to 20 degrees per 10 millisecond period. If a FRC robot is contacted by a second robot weighing 120 pounds and moving at 12 feet/second, this can cause the first robot to rotate sufficiently to exceed 20 degrees in 10 milliseconds – which in turn causes errors in the accumulated yaw angle.
The ISM330DHCX Product Documentation indicates it includes an “Embedded Machine Learning Core”. That sounds pretty interesting – do the navX2-MXP software libraries make this available currently?
That’s one of the things we’re working on Next….
We expect navX2-MXP’s next-generation IMU Embedded Machine Learning Core to enable development of future real-time Machine Learning-based inertial navigation features.
We’re still studying how robotics teams could use this very cool new capability, and if you have any opinions, please send us your thoughts by emailing us at [email protected].
Will navX2-MXP work with the National Instruments RoboRIO™?
Yes, the navX2-MXP – like it’s predecessor the “Classic” navX-MXP – is designed specifically to work with the RoboRIO. Please see the instructions for installing navX2-MXP onto a FIRST FRC robot for more details, as there are several installation options.
Will navX2-MXP work with the next-generation NI RoboRIO™ 2.0 expected to be first used in the 2022 FRC Season?
Yes, navX2-MXP will work with the next-generation “roboRIO 2.0”, since roboRIO 2.0 is designed to be backwards-compatible with hardware and software from the original roboRIO. More information on this compatibility can be found on the Next Generation Control System Update on the FRC Blog.
Will navX2-MXP work with the Android-based FTC Control System?
Yes. Although in general the Kaua’i Labs navX2-Micro is recommended for use in FTC Control Systems, navX2-MXP can also be used with the Android-based FTC Control System, via its I2C interface. For more information, please see the FTC Robot Installation instructions and the description of the Android Libraries.
What interface/installation options are available for the navX2-MXP?
- Plug-n-play install to the RoboRIO MXP port
- Connection to the RoboRIO MXP port via a male-to-female floppy-disk-style ribbon cable
- Connection to one of the RoboRIO USB Connectors via a USB Cable
- Connection of power (+5VDC)/ground to the navX2-MXP’s MXP Connector, and direct connection to the TTL UART, I2C or SPI pins.
Aren’t the magnetometer (compass heading) readings unreliable when the navX2-MXP is used on a Robot with powerful motors?
Yes, this is correct. If navX2-MXP is mounted nearby any energized motors, the magnetometer’s ability to measure the (weak) earth’s magnetic field is severely diminished.
For this reason, using the magnetometer during a FIRST FRC match is an advanced feature.
However, at the beginning of each FIRST FRC match, the robot is turned on for about a minute before the match begins. During this time period, the motors are not energized and thus do not add magnetic interference that would disturb the magnetometer readings. Once the magnetometer is calibrated, navX2-MXP will return either an accurate magnetometer reading, or an indication that its measurement of the earth’s magnetic field has been disturbed.
Magnetometer readings taken at the beginning of a match, when combined with the navX2-MXP yaw measurements, enable a robot’s pose and absolute heading to be maintained throughout the match. This feature of the navX2-MXP is referred to as a “9-axis” heading.
Why do the Yaw angles provided by the navX2-MXP drift over time?
The short answer is that the yaw angle is calculated by integrating reading from a gyroscope which measures changes in rotation, rather than absolute angles. Over time, small errors in the rotation measurements build up over time. The navX2-MXP features sophisticated digital motion processing and calibration algorithms that limit this error in the yaw angle of ~.5 degree per minute when moving, and ~.2 degree per hour when still. For further details, please see the Yaw Drift page.
Accelerometer data from the navX-MXP’s onboard ISM330DHCX are double-integrated by the navX2-MXP firmware to estimate displacement, and are accurate to approximately .1 meter of error during a 15 second period.
Kaua’i Labs believes that to track a FRC or FTC robot’s position during autonomous requires an accuracy of about 1 cm of error per 15 seconds. While the accuracy of the navX2-MXP displacement estimates might be good enough to track the position of an automobile on a road, it is typically too low for use in tracking a FRC or FTC robot’s position during the 15 second autonomous period, and employing a sensor such as a quadrature encoder on the robot drive wheels is recommended.
The root cause of the displacement estimate error rate is accelerometer noise. Estimating displacement requires first that each acceleration sample be multiple by itself twice (cubed), and then integrated over time. Practically, if a noisy signal is cubed, the result is very noisy, and when this very noisy value is integrated over time, the total amount of error grows very quickly.
The current ISM330DHCX acellerometer noise levels (approximately 60 micro-g per square-root-hertz) would need to be reduced by approximately a factor of 10 (one order of magnitude) before displacement estimates with 1 cm of error per 15 seconds can be achieved by double-integration of accelerometers.
MEMS accelerometers featuring even lower noise levels than the ISM330DHCX continue to emerge, but also continue to be very expensive. KauaiLabs actively researches these technology developments – efforts that led to the selection of the ISM330DHCX for navX2-MXP – and projects that MEMS technology that is both (a) low noise (1 micro-g per square root hertz) and (b) available at low cost will likely occur in the next decade, but technology has not advanced to this point yet. KauaiLabs plans to develop a product which can be used for accurate accelerometer-based dead-reckoning as soon as a reasonably-priced sensor with sufficiently accelerometer is commercially available.
All that said, the navX2-MXP Displacement estimates are far more accurate than those possible with the “Classic” navX-MXP, and with very careful mounting and under controlled circumstances, navX2-MXP Displacement estimates may be sufficient for tracking robot position in certain cases; however we believe other technologies are likely more appropriate for most FRC teams.