ANNOUNCING: navX MXP Robotics Navigation Sensor

Press Release - January 2, 2015
KauaiLabs, Inc. announces the navX MXP Robotics Navigation Sensor
9-Axis Sensor (Gyro / Accelerometer / Magnetometer)
Intelligent Motion Processor
RoboRIO Expansion I/O

Supercharge your robot: Field-oriented drive, auto-balancing, collision detection, motion detection, auto-rotate-to-angle, and more…

Expand your RoboRIO: 10 Digital I/Os (GPIO / PWM / Quad Encoders), 4 Analog Inputs, 2 Analog Outputs, and TTL UART / I2C / SPI ports.

Plug-n-Play: easily installed via RoboRIO’s MXP Expansion connector or USB port.

Open Source: firmware source code, board schematics/layout & bill of materials available online.

Easy-to-integrate: C++, Java and LabView libraries and sample application code simplify integration.

Backwards-compatible: existing nav6 users can upgrade easily.


In late 2013, Kauailabs released the nav6 Open Source Inertial Measurement Unit, providing high-accuracy measures of pose (yaw/pitch/roll), with minimal yaw drift of ~1 degree per minute - performance far exceeding the analog gyro included in the FRC Kit of Parts. nav6 was used by several teams at the 2014 FIRST Championships for features including field-oriented drive.

Now, Kauailabs announces the navX MXP Robotics Navigation Sensor, which takes nav6 technology to the next level in two significant ways.

First, navX MXP was designed to use the RoboRIO MXP Expansion Connector - enabling plug-n-play installation on the National Instruments RoboRIO, and adding digital, analog I/O and UART / SPI / I2C port expansion.

Second, navX MXP features a 32-bit ARM processor, the new Invensense MPU-9250 sensor system-on-chip, and software algorithms which take nav6 technology to the next level, including enhanced sensor calibration and algorithms which fuse gyro, accelerometer and magnetometer data into a “9-axis heading”. The “9-axis heading” is enabled by magnetometer calibration tools (available online at no cost) and magnetometer disturbance detection and data fusion algorithms. This capability is known within the aerospace industry as an “Attitude/Heading Reference System” (AHRS)](http://en.wikipedia.org/wiki/Attitude_and_heading_reference_system). Kauailabs brings this high-tech AHRS capability to FIRST FRC teams - to use, learn and explore. navX MXP is a key component of Kauailabs’ ongoing efforts to make state-of-the-art navigation technologies used in autonomous vehicles (e.g., the Google Car) available to robotics students and enthusiasts as low-cost, open-source products.

navX MXP will be available for puchase online a few days after the 2015 FIRST FRC build season kickoff at AndyMark and Kauailabs. MSRP is $99.

More details available in the navX MXP datasheet and at https://code.google.com/p/navx.

Looks great! I really love the MXP breakout too, no screw terminals or PCB breadboards just an extension of what’s on the RoboRIO itself.

This looks really cool. I wonder if I can convince my team to buy one.

This is the coolest Control System Add On ever. You can do so much with it, all without the danger of overloading the main CPU.

Looking in the Wiki here are the list of examples:

Any videos of it in action?

Here’s a video recently posted by the lead technical mentor of team 246, showing how they used the nav6 to implement field oriented drive. The navX is based on the same technology:

http://www.chiefdelphi.com/forums/showthread.php?t=131704&highlight=nav6

It’s mentioned at about 5:30 and 10:30 into the video referenced in this post.

Just put in our order for one.

Team is excited to have a proper IMU on our robot this year!

Thanks, and good luck with the product!

I spent the large portion of my summer working with the Nav6 by Kauai Labs, and it was, by far, the easiest (and most accurate) gyro I had ever worked with. Ever. I never got around to using the other degrees (pitch, roll, linear acceleration), but it was worth it alone for just the yaw measurement, and it’s easy integration into FOD. But that was just an offseason project, who knows what else tomorrow’s challenge might allow us to do with it?

Needless to say, I already ordered one of the navXs, and you can be sure it will be on our robot next year.

Because this is an “active” roboRIO expansion module, my understanding is that it needs explicit FRC approval before you can use it on your robot. Does the navX have this approval?

It only needs approval if you plug in a motor controller or servo to it.

Thanks Joe. That would explain the lack of PWM outputs.

The navX does support PWM/Quad Encoders as well as standard GPIO. These pins are direct pass-throughs from the MXP Connector, so whatever RoboRIO drives out those pins is routed to the navx MXP Digital I/O connectors.

Any announcement regarding legality as an active device can only come from FIRST, who has indicated that all approved devices will be listed in this year’s game manual, to be released tomorrow.

Are there any restrictions or recommendations on how to mount the roboRIO? Is vertical ok?

This looks like it could be very useful - I know 449 has been wanting to do gyro integration for a long time but has not made much progress. This looks to be basically plug-and-play, and should allow field-oriented control to a lot of teams that couldn’t before.

I can’t speak for the orientation requirements of this board, but you could always use a cable to relocated it off of the roborio.

It also looks like it can be connected over USB, which would make it even easier to mount it away from the roboRIO.

I’d definitely recommend horizontal alignment with the chassis.

We’ve put a decent bit of thought, though, into alternate mounting strategies.

Please take a look at the following wiki page and hopefully it provides enough detail regarding these alternate solutions:

https://code.google.com/p/navx-mxp/wiki/AdvancedInstallOptions

You might want to consider the “One-wire connect via Floppy-disk Extension Cable” option and the “One-wire connect via USB Cable” options.

We were able to order some of the “Floppy-disk Extension Cables” on Ebay, and another poster just indicated that AndyMark is carrying them, as well.

2 questions:
How much testing has this board undergone with the RoboRIO, outside of a Great like Joe Johnson?
The website shows 11 available. Is that true? Seems a bit low.

Our alpha and beta testing of the rRIO included vertical mounting and we had no problems with it’s orientation.

Are you talking about the navX, or simply the roboRIO by itself.

First, regarding the availability. As you noted, Kauai Labs has 11 remaining, but AndyMark will initially have 100 units for sale, I expect within a week or so.

As to the Roborio Testing: Like many others, Kauai Labs has been hampered because the RoboRIO firmware has not been made available to non-beta teams. So internally we do our firmware validation by running functional and stress-test code on Arduinos (connected to MXP connector) and PCs over USB. And electrical validation was performed on a new RoboRIO.

As to the Roborio-side libraries, one extremely helpful beta team tester got the nav6 working on the RoboRio in both LabView and Java, with small modifications to the libraries on the CRio. This proves out the WPI Library Serial Port support, as well as the Kauai Labs Serial Port-based nav6 libraries for Java and Labview. Since the navX MXP is backwards compatible w/the nav6, this means the navX MXP will work on the RoboRio.

As soon as the RoboRio firmware and WPI libraries are released (Jan. 3, 2015), Kauai Labs will be working overtime to first get the RoboRio libraries fully tested w/the navX MXP on LabView, Java and C++ platforms. Based on the work by the beta tester, and the maturity of the nav6 libraries, this should proceed quickly. Once that’s solid, we’ll next work to add extensions to the Serial Port-based Roborio-side libraries, which will make the new navX features (9-axis heading and Magnetic Disturbance Detection) accessible, too.

We’re also finishing up documentation on the I2C/SPI protocols - should be posted on the wiki any day now - and after the Serial Port-based libraries are completed, we’ll be creating some Roborio-side libraries for accessing navX MXP via these protocols too.

Given the constraints, that’s the best strategy we could come up with - but we’re open to input as to priorities as we make navx MXP available to FIRST teams.