
Question about rotation and reference
Hi.
Let's suppose to have a car with a reference system called BodyNED with its origin in the center of gravity of the car, Xbaxis (called North) pointing towards the front of the car, Ybaxis (called East) pointing towards the right door and Zbaxis (called Down) pointing...down the street of course
On this car there is a magnetometer to measure the magnetic field.
Finally we have the Earth's magnetic field that has it's own reference system called EarthNED with center in the Earth's surface where the car is located and with XNorth and YEast axes laying on the plane perpendicular to Earth's gravity field, while ZDown is parallel to Earth's gravity field: therefore, XNorth points toward magnetic North and YEast is perpendicular to XNorth and ZDown as regards to the right hand rule.
The Earth's magnetic field is a vector H with components He_x, He_y and He_z with respect to EarthNED X,Y,Z reference.
Three attitude angles for the car are referenced to the local horizontal plane which is perpendicular to Earth#8217;s gravity.
Yaw is defined as the angle between the Xb axis and the magnetic north on the horizontal plane measured in a clockwise direction when viewing from the top of the car.
Pitch is defined as the angle between the Xb axis and the horizontal plane. When the car is rotating around the Yb axis with the Xb axis moving upwards, pitch is positive and increasing.
Roll is defined as the angle between the Yb axis and the horizontal plane. When the car is rotating around the Xb axis with the Yb axis moving downwards, roll is positive and increasing.
What's the magnetic field measured by the magnetometer on the car?
I know that there are three rotation matrices built on yaw, pitch and roll angles and the product of them has to be used, but I'm confused about the sequence and the change of reference field.
Can you help me please?
Thank you.
If I understand you correctly, your problem is transforming the H vector from the EarthNED frame to the BodyNED frame? You should be able to form a single transformation matrix which you can multiply by the H vector to get it in the BodyNED frame.
This is a common task for 3D graphics so if you look in that area you can find plenty of information.
Do you really have to express the car's orientation as yawpitchroll? They're extremely confusing variables. For example if it's got a nonzero roll, then you try to change the pitch, you have to also change either the roll angle or the yaw angle at the same time.
If you express the orientation as 2 vectors in EarthNED space, say Xb and Yb, then it's quite easy to form the transformation matrix. Tho I can't remember how off the top of my head. I think you basically just put the 3 orientation vectors (the 3rd is uniquely determined by the other 2), into each row or column of a 3x3 matrix, and it's finished.
Hi,
yes, my problem is that the car, while running on the road, can go up/down a hill (pitch), or can have side slope (roll) or even notzero yaw, pitch and roll angle at the same time and magnetometer readings are attituderelated
For example if it's got a nonzero roll, then you try to change the pitch, you have to also change either the roll angle or the yaw angle at the same time.
I can't understand...sorry.
Originally Posted by fenestren Hi,
yes, my problem is that the car, while running on the road, can go up/down a hill (pitch), or can have side slope (roll) or even notzero yaw, pitch and roll angle at the same time and magnetometer readings are attituderelated
Yea. Wikipedia quot;Rotation matrixquot; should explain how to create the matrix from yawpitchroll. I can't quite see it myself because of an internet problem. There are still lots of choices you have to make, but it should get you on the right track.
Hi,
I solved reading on Wikipedia and following a few links on internet.
Thank you for your help 
