# 3 axis accelerometer forces as angles/vectors

• IMK
In summary, the conversation is about using a three axis accelerometer in a project and finding the angle/vector of the axis when the device is not orientated to its designated axis. The participants discuss various methods for calculating the angles, including translating g forces and measuring angular position/velocity/acceleration. They also mention potential challenges, such as non-zero angular velocities and the need for multiple accelerometers. The conversation ends with one participant mentioning their own experience and research on the subject.

#### IMK

Hello,

I have a three axis accelerometer that I am using in project that I am working on and I need to find the angle/vector of the axis’s when the device is not orientated to its designated axis, and when it is accelerating. If I lay the device flat on a horizontal surface and read the outputs from the x-axis I get 1g, and 0 for the y and z axes which is correct.

I can translate the g forces into angle/vectors like so:
sin-1x = 90, sin-1y = 0, sin-1z = 0 which is correct, also I can rotate the device about and this sin-1, still returns the correct angle/vector.

However, this only works when the accelerometer is stationary as when it is moved the g force changes and this simple sin-1 produces incorrect results.

Last edited:
Same problem here ...
Working on a fall detection, but when the person jumps, the angles all get screwed up.
When they are standing still, the angles are correct, but when they make a hard acceleration (jump or run), things get messy ...

Greetz !

I think you have got two different problems here.

1. When the orientation changes, you need to measure what the new orientation is (from the posts, you don't seem to have done that explicitly)

2. Non-zero angular velocities and angular accelerations of a rigid body will cause linear accelerations at any point in the body which may be confusing your measurements if you don't allow for them - e.g. an accelerometer on a rotating wheel will measure a radial accleration of r.omega^2, and there will be a tangential acceleration if the speed of rotation changes.

The solution to both problems is to measure the angular position/velocity/accleration independently. If you are considering rotation of a rigid body in any possible directions, you need 6 linear accelerometers positioned so you can find the 3 linear and 3 angular accelerations of the body. If there are some constraints on the motion, you may get away with fewer than 6. Or, you could consider measuring the angular motion some other way.

AlephZero,
Many thanks for your input, it was most useful… I have been back to the old physics books (many years since I did this stuff) and what I am trying to do is starting to make sense again.

Devastator,
What I have done is to take a step back and rather than trying to find a solution with the accelerometer and the microcontroller only. I have turned the microcontroller into a data recorder, and recorded the g force resultant actions I am trying to solve. These I then upload into my PC via a serial link and I have developed a visualization tool (oscilloscope for g forces) so I can see what is going on. Then I can apply to math to these stored files (actions) the big advantage is that you now get consistent results as you are always dealing with know event (g force actions, jump, sit, roll etc. ). Also, when I was Googling about I came across some Canadian research on fall detection, with some math that may be what you are looking for.
All the best and again many thanks IMK

Hello all,
i have some acceleration value s in each axis(x,y,z)
i want to calculate the acceleration and de-acceleration using the acceleration data in (m/s^2)

my data are as below:-
id time (ms) x (m/s2) y (m/s2) z (m/s2)
0 0 -0.1569064 7.4628606 5.9722495
1 64 -0.5001391 8.551398 5.7368903
2 178 -0.44129923 8.374879 5.7368903
3 294 -0.44129923 8.306232 5.79573
4 382 -0.39226598 8.237586 5.8349566
5 383 -0.2353596 8.16894 5.8349566
6 469 -0.0784532 7.864933 5.8349566
7 555 -0.0784532 7.678607 5.8349566
8 557 -0.0784532 7.60996 5.8349566
9 643 -0.0784532 7.8453197 5.8937964
10 729 -0.0784532 7.9041595 5.8937964
11 815 -0.0784532 7.9041595 5.933023
12 816 -0.0784532 7.8257065 5.933023
13 927 -0.14709975 7.8257065 5.933023
14 1021 -0.14709975 7.9924197 5.933023
15 1115 -0.088259846 7.75706 5.933023
16 1193 -0.088259846 7.502087 5.933023
17 1298 -0.088259846 7.502087 5.991863
18 1385 -0.088259846 7.5707335 5.991863
19 1386 -0.088259846 7.60996 5.991863
20 1472 -0.088259846 7.5707335 5.991863

How i will calculate the leteral and longitudinal acceleration (vehicle performance)

Regards
Trilokchand Modi

trilok said:
Hello all,
i have some acceleration value s in each axis(x,y,z)
i want to calculate the acceleration and de-acceleration using the acceleration data in (m/s^2)

my data are as below:-
id time (ms) x (m/s2) y (m/s2) z (m/s2)
0 0 -0.1569064 7.4628606 5.9722495
1 64 -0.5001391 8.551398 5.7368903
2 178 -0.44129923 8.374879 5.7368903
3 294 -0.44129923 8.306232 5.79573
4 382 -0.39226598 8.237586 5.8349566
5 383 -0.2353596 8.16894 5.8349566
6 469 -0.0784532 7.864933 5.8349566
7 555 -0.0784532 7.678607 5.8349566
8 557 -0.0784532 7.60996 5.8349566
9 643 -0.0784532 7.8453197 5.8937964
10 729 -0.0784532 7.9041595 5.8937964
11 815 -0.0784532 7.9041595 5.933023
12 816 -0.0784532 7.8257065 5.933023
13 927 -0.14709975 7.8257065 5.933023
14 1021 -0.14709975 7.9924197 5.933023
15 1115 -0.088259846 7.75706 5.933023
16 1193 -0.088259846 7.502087 5.933023
17 1298 -0.088259846 7.502087 5.991863
18 1385 -0.088259846 7.5707335 5.991863
19 1386 -0.088259846 7.60996 5.991863
20 1472 -0.088259846 7.5707335 5.991863

How i will calculate the leteral and longitudinal acceleration (vehicle performance)

Regards
Trilokchand Modi

Hello Trilokchand,
I has taken me three years to solve this problem.
IMK

Hi IMK,

i m very much confused to solving this...

bascically i want to know that is the rough or safe driving..

thanks

trilok said:
Hi IMK,

i m very much confused to solving this...

bascically i want to know that is the rough or safe driving..

thanks

Hello Trilokchand,

It is interesting that you have made this post at this time on this particular subject and the mathematics of coincidence would be better served on other threads I am sure.

What I will say is this.

What you are trying do to I have worked on for three years now and it is not a simple problem. Several PhD’s and Professors of mathematics and physics have told me that the problem is impossible because of ? and I will let you discover what ? is. I have test driven tens of thousands of miles across mountains and plains, motorways, speed humps, pot holes and dirt roads. I have retired to my bed many times thinking I will give up, but then awoke in the morning with another idea. Call this dam stupidity or the tenacity of one who is not easily beaten. But one thing is for sure there is a solution. But you will have to get creative is you wish to achieve 0.025g acceleration/deceleration/turn sensitivity my solution realizes with excellent road noise rejection.

My mission was to produce a commercial product that should be in a shop near you soon. If you have similar desires you should be aware of current and pending patents on this subject. If you are researching this for academic studies or as a hobby then I wish you every success as it is a most absorbing problem. Plus some 20,000 lines of ‘C’ code.

Finally if you don’t live within a short drive to mountains then you really shouldn’t even think about this problem anymore. As they will eventually be you nemesis.

All the best IMK

IMK said:
Hello Trilokchand,

It is interesting that you have made this post at this time on this particular subject and the mathematics of coincidence would be better served on other threads I am sure.

What I will say is this.

What you are trying do to I have worked on for three years now and it is not a simple problem. Several PhD’s and Professors of mathematics and physics have told me that the problem is impossible because of ? and I will let you discover what ? is. I have test driven tens of thousands of miles across mountains and plains, motorways, speed humps, pot holes and dirt roads. I have retired to my bed many times thinking I will give up, but then awoke in the morning with another idea. Call this dam stupidity or the tenacity of one who is not easily beaten. But one thing is for sure there is a solution. But you will have to get creative is you wish to achieve 0.025g acceleration/deceleration/turn sensitivity my solution realizes with excellent road noise rejection.

My mission was to produce a commercial product that should be in a shop near you soon. If you have similar desires you should be aware of current and pending patents on this subject. If you are researching this for academic studies or as a hobby then I wish you every success as it is a most absorbing problem. Plus some 20,000 lines of ‘C’ code.

Finally if you don’t live within a short drive to mountains then you really shouldn’t even think about this problem anymore. As they will eventually be you nemesis.

All the best IMK

I M in also same condition every time i m thinking let's drop this and think on the some other issue... but main problem is i don't want to give up. i want the solution for it. actually i am doing R&D on accelerometer data so i want to know how is performing... so i want the basic idea to calculate resultant acceleration and forward or backward acceleration. in all direction its have the gravity effect on it so first of all i want to remove the gravity factor from axis so i can get the actual acceleration... waiting 4 ur reply..

trilok said:
I M in also same condition every time i m thinking let's drop this and think on the some other issue... but main problem is i don't want to give up. i want the solution for it. actually i am doing R&D on accelerometer data so i want to know how is performing... so i want the basic idea to calculate resultant acceleration and forward or backward acceleration. in all direction its have the gravity effect on it so first of all i want to remove the gravity factor from axis so i can get the actual acceleration... waiting 4 ur reply..

Hello Trilokchand
I see this data is from an iPhone….
Then patience, young man patience….. Want you want will soon be a download for the iPhone… Then all will be revealed…
IMK

IMK said:
Hello Trilokchand
I see this data is from an iPhone….
Then patience, young man patience….. Want you want will soon be a download for the iPhone… Then all will be revealed…
IMK

This is the data from android. iphone gives the x,y,z in G's while android is giving in terms of m/s^2. can me give me the basic idea about nullify the gravity and get the actual acceleration in each direction coz if the orientation of device changes its reflect the gravity in each direction so we need to remove the gravity factor from each direction. as if we take first value as static and subtract the next from previous then we got the accelerated values but that is not the correct solution.