4
$\begingroup$

I have a IMU that has 3-axis accelerator, 3-axis magnetometer, 3-axis gyroscope and row, yaw, pitch value. I want to get the location of the IMU coordinate(the beginning point is (0,0,0)) but I know just using double integration will has dead reckoning problem. And I found a lot of paper just talking about combining IMU with GPS or camera by using Kalman filter. Is it possible that I just use a IMU to get a slightly precise position data? Because in the future work I will use multiple IMUs bounded on human arms to increase the accuracy.

$\endgroup$
  • 2
    $\begingroup$ "Slightly precise" is an ambiguous term. Do you mean (a) good enough for navigation, but not highly precise, or (b) not subject to cumulative error, (c) something else? $\endgroup$ – James Waldby - jwpat7 Jan 11 '16 at 20:41
  • $\begingroup$ I'm sorry that maybe I have't make it clear enough,my IMU is not expensive one and my IMU can give info about accelerate, magnet ,angle velocity and angle row,yaw,pitch. I think these datas come from different sensors so the errors are independent and I can get position with combination of these datas in 2 different way, i.e. one way is double integration of acclerate the other is an algorithm from magnet and angle velocity. Because errors are independent so I can use Kalman to get a preciser result then just integration. My problem is how to use the other data to get a preceiser result. $\endgroup$ – kint Jan 13 '16 at 10:02
  • $\begingroup$ There is no magic, you don't get any information about position from gyros or magnetometers. $\endgroup$ – charles Jan 14 '16 at 7:23
3
$\begingroup$

No, it is not possible to eliminate the cumulative position error caused by sensor noise and bias without using an additional sensor which can report any kind of position measurement.

Even the best sensors and filtering will not be able to eliminate in a closed-loop fashion the position error.

$\endgroup$
  • $\begingroup$ I'm sorry that maybe I have't make it clear enough,my IMU is not expensive one and my IMU can give info about accelerate, magnet ,angle velocity and angle row,yaw,pitch. I think these datas come from different sensors so the errors are independent and I can get position with combination of these datas in 2 different way, i.e. one way is double integration of acclerate the other is an algorithm from magnet and angle velocity( don't know how). Because errors are independent so I can use Kalman to get a preciser result then just integration. $\endgroup$ – kint Jan 13 '16 at 9:59
2
$\begingroup$

Of course, it is possible. You need to go for a sensor fusion algorithm, that could be Kalman Filter or Complementary Filter.

I personally found very useful the procedure described at the following link, in order to have a total 3D estimation, without suffering any gimbal lock or other problems.

EDIT: I am reading only now that you're asking for position estimation, and not orientation estimation. My answer refers to the latter. For a precise position estimation unfortunately you would need other kind of sensors (if your robot has wheels (not clear from the question), you could use encoders instead of GPS).

$\endgroup$
2
$\begingroup$

The answer to this question greatly depends on your acceptable error, and budget.

As the other two answers have stated, it is practically impossible to dead-reckon the position without directly observing the position with another sensor; this is however based on assumptions about your acceptable error and IMU selection.

If your acceptable error is large enough, and the time period of which you need operation is small enough, you could possibly estimate the bias of the MEMS sensors as an average measurements during a "calibration" period.

e.g. Don't move the IMU for 5 seconds, record the average accelerations and angular rates, and use that as the bias over the operating period of the next 5 seconds. Do the double-integration for the accelerometer and angular integration (I'd suggest Quaternion integration) for the gyro, but subtract each sensors calculated bias. I must stress that this will only work for a few seconds for most cheap MEMS IMUs.

Alternatively, if you use an incredibly expensive IMU (e.g. naval IMU, up to $2m, 35 kg) you could probably dead-reckon to within acceptable errors for a substantial time period.

$\endgroup$
  • $\begingroup$ I'm sorry that maybe I have't make it clear enough,my IMU is not expensive one and I want to get a precise result of location without GPS because my IMU can give info about accelerate $\endgroup$ – kint Jan 13 '16 at 9:48
  • $\begingroup$ I assumed so; I think what you are asking for is not possible with current low-cost technology. High-frequency and high-accuracy pose tracking is generally achieved using sensor-fusion between IMU and other sensors. Vision and GPS are the main technologies, but it could be fused with anything that can sense the position of your IMU with respect to an external frame. $\endgroup$ – Gouda Jan 14 '16 at 10:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.