Calculating Vehicle Position with an IMU

I am working on a project with a friend from school and we are looking for possible position estimation algorithms for an IMU. We are using the 9DOF Razor IMU from Sparkfun which has a 3-axis accelerometer, 3-axis gyroscope, and a 3-axis magnetometer and are look for some suggestions on algorithms or helpful resources. We have tried a variation of DCM that has been off by miles with less than a minute drive and does not even remotely match the shape. We realize that the measurements will have a decent amount of error no matter because we are integrating the accelerameter measurement twice and amplify the error a great deal but we are just trying to get something a rough estimate that is in within an order of magnitude, and has a shape somewhat resembling the actual path.

Those gadgets are useful for orientation, which is important for aircraft but not very useful in an automobile, unless you are interests in observing the vehicle rolling over.

You'd be better off looking at GPS.

michinyon:
Those gadgets are useful for orientation, which is important for aircraft but not very useful in an automobile, unless you are interests in observing the vehicle rolling over.

You'd be better off looking at GPS.

I already built a GPS system and it is working fine, we want to work on the INS system in the event that GPS is unavailable (like in a tunnel). I am just looking for any good advice, code, or resources on estimating position with an IMU.

I had an old Stack data acquisition unit for my kart. Thing is probably 10 years old or older now. It had an accelerometer in it which it used to derive track maps. This was a long time ago, and it didn't use a gyro or magnetometer, just an accelerometer. The track maps visually looked very accurate, although I can't say exactly how accurate, and to scale they were, but visually it did a very good job. Accelerometer data is very noisy, so if you are just integrating the raw data, I would imagine the results to be awful. You are going to want to use some form of complimentary filter or Kalman filter to integrate to determine your position.

unh2013:
I am working on a project with a friend from school and we are looking for possible position estimation algorithms for an IMU. We are using the 9DOF Razor IMU from Sparkfun which has a 3-axis accelerometer, 3-axis gyroscope, and a 3-axis magnetometer and are look for some suggestions on algorithms or helpful resources. We have tried a variation of DCM that has been off by miles with less than a minute drive and does not even remotely match the shape. We realize that the measurements will have a decent amount of error no matter because we are integrating the accelerameter measurement twice and amplify the error a great deal but we are just trying to get something a rough estimate that is in within an order of magnitude, and has a shape somewhat resembling the actual path.

Air or land-based?

MarkT:

unh2013:
I am working on a project with a friend from school and we are looking for possible position estimation algorithms for an IMU. We are using the 9DOF Razor IMU from Sparkfun which has a 3-axis accelerometer, 3-axis gyroscope, and a 3-axis magnetometer and are look for some suggestions on algorithms or helpful resources. We have tried a variation of DCM that has been off by miles with less than a minute drive and does not even remotely match the shape. We realize that the measurements will have a decent amount of error no matter because we are integrating the accelerameter measurement twice and amplify the error a great deal but we are just trying to get something a rough estimate that is in within an order of magnitude, and has a shape somewhat resembling the actual path.

Air or land-based?

Land-based and to be honest at this point we just want to be able to stroll the IMU on a cart for 10 feet and have it show an accurate path.

Well good luck. I tried devices like this for when GPS is obscured and it didn't really work very well.

jjspierx:
I had an old Stack data acquisition unit for my kart. Thing is probably 10 years old or older now. It had an accelerometer in it which it used to derive track maps. This was a long time ago, and it didn't use a gyro or magnetometer, just an accelerometer. The track maps visually looked very accurate, although I can't say exactly how accurate, and to scale they were, but visually it did a very good job. Accelerometer data is very noisy, so if you are just integrating the raw data, I would imagine the results to be awful. You are going to want to use some form of complimentary filter or Kalman filter to integrate to determine your position.

Reasonable track maps can be derived from accelerometer AND a wheel speed sensor. However, remember this is also on a track and typically defined over several lap iterations.

"Optical Flow Sensor" like a mouse. 3drobotics.com used to sell a nice breakout with a sensor and a lens but it looks like they discontinued it. I understand the most difficult part (aside from the code) is finding an appropriate lens so you can get the floor in focus for the sensor.

If you are only interested in an experimental rig, you could use a mouse. Just hang it underneath
in close proximity to the ground. Mouses are cheap these days.

The other approach to consider if you are building a small "cart", is two wheels with position encoders.
Or even three wheels with position encoders. If you process the data from those cleverly, you should
be able to draw conclusions about how the device is turning and how far it has gone.

A "compass" chip will also tell you how the device is turning, and you can combine that with the information
about how far it has gone. This is likely to give you better outcomes than trying to integrate noisy
accelerometer readings where the actual acceleration is small.

JimEli:

jjspierx:
I had an old Stack data acquisition unit for my kart. Thing is probably 10 years old or older now. It had an accelerometer in it which it used to derive track maps. This was a long time ago, and it didn't use a gyro or magnetometer, just an accelerometer. The track maps visually looked very accurate, although I can't say exactly how accurate, and to scale they were, but visually it did a very good job. Accelerometer data is very noisy, so if you are just integrating the raw data, I would imagine the results to be awful. You are going to want to use some form of complimentary filter or Kalman filter to integrate to determine your position.

Reasonable track maps can be derived from accelerometer AND a wheel speed sensor. However, remember this is also on a track and typically defined over several lap iterations.

My kart didn't have a wheel speed sensor, and it generated a map EVERY lap. The software allowed you to choose which lap to use to generate the map, they all looked pretty similar though. I would doubt the accuracy of the maps was very good, but for a visual representation of a lap it was quite good. I the original poster seems to not need great accuracy, but wants a general position and good visual representation of path. I think it should be quite possible with just an accelerometer for his purposes. I am working on something similar, only I want to use GPS + accelerometer data and fuse it together. Civilian GPS units generally only update @ 1-20hz, while many accelerometers can easily run at 100+ hz.