MATLAB Answers

How To Find the Euler Angles(Roll,Pitch,Yaw) of a Plane in 3D?

58 views (last 30 days)
ercan duzgun
ercan duzgun on 15 Jan 2021
Edited: ercan duzgun on 19 Jan 2021
I am not sure if there is a way to find it. But I just wanted to ask it. Is there a way to find the Euler Angles (Roll, Pitch, Yaw) of a plane in 3D? Imagine that we have 3 points coordinates (P1(P1x,P1y,P1z), P2(P2x,P2y,P2z), P3(P3x,P3y,P3z)) in 3D space. By those points, we can find the plane equation which cooncide with P1,P2 and P3 points. We can assume that the plane equation is equal to A*x+B*y+C*z+D=0 .
From this plane equation, can we find the Roll, Pitch, Yaw angles of the corresponding plane?
R(r,p,y)=Rz(y)Ry(p)Rx(r) order or any other order which is described.

  0 Comments

Sign in to comment.

Answers (1)

Athul Prakash
Athul Prakash on 19 Jan 2021
Hi Ercan,
You mentioned that you have a plane equation of the form and wish to calculate the Euler angles. I presume you are referring to the angles that the plane's normal vector makes with the three axes. Further, these angles are the same as the angles with three axes-planes (eg: angle of normal with x-axis = angle of this plane with y-z plane)
The plane equation can be thought of as (where is a normal vthctor to the plane and is a variable point).
So the coefficients from the plane equation are the components of a normal vector ().
Thus, gives the angle 'α' with the x-axis. Similarly, you may calculate cosines of angles with the y and z axes as well. Obtaining the angles in radians is straightforward with the inverse cosine function.
Hope it helps!

  2 Comments

ercan duzgun
ercan duzgun on 19 Jan 2021
Dear @Athul Prakash, thank you very much for your detailed answer. I understand your explanation well. However, I am confused and not sure about "my question". I mean: there is nothing wrong with your reply. But I am not sure if I need is exactly satisfiy with your response. Is it possible to check my related question here. I will try to explain again.
I tried to explain my question as a general question, so I used the notation of "plane equation". However what I need is something like this:
I am trying to solve direct kinematics problem of a 3-3 type Stewart Platform. I use the paper of "Direct Kinematic Solution of a Stewart Platform, P. Nanua; K.J. Waldron V. Murthy, IEEE Transactions on Robotics and Automation, 1990".
Figure from: Optimum Design of 3-3 Stewart Platform Considering Inertia Property. (https://www.researchgate.net/publication/270678648_Optimum_Design_of_3-3_Stewart_Platform_Considering_Inertia_Property)
The inverse kinematic equation is: , and . is the displacement vector between XYZ and xyz frame. R is the rotation matrix. is the position vectors of the vertice points of the upper platform (moving platform) in xyz reference frame. is the positions of the vertice points of the upper platform (moving platform) in XYZ reference frame. is the leg vector, is the leg length.
At first, I did the inverse kinematics. For the given , I calculated lengths for 6 legs.Firstly, I assume roll=0,pitch=0,yaw=0, and for the initial case. I found the leg lengths. Later, for some arbitrary value of roll, pitch,yaw (for example: roll=10deg,pitch=20deg,yaw=30deg), and , I calculate the new leg lengths for the second position after rotation. For rotation matrix R, I used the following formula for roll,pitch,yaw angles:
For the direct kinematics case; leg lengths are given, is known from platform geometry. vector and R rotation matrix would be found.
At second stage, I did forward kinematics: I used the same leg lengths (as input) that I already found in inverse kinematics. And I must find the corresponding vector and R rotation matrix ( the equivalent roll,pitch,yaw angles).
I have the coordinates of points of (in xyz frame), and (in XYZ frame) of the upper moving platform before the rotation(when roll=0deg, pitch=0deg,yaw=0deg), and also after the displacement/rotation (by new roll,pitch,yaw angles).
So basically, I have the moving platform vertice point coordinates before the rotation (for initial case; roll=0,pitch=0,yaw=0 , let's say the moving platform points are ). I have the point coordinates after the rotation (for that unknown roll,pitch,yaw angles, the moving platform points are ). And I also have vector (displacement between two reference frame of xyz and XYZ) for initial position and after the displacement/rotation.
Therefore, I want to calculate the roll,pitch,yaw angles after the rotation that moving platform is at .
I thought I can find the equivalent plane equation for (roll=pitch=yaw=0deg), and plane equation for . So there are two plane equations. But how can I find roll, pitch,yaw angles for ?
Should I try with plane equation form, or something else? Any suggestions? Thanks in advance.
ercan duzgun
ercan duzgun on 19 Jan 2021
Dear @Athul Prakash , I thought roll, pitch,yaw angles are different than what you expressed in your previous answer. Because; what you described is the angle between the plane and the x axis. However, what I need is the rotation angle around the x axis. I think they are different from each other. But I am not sure, because I got confused. Do you think I should try with another technique, but not by plane equation? And do you think that; your previous suggestion would be what I need for the Stewart Platform roll, pitch, yaw angles?
Thanks in advance.

Sign in to comment.

Tags

Products


Release

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by