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.
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.
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
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.
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.
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
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.
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
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.