Tuesday, 6th of January 2009
Tuesday, 6th of January 2009
"IMU" — 1 post
So for this sub to have any navigation I need to develop an IMU. I'll be building and/or buying a strap-down IMU as opposed to a gymballed one.

I've been searching around and the best ones (higher-end hobby ones that is, not military) usually include one or more of these chips:
  1. Freescale MMA7260Q: single IC triple axis accelerometer (details datasheet)
  2. IDG300 Dual-axis Gyroscope (details datasheet)
  3. HMC6352 Dual-axis magnetometer (details datasheet) or PNI's MicroMag3 is an integrated 3-axis magnetic field sensing module (details datasheet)
These chips along with some voltage sensors and temperature sensors can make up an Inertial Measurement Unit, or IMU with 6 degrees of freedom (6DOF). Sparkfun sells one. Unfortunately, it only is available with bluetooth connectivity which I don't want. OpenUAV sells one with the same chips that looks interesting and it includes a 20 channel GPS.

Accelerometers measure linear acceleration. Accelerometers can't tell the difference between linear movement and gravity, in fact, they combine the two. They also amplify jitter. Gyroscopes measure rotation directly. They do not respond to linear movement. From these two sets of data, velocity and position can be calculated through integration. The gyroscopes can also be used to measure yaw, pitch and roll.

All three chips output can be combined and filtered to do dead-reckoning navigation. Problems with drift can occur and the are accumulative so you can get wacky data pretty quickly. Using GPS to correct for this is usually done, but since I'll be underwater, there won't be GPS access (at least not until it surfaces). To get the compass heading, the accelerometer readings can be used to offset tilt -- the compass should be flat to get a good reading.

I need to brush up on my math to understand some of this stuff. Read a great thesis (Analysis and Tuning of a Low Cost Inertial Navigation System in the ARIES AUV) using an IMU vs GPS data and a kalman filter to smooth and improve accuracy. Thing was amazingly accurate but it uses a lower-end military grade IMU (from Honeywell) which has ring laser gyroscopes. I'll probably be using the cheaper MEMS gyros. Anyway, nice to see someone has a good working version. Now if I could only understand the math well enough to code it up. The thesis also uses the extended Kalman filter (EKF) which looks even more complicated.