Sensor Body to ENU transformation Matrix

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
5 replies · 10K views
ravishah
Messages
5
Reaction score
0
Hi,
I want to convert the accelerometer values from sensor frame to ENU reference frame , I am using oreintation sensor values, yaw ,pitch ,roll. I want to confirm one thing that After transforming to ENU frame should I get accelertation values with reference to ENU frame like this [0 0 Z]. Am I right or wrong? Please clarify , And how one can determine the rotation matrix for it. I am using Euler Angle Transformation.but the results are confusing.


regards
ravi
 
on Phys.org
-First of all I cannot comment on your values since I do not know what your object is doing other than: it seems your object is simply accelerating upwards at a rate of Z.
-Secondly, you need to find a transformation from your accelerometers position within the body to the body fixed fame, if it is not at the body fixed fame's center already.
-Lastly, you may want to post your DCM or perhaps any other working you have so that we may have a better clue to what is going wrong in your calculations.

Have a great day.
 
hi,

I am using smartphone accelerometer and orientation sensors for pedestrian dead reckoning( to detect the steps taken). Orientaion sensors give me three values Yaw (Rotation around Zaxiz) , pitch (Rotation around x axiz), Roll (otation around (y axiz).

I am using the following roation matrix for transforming from body to ENU coordinates. (reference from a book, Global positioning systems, inertial navigation, and integration)

Ir=[sin(Y)*cos(P);cos(Y)*cos(P);sin(P)];
Ip=[cos(R)*cos(Y)+sin(R)*sin(Y)*sin(P);-cos(R)*sin(Y)+sin(R)*cos(Y)*sin(P);-sin(R)*cos(P)];
Iy=[-sin(R)*cos(Y)+cos(R)*sin(Y)*sin(P);sin(R)*sin(Y)+cos(R)*cos(Y)*sin(P);-cos(R)*cos(P)];
R=[Ir Ip Iy];
Ar=R*Ab
I want to resolve the problem of tilting in mobile. I mean if i keep mobile in my hand (facing upwardand) stationary, the acelerometer gives me reading A_enu= ( 0 0 -g). where g is the accelertaion due to gravity. If i tilt the mobile then there will be reading along other axis also e.g A_b=( x y z), I want to transform this tilted acceleration vector to ENU reference frame. My question is that when I transform to ENU(East North UP) frame should I get the values of acceleration like (0 0 -9.8) and also the rotation matrix that I am using is correct?

many Thanks
ravi
 
Firstly, R needs to be transposed, and Ar and Ab need to be column vectors. Hopefully that's just a typographical error.

If so, Newton's second law stated shortly says a net resultant force on an object results in an acceleration. Since your phone is not accelerating in the ENU frame (free fall) and is simply in your hand sitting still, surely the last value cannot be correct. The initial values should be [0 0 0]'
 
hi,
viscousflow said:
Firstly, R needs to be transposed, and Ar and Ab need to be column vectors. Hopefully that's just a typographical error.

Sorry for mistake, Actually Ar and Ab are column vectors,


If so, Newton's second law stated shortly says a net resultant force on an object results in an acceleration. Since your phone is not accelerating in the ENU frame (free fall) and is simply in your hand sitting still, surely the last value cannot be correct. The initial values should be [0 0 0]'

Actually there is acceleration due to gravity even if the mobile is in still condition, if it is in my hand facing upward, the acceleraton reading is , [0 ; 0; -g].
this is the actual problem that how I can remove this gravity factor from acceleration to get the linear acceleration when i move. The one way is to transform it to ENU coordinate system and then processing the values, But i am not sure when i transform to ENU then what values ( 0 0 -9.8) should i get and whether i am using the correct RM?
 
This sounds more like an accelerometer issue, rather than a mathematical issue. The Matrix you're using is fine. What I was saying in my earlier post was if the object is sitting stationary then there should not be a resultant acceleration in any frame. Yes gravity is a constant force acting on the object at a rate of 1g, however it is being reacted by your hand (or any hard surface) at a rate of -1g.

I honestly do not know much about accelerometers at the moment, however, I would suggest you check the settings on the device. It simply sounds like a "zeroing" issue or more formally, a taring issue. Basically the device should not output a resultant acceleration when there is none.