How to Find the Rotation Matrix?
Show older comments
What is the possible solutions for an $3x3$ size orthogonal matrix with the known parameters of the first two columns which makes 6 parameters known?
Let's think of a rotation matrix which is an orthogonal matrix:
R=[r11 r12 r13;
r21 r22 r23;
r31 r32 r33]
The parameters of r11, r21, r31, r12, r22, r32 are known values. And it is desired to find the last (third) column with the parameters of r13,r23,r33.
I take the square root of each raw which is equivalent to 1 unit vector.\
r11^2+r12^2+r13^2=1
r21^2+r22^2+r23^2=1
r31^2+r32^2+r33^2=1
Therefore we can get to the equations of
r13= sqrt(1-r11^2-r12^2)
r23= sqrt(1-r21^2-r22^2)
r33= sqrt(1-r31^2-r32^2)
However, if there is one solution for the rotation matrix of R, how can I find that unique solution. Square root of any raw gives me two solutions.
Whichever (positive/negative square root of r13,r23,r33 I would take, it would be still an orthogonal matrix:
r1^2+r23^2+r33^2=1
So is there one unique solution or multiple solutions?
Accepted Answer
More Answers (1)
Bruno Luong
on 1 Feb 2021
You equation is NOT enough to determine the third column, you forget about the orthogonal conditions and that det(R)=1 (rotation matrix is SO(3)).
So solutions is simply
R(:,3) = cross(R(:,1),R(:,2))
4 Comments
ercan duzgun
on 1 Feb 2021
Edited: ercan duzgun
on 1 Feb 2021
Bruno Luong
on 1 Feb 2021
Edited: Bruno Luong
on 1 Feb 2021
One solution (since det R=1). SO(3) has 6 DOFs that can be uniquely derived from 2 columns, or 2 rows of R.
If you inverse the sign, you'll get a "mirror" like transformation. This matrix is NOT a rotation matrix
[1 0 0;
0 1 0;
0 0 -1];
David Goodmanson
on 2 Feb 2021
Hi ercan,
What Bruno pointed out is correct, and I have modified the answer accordingly.
ercan duzgun
on 2 Feb 2021
Categories
Find more on Linear Algebra in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!