Calculate g in Any Direction from Tri-Axis Accelerometer

  • Thread starter Thread starter IMK
  • Start date Start date
  • Tags Tags
    Direction
AI Thread Summary
The discussion focuses on calculating acceleration in a specific direction using a Tri-Axis accelerometer when its initial orientation is unknown. The user seeks a formula to determine the acceleration based on initial and calibration values, specifically how to project the accelerometer readings into a reference direction. A suggested approach involves using the difference between the accelerometer reading and the reference vector, projected into the reference direction. The user acknowledges challenges with noise in the calibration data but finds initial results promising. The conversation emphasizes the need for clarity in terminology, particularly regarding the use of "g" versus acceleration.
IMK
Messages
61
Reaction score
0
Hello,
Could someone help me with this maths problem please?
I am working on a little project involving a Tri-Axis accelerometer and I need to be able to calculate the g in a particular direction when the devices installed orientation is initially unknown.

Thus when I power the device on I have three force values let us call these the initial values. ix, iy, iz. (From these initial values we have a sense of orientation also a static total g of 1.0 = sqrt( ix2 iy2 iz2 ))

Now I accelerate the device (keeping the orientation) in a straight line so as to get a g of 1.1 (static 1g plus 0.1 acceleration) this gives me a new set of calibration g values that we can call cx, cy, cz.

What I need please is a formula for calculating the g in any direction from the calibration line/direction.

Say if I move the device forward in the same direction as the calibration direction at 0.1g then the formula/function returns 0.1, if I moved it backward the formula/function returns -0.1. and if I acceleration the device at 90 degrees to the calibration direction the formula/function returns zero.

I have tried a few ideas based on dot products but I have become stuck, any help would be much appreciated.
Added the static/initial values and a set of calibration values:

ix = 0.34
iy = -0.74
iz = -0.68

cx = 0.54
cy = -0.58
cz = -0.84

Many thanks in advance IMK
 
Last edited:
Mathematics news on Phys.org
I am confused by your use of the symbol g, generally this is used to represent the acceleration due to gravity. As far as your accelerometer is concerned, g would be a constant acceleration in the direction of the center of the earth. You seem to be using it as your system acceleration. Could you please clarify just what your g is?
 
Hello, Integral and many thanks for your reply. Well I guess to be correct I should uses acceleration rather then g. But as the specs on the devices always use g, then for this case I think the terms g and acceleration are interchangeable.

Anyway I am finding some of the math for project a little tricky at times so if you have some input it would be more than appreciated.

Many thanks again IMK
 
I'm pretty sure that what you're looking to find is the difference between the accelerometer reading ("a") and the reference vector ("c") projected into the reference direction.

That is,

\frac { ( \vec{a} - \vec{c} ) \cdot \vec{c} } { \parallel \vec{c} \parallel }
 
uart said:
I'm pretty sure that what you're looking to find is the difference between the accelerometer reading ("a") and the reference vector ("c") projected into the reference direction.

That is,

\frac { ( \vec{a} - \vec{c} ) \cdot \vec{c} } { \parallel \vec{c} \parallel }

Hello Uart, and many thanks for your reply.
I have not had chance to do a proper test yet as the current data set I have has poor/noise calibration data, this I will do tomorrow and let you know. However I think the initial results look very good, although I mist the fact that it also filters deaccelleration in the reference vector as well as the turns. This I guess I can get arround by adding a second set of calibration data or figure a way to find the inverse.
Again Many thanks IMK
 
Fermat's Last Theorem has long been one of the most famous mathematical problems, and is now one of the most famous theorems. It simply states that the equation $$ a^n+b^n=c^n $$ has no solutions with positive integers if ##n>2.## It was named after Pierre de Fermat (1607-1665). The problem itself stems from the book Arithmetica by Diophantus of Alexandria. It gained popularity because Fermat noted in his copy "Cubum autem in duos cubos, aut quadratoquadratum in duos quadratoquadratos, et...
Insights auto threads is broken atm, so I'm manually creating these for new Insight articles. In Dirac’s Principles of Quantum Mechanics published in 1930 he introduced a “convenient notation” he referred to as a “delta function” which he treated as a continuum analog to the discrete Kronecker delta. The Kronecker delta is simply the indexed components of the identity operator in matrix algebra Source: https://www.physicsforums.com/insights/what-exactly-is-diracs-delta-function/ by...
Thread 'Imaginary Pythagorus'
I posted this in the Lame Math thread, but it's got me thinking. Is there any validity to this? Or is it really just a mathematical trick? Naively, I see that i2 + plus 12 does equal zero2. But does this have a meaning? I know one can treat the imaginary number line as just another axis like the reals, but does that mean this does represent a triangle in the complex plane with a hypotenuse of length zero? Ibix offered a rendering of the diagram using what I assume is matrix* notation...
Back
Top