Wiki

This version is outdated by a newer approved version.DiffThis version (09 Dec 2018 22:14) is a draft.
Approvals: 0/1

This is an old revision of the document!


ADIS16470 IMU Board for FIRST Robotics

The ADIS16470 IMU board is ADI's next-generation IMU designed for use in a wide variety of applications, including industrial robots, smart agriculture, and autonomous vehicles. The ADIS16470 is a 6-degree-of-freedom IMU with 3-axis gyro and 3-axis accelerometer outputs. This IMU boasts better performance across the board than the ADIS16448, making it a replacement for the IMU board offered in previous years. If your team has used the ADIS16448 IMU board in the past, you'll find this board to operate in a similar manner.

Supporting code for the ADIS16470 can be found here, and only exists in the three main programming languages supported by FIRST. If your team wants to use this board with other programming languages, please refer to the ADIS16470 product datasheet for more information on how to communicate with this IMU via SPI.

If you're looking for information on other ADI donation resources, click here to go back to the main page.

Getting Started

The ADIS16470 IMU Board is designed to plug directly into the SPI port, just like our simple FRC Gyro Board. However, this board has a “tail” to screw it down to the RoboRIO to prevent it from rattling loose in the middle of a match. You can safely put this “tail” underneath any other boards you may be using on the MXP connector.

A Note on Gyro Calibration

To help the robot identify a starting angle position more accurately and remove gyro drift, it is recommended that you allow the robot to perform what is called an offset calibration first. It will do this by taking several readings from the sensor and averaging them together to obtain a value which will be subtracted from every subsequent reading after the calibration is complete. Calibration typically takes about 30 seconds. The ADIS16470 IMU Board also features an LED which will illuminate when calibration is complete (if used with the Analog Devices supplied libraries).

Remember, the gyros used in the ADIS16470 are rate sensors, not raw angle sensors, so any movement during this calibration routine will cause the robot to add the measurements of that movement to the value that is subtracted from all readings. This will cause a large amount of apparent “drift” in your subsequent sensor readings. Because of this, it is imperative that the robot is left completely stationary during this calibration period!



Calibration should be performed as soon as the robot is powered on, to prevent the calibration routine from interfering with any autonomous code execution. You can usually tell that your robot was bumped during calibration if you notice that your gyro angle readings are drifting off into space very rapidly. In LabVIEW, this calibration is done as part of the initialization. But in other languages, you must explicitly call the calibrate routine. You can read more info on your team's specific language at the links below.

Using the Gyro on Your Robot

For more information on how to add gyro functionality to your robot code, select your team's preferred programming language from the list below.

Using the ADIS16470 IMU in LabVIEW
Using the ADIS16470 IMU C++
Using the ADIS16470 IMU in Java

first/adis16470_imu_frc.1544390058.txt.gz · Last modified: 09 Dec 2018 22:14 by Kristen Chong