How does navX2-Micro improve upon the “Classic” navX-Micro sensor?
- navX2-Micro replaces the older MPU-9250 9-axis IMU with the newer 6-axis LSM6DSM IMU and LIS2MDL Magnetometer from ST Microelectronics; these modern sensors feature lower noise, higher accuracy and improved shock resistance than the Invensense MPU-9250 found in the “Classic” navX-Micro sensor.
- navX2-Micro features an upgraded onboard microcontroller which doubles the speed of that found on the “Classic” navX-Micro.
- navX2-Micro uses a new Kalman Filter-based algorithm with improved accuracy and running at a much higher 416Hz update rate.
- As a result of these enhancements, yaw drift is now much lower, startup time is reduced to only 5 seconds, and pitch/roll accuracy is also increased.
Is navX2-Micro compatible with the “Classic” navX-Micro sensor?
- navX2-Micro is a “drop-in replacement” for navX-Micro, featuring the exact same board footprint, electrical interface and software interface (via USB and I2C) as navX-Micro.
What interface/installation options are available for navX2-Micro?
- Connection to a Android-based FTC Robotics Control System via I2C.
- Connection to a RoboRIO-based FRC Robotics Control System via USB and I2C.
- Connection to a Windows-based PC via a USB Cable
Can navX2-Micro be used with the REV Expansion Hub or Control Hub for FTC?
Yes, navX2-Micro’s I2C interface is compatible with the REV Expansion Hub and the REV Control Hub. Please see the instructions for installing the navX2-Micro on a FTC Control System.
Can navX2-Micro be used with the National Instruments RoboRIO™?
Yes, navX2-Micro USB and I2C interfaces are compatible with the navX-MXP, and can interface to the RoboRIO via the USB or I2C Ports. Please see the instructions for installing the navX2-Micro on a RoboRIO for more details.
Aren’t the magnetometer (compass heading) readings unreliable when the navX2-Micro is used on a Robot with powerful motors?
Yes, this is correct. If the navX2-Micro is mounted nearby any energized motors, the magnetometer’s ability to measure the (weak) earth’s magnetic field is severely diminished. For this reason, most robotics teams avoid using navX2-Micro’s magnetometer data. Magnetometer Calibration is not typically required for use in many FIRST FTC and FRC robot applications, including Field-oriented drive. Magnetometer Calibration is a manual process and is recommended for advanced users who need to calculate absolute heading.
However, at the beginning of each match, the robot will be powered 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, the navX2-Micro 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-Micro yaw measurements, enable a robot’s pose and absolute heading to be maintained throughout the match. This feature of the navX2-Micro is referred to as a “9-axis” heading.
Why do the Yaw angles provided by the navX2-Micro 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-Micro features sophisticated digital motion processing and calibration algorithms that limit this error in the yaw angle of less than ~1 degree per minute; and when the sensor is still, yaw drift is an amazingly low .1 degree per minute. For further details, please see the Yaw Drift page.
Accelerometer data from the navX2-Micros’s onboard sensors are double-integrated by the navX2-Micro firmware to estimate displacement, and are accurate to approximately 1 meter of error during a 15 second period.
To track a FTC or FRC robot’s position during autonomous requires an accuracy of about 1 cm of error per 15 seconds. While the accuracy of the navX2-Micro displacement estimates might be good enough to track the position of an automobile on a road, it is too low for use in tracking a FRC or FTC robot’s position during the 15 second autonomous period.
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 noise levels (approximately 60 micro-g per square-root-hertz) would need to be reduced by a factor of 10 (one orders of magnitude) before displacement estimates with 1 cm of error per 15 seconds can be achieved by double-integration of accelerometers.
MEMS accelerometers which feature these low noise levels are beginning to emerge, but are currently very expensive. KauaiLabs is actively researching these technology developments. KauaiLabs plans to develop a product which can be used for accelerometer-based dead-reckoning at that time.
What’s the difference between navX2-Micro and navX-MXP?
- navX-MXP was designed from the ground-up to interface easily with the RoboRIO, making it simpler and less-expensive to connect to the robot controller. The navX2-Micro is a smaller version of the navX-MXP which is designed for use in robots such as those found in FIRST FTC robotics; navX2-Micro can also be mounted anywhere on a FRC robot, and is also a great option if using multiple IMUs on a single robot.
- “Classic” navX-MXP and “Generation 2” navX2-Micro both feature a powerful microcontroller, enabling sophisticated calibration algorithms. “Generation 2” navX2-Micro has better accuracy than “Classic” navX-MXP due to the improved gyro noise characteristics mentioned above which decreases the yaw drift by a factor of at least 2; it also performs initial startup calibration much more quickly.