Comparison of IMUs for FRC

Hello all, I am interested in creating a centralized comparison of the various IMUs for FRC use. I have been doing research on the various options, and would like to get some feedback from the community, as eventually I plan on compiling this information into a whitepaper. What is your favorite IMU? Why? Here is my analysis of each:

Analog Devices’ ADIS16448:
The ADIS16448 IMU is, in my experience, my least favorite IMU available for FRC use. I have experienced the greatest amount of sensor drift, least amount of reliability, and smallest range of features and use-cases with this IMU, at least compared to the NavX or the Pigeon. Perhaps due to the lack of on-board sensor fusion, or perhaps I’ve just got a skewed perception, this IMU seems to be the lowest level option for FRC. However, with loads of support and documentation, along with large amounts of sample code, if you opt for this IMU, you will get all the help you need.

Pros:
Loads of support, documentation, and sample code
Native support for MXP Port on RoboRIO
Affordable

Cons:
High Sensor Drift
Long initialization time
No Sensor Fusion

Kauai Labs’ NavX:
With built-in Sensor Fusion, native support for the up-and-coming SF2 Library, and a glorious software package for standalone use, Kauai Labs’s NavX currently stands as my personal favorite IMU for FRC use. With abundant support, incredible sample code and documentation, and an intuitive library that attaches with great ease to WPILib robot code, using the NavX on an FRC robot is a breeze. The library takes care of a lot of work for you, such as movement detection, and with the widespread use, any issues you face or features you want to incorporate into your robot are likely to be solved in very little time. It is also the IMU of choice of the vast majority of high-level teams, such as 254 (at least in 2017) and 125. I highly recommend this IMU for anybody looking for increased control of an FRC robot.

Pros:
Loads of support, documentation, and sample code
Native support for MXP Port on RoboRIO
Native Sensor Fusion
Incredible Library with lots of features

Cons:
Cost

CTRE’s Pigeon:
Cross the Road Electronics never fails to impress with the technology they release for FRC, and the Pigeon IMU is no exception. With direction connection to the TalonSRX Motor Controller, in addition to the ability to connect directly to the CANBus built in Sensor Fusion, and direct integration into the Motion Profiling API designed around the TalonSRX, the Pigeon IMU is perfect for high-precision closed loop operations involving the TalonSRX. With CTRE-grade documentation, sample code, and support, you are sure to get up and running with this IMU. I can’t speak on it’s reliability, as I have little experience with this IMU, but if it is to the same quality as other CTRE products, it is sure to impress.

Pros:
Loads of support, documentation, and sample code
Native Sensor Fusion
Incredible Library with lots of features

Please comment if I missed something, or if you have personal experiences or opinions with these IMUs. My goal is to make choosing an IMU an easy and intuitive process for all FRC teams.

Not accurate.

Has CAN too.

Fixed! Nice catch! Thanks.

There was an Analog Devices IMU given out “free” to all teams through FIRST Choice during Stronghold year. Frankly, we didn’t use it, because although we got one for free, there was no way to order another one. We weren’t willing to commit to using a device where we could not build a practice robot with the identical sensor, nor have any spares in case of failure. So, we gave it to another team (who, sure enough, was calling out for one in the pit as they must have broken theirs) and we use the NavX instead.

We like the NavX a lot, but now that we are starting to delve into the advanced CAN features of the Talon SRX, I wonder if we should think about switching to the Pigeon.

I love the NavX as well. Also, with it being available through FIRST Choice the past few years, cost isn’t even necessarily a huge con about it.

Have you compared the accuracy of the NavX and the Pigeon? They use the same IMU, so they should be comparable.

Has anyone tried a configuration using the pIgeon/Gadgeteer IMU connected for communications via the CAN bus, and 12V supply from VRM, and communicating to non-CAN bus, i.e., PWM type motor controllers only? We only have 2 CAN based SRX/Talons, so we are hoping to use instead 4 PWM signaling based Motor Controllers (Sparks) and hope that the Roborio can handle taking the sensor signaling over the CAN bus from the pigeon imu, and control the PWM Motor controllers over the PWM channels. Anyone see any issues with this configuration? FRC 6504 at Falls Church HS is seeking advice. Thanks!

The ADIS 16448 is about $650 retail, so unless you can luck out and get one from the First Choice lottery, I don’t know how you can afford one. After a lot of research we decided to go with either the NAVX or the Pigeon, deciding to buy the Pigeon for price, which is where we ran into the issue it is CAN signaled, vs. communicating through the Roborio custom electronics port or SPI or USB in the case of Navx. Since the IMU is really only a sensor, I don’t think it needs to talk to motor controllers, it should be up to the Roborio to control the MCs, so answering my own question above, I don’t think there should be any issue with this configuration. If anyone thinks otherwise, please let me know.