2017 FRC Control SystemOther KoP Item Resources SensingnavX-Micro Robotics Navigation Sensor

navX-Micro Robotics Navigation Sensor

Measuring Motion/Orientation & Improving Auto and Teleop Software

The Kauai Labs navX-Micro Robotics Navigation Sensor provides a way to measure motion and 3D orientation of any object (for instance, your robot chassis or a robotic arm).

navX-Micro can help improve autonomous and tele-operated robot software by adding intelligent features including:

  • Driving in a straight line
  • Rotating automatically to a specific angle
  • Field-oriented drive
  • Automatic Balancing
  • Motion Detection
  • Collision Detection

navX-Micro is both a self-calibrating Inertial Measurement Unit (IMU) and an Attitude/Heading Reference System (AHRS)  and it’s designed specifically for FIRST Robotics Competition and FIRST Tech Challenge control systems.

Inertial Measurement Unit (IMU)

navX-Micro is an Inertial Measurement Unit (IMU), and includes 6 sensors which measure inertial motion: 3 accelerometers measuring acceleration (in units of Standard Gravity [g]) and 3 gyroscopes measuring Rotational Speed (in units of degrees per second).

Additionally, through a process called “Motion Processing”, navX-Micro combines the 6-axis inertial sensing data to create a measurement of relative 3D orientation.

Measuring Orientation with Yaw, Pitch and Roll Angles

IMUs are typically used to measure aircraft orientation, but are also very useful for controlling a robot. IMUs measure rotation of an object around the Z-axis (known as “Yaw”), the X-axis (known as “Pitch”) and the Y-axis (known as “Roll”).

Pitch and Roll angles are absolute (tied to the earth’s surface); 0 degrees means “flat” with respect to the earth.

However, IMU Yaw angles are relative. Unlike “North” on a compass, IMU Yaw angles are not tied to any direction. Therefore, your robot application must decide where 0 degrees is. Usually, FIRST Robotics Competition robots treat the “head” of the field (the direction the driver faces) as 0 degrees.

For more information on yaw, pitch, roll and other concepts please visit the navX-Micro Concepts and Terminology page.

Digital Compass & Attitude/Heading Reference System (AHRS)

navX-Micro also includes 3 magnetometer sensors, which measure magnetic fields (in units of Tesla). By measuring Earth’s magnetic field, navX-Micro provides a digital compass  which is an absolute way to measure the Z (“Yaw”) axis.

Measuring Z-axis Orientation with a Compass

By fusing the digital compass with the IMU, navX-Micro can create a measurement of absolute 3D orientation.

Note: Earth’s magnetic field is actually very weak when compared to the magnetic field generated by a nearby motor; for this reason it can be difficult to get accurate digital compass readings on a FRC robot. For this reason, using the navX-Micro AHRS is an advanced feature best suited for teams who have the time to learn about how to calibrate the navX-Micro digital compass and also how to deal with magnetic disturbances.

roboRIO Hardware Installation

navX-Micro Circuit Board

The navX-Micro can be easily connected to a National Instruments roboRIO using either USB or I2C. An optional enclosure to protect navX-Micro can be purchased or printed on your 3D printer.


The simplest way to connect navX-Micro to a RoboRIO is via USB. This connection requires a USB Mini-B type (Male) to USB A type (Male) cable.


Alternatively, navX-Micro can be connected to a RoboRIO via I2C. This connection requires a 4-wire cable .1” female headers on each end; a 4-wire cable is included with each navX-Micro.


An enclosure is recommended to protect the navX-Micro circuit board from excessive handling, “swarf”, electrostatic discharge (ESD) and other elements that can potentially damage navX-Micro.

Visit the navX-Micro Enclosure page to download a 3D-printable design file (or purchase an enclosure).

roboRIO Software Installation

navX-Micro is compatible with the navX-MXP Robotics Navigation Sensor, so if you already use navX-MXP on your robot, there will be no change required to your software to use navX-Micro. You can also use navX-Micro side-by-side with navX-MXP. A common reason for doing this is to use navX-MXP for Robot Drivetrain orientation, and navX-Micro for orientation information for a camera that rotates, or for a robotic arm or other appendage that moves up and down to measure tilt angle.

To access navX-Micro from your RoboRIO robot application, install the navX-MXP Libraries for roboRIO.

FIRST Tech Challenge: Android Software Installation

navX-Micro is also compatible with the FIRST Tech Challenge Android-based control system. If you wish to use navX-Micro with a FIRST Tech Challenge robot, install the navX-Micro Libraries for FTC Android.

Using navX-Micro

Many example programs are available for navX-Micro in C++, Java and LabVIEW. Visit the navX-MXP Examples page for a description of each example program and details on how to use it with your chosen programming language.

Video Processing Latency Correction

Using the Kauai Labs open source Sensor Fusion Framework (SF2) you can also use navX-Micro to correct for video processing latency. Sample code for this feature is available on the SF2 Examples page.

IMU Calibration

navX-Micro includes both factory-calibration as well as startup calibration and continuous re-calibration. Although navX-Micro self-calibration is very easy to use, learning how navX-Micro self-calibration works is very important to help ensure the best results.

Learning More

To learn more about how navX-Micro works, you can use navXUI, which runs on a Windows PC connected via USB to the navX-Micro and demonstrates all of the navX-Micro features. navXUI also provides a way to save navX-Micro data to a file so you can analyze it. navXUI can even run simultaneously with your roboRIO robot application

Getting Help

If you have trouble with navX-Micro, please visit the navX-Micro support page; you can join the navX-Micro newsgroup or contact technical support for help. If your question is more general about the FIRST RObotics Competition control system, please check out the Control System section of the FIRST Forums.

0 Report Errors

Use this form to report any errors with the documentation. For help with WPILib, please use the FIRST Forums at http://forums.usfirst.org For reporting WPILib bugs, please submit an issue on GitHub at https://github.com/wpilibsuite/allwpilib/issues/new