Inertial Measurement Unit (IMU) – Part II

This blog entry is a little backwards, in that it is labeled Part II. Actually, it’s part III. If you looked at Inertial Measurement Unit (IMU) – Part I, you would expect to see how to hook up the IMU to the Jetson. Instead, I’ll show you what happens after you hook up the IMU to the Jetson, so that you know you’ve successfully hooked it up. Looky here:

Background

For the IMU, the The Adafruit 10-DOF IMU Breakout is being used. We’ll go over hooking up the IMU to the Jetson in a later post, but it’s pretty easy. Bascially solder the supplied header onto the IMU, then wire the IMU header pins to the Jetson JA31 connector as follows:

GND J3A1-14 (-)
VCC J3A1-16 (+)
SCL J3A1-18 (C)
SDA J3A1-20 (D)

Here’s some pictures from the Jetson Wiki:
799px-I2C_pinout

800px-J3A1_I2C-highlighted

There are several ways to actually connect the wires to the pins, you can use headers, machine pin jumper wire, and a mix of simple Arduino jumpers connected to the appropriate header insert. We’ll look at this in a later blog entry.

Calibration

Anyway, once the IMU is hooked up, the next step is to calibrate the IMU. If you have seen people rotating their quadcopter or model airplane and ‘posing’ them, this is what they are doing. There’s such a large amount of information that’s out there about the subject that there’s not much to add, other than you’ll have to calibrate the IMU. Basically the accelerometers need to be told the proper range of values when no artificial acceleration is being applied, and the magnetometers also need a little help. Here’s the RTIMULib calibration instructions, use them. Here’s why you want to calibrate the magnetometer.

Conclusion

The IMU is very useful for finding out pose (orientation in space), and now they are almost ubiquitous in any type of sophisticated electronic or robotic device. It is one of the very useful tools in the electronic sensor toolbox. They are also lots of fun to play with. Click here for Part III.

3 Comments

  1. Hey Kangalow!

    I’m reaching out because I did this with the Bosch BNO055, which, once calibrated, totally worked. Do you have any experience with the MPU9250? When I tried to calibrate the magnetometer of the MPU9250, the calibration values didn’t seem to fall in line with what RTIMULib’s calibration document said to expect. I’d appreciate any insights you can offer here!

    Oh, and it might be helpful to know that I’m working with a Jetson TX1!

    Thanks!

    • Unfortunately I haven’t worked with the MPU9250 at all, but I can’t think of an obvious problem that you would encounter. I hope you get it to work.

  2. Did the RTIMULibDemoGl program autodect your IMU the first time you opened it? I am working with a Bosch BNO055 and I am not able to communicate with it using this program. I’ve tried using pins 3&5 of the J21 header as well as pins 27&28 and I can detect the IMU using i2cdetect on both. I also successfully ran through the Adafruit tutorials which uses an Arduinos I2C port. But alas I still can’t get this program to find my IMU. I’ve tried tweeking all of the various ‘Select IMU’ variables but still nothing.

1 Trackback / Pingback

  1. Inertial Measurement Unit (IMU) - Part III - NVIDIA Jetson TK1 Dev

Leave a Reply

Your email address will not be published.


*