0
votes

I am using a MPU6050 IMU to map the path of a device (with starting point as origin). For this I need to convert the accelerometer and gyroscope readings into (Cartesian)co-ordinates. I think I need to continuously sample the accelerometer readings and go on adding (integrating) the sample to the previous point for each axes respectively. At startup the previous point will be (0,0,0).

I know this on paper. But I dont think it will be that simple. How will I know when the device is moving backwards, ie towards the origin?

The MPU6050 provides accleration and gyro reading in all axes. I used this to fetch the values. But I dont know how to continue. So what I need is an "Inertial Navigation system" which takes acceleration and angular velocity vectors as well as the current position as input and returns the new position. I know this will have errors, but I am not concerned about that for now.

If someone can guide me in this that would be great. Any hints or pointers will be appreciated.

Kiran G

1
What do you have so far? Questions on SO should show some minimal understanding of the problem, demonstrate an attempt to solve it, and show exactly where you are stuck. - mjs
This is unlikely to work well with a consumer grade IMU. In effect, you don't know if it is moving, you can only get a rough idea of when it start or stops, and have to make educated guesses from that as to what it is doing and where it is on an ongoing basis. - Chris Stratton

1 Answers

-1
votes

Kiran,

To answer that question it would be good to know what kind of Gyro are you using or willing to use. It is very different depending if the output is an analog signal (voltage or current loop) or if that is any kind of (normally serial) bus.

Please note that most likely you will have also to filter the signal based on the expected dynamics of the environment.