Slowing down a rotation matrix

149 Views Asked by At

I have an $n \times n$ rotation matrix, $R$. If we imagine the point, $x = (1,0,0, \dots)$ on the unit sphere, applying the rotation matrix to this point will move it elsewhere on the sphere, say to point $x'$. Now, think of a line along the surface of the sphere, connecting $x$ with $x'$ (shortest path between them). I'd like to get a rotation matrix, $R_f$ that takes me a fraction $f$ of the way along this line. Is there a general algorithm to get $R_f$?

3

There are 3 best solutions below

6
On

When we Multiply by the rotation Matrix $R$ , we are rotating the Points , Point $x$ moves by $\theta$ , the angle of rotation.

When we Multiply by rotation Matrix $R$ twice , we are Mutilpying by Matrix $R^2$ , we are rotating twice , Point $x$ moves by $2\theta$.

Thus $R^n$ will move by $n\theta$

When we want Pont $x$ to move by lesser angle , we have to make $n$ lesser.

Thus , $R^{0.5}$ will move by $0.5\theta$
Multiply twice will give $R^{0.5} R^{0.5} = R^{1}$ , which will move by $0.5\theta+0.5\theta=1\theta$

Powers of Matrix $R$ can be Evaluated to move by fractional angle values $1/3,1/4,3/4,2/3$ Etc.

That Evaluation will be not hard when $R$ is given in terms of $\theta$.
Otherwise , we have to make Cumbersome Calculations involving Inverse & such.

UPDATE :
Numerically getting the fractional Powers is Cumbersome with Matrix Calculations.
It will be easier with trigonometry :

2D Example : With trigonometry , let given R be like this :
2D
Here it is Simple to plug-in $\theta$ , including fractional values , to generate the wanted rotation Matrix with elementary trigonometry.

3D Example : Let given R by like this :
3D

We have to get the Original Angle Details , which can be done with Cumbersome Calculations given here : https://en.wikipedia.org/wiki/Rotation_matrix#Independent_planes
We then have to make $R$ in terms of the angles we got , then plug-in the wanted new $\theta$ fractional values.
This is not recommended, better to go with the Matrix in terms of $\theta$ , where we use trigonometry.

Details :
https://en.wikipedia.org/wiki/Rotation_matrix

0
On

The generator for the $1-d$ abelian subgroup of the orthogonal goup SO(3) in a plane is the linear combination of the three generators for the three axes

$$(L_i)_{j,k} == \varepsilon_{i j k}$$

These are the three antisymmetric 0-matrices with a $\pm 1$ on the index pair other than the axis

$$ L_3 =l_{1,2}= \left( \begin{array} \\ \ 0,1,0 \\-1,0,0 \\ \ \ 0,0,0 \end{array} \right) , \ \ \ L_3^2 = l_{1,2}^2= \left( \begin{array} \\ -1,\ 0,0 \\ 0,-1,0 \\ \ \ 0,\ 0,0 \end{array}\right)$$

Consequently the exponential power series generates the group of rotations in the 1-2 plane

$$O(1,2,\phi)= e^{\phi * \left( \begin{array} \\ \ 0,1,0 \\-1,0,0 \\ \ \ 0,0,0 \end{array} \right)} \ = \ \left( \begin{array} \\ \ \cos \phi,\sin \phi,0 \\-\sin\phi,cos \phi,0 \\ \ \ 0,0,1 \end{array} \right)$$

Addition of small rotations is linear as everything in analyis. So the receipt is, take the linear combinations of the unit vector repesenting the axis. This is the cross product of the two unit vectors to the two points with the three generators for the three planes.

$$ O(\vec p , \vec q, \phi) = e^{ \frac{\phi}{2} \sum_{i,j} l_{i,j} \ p_i q_j} $$

There is an ambiguity in the signs, that reflects itself in the determinant. To exclude mirror transformation, the result has to be the unit matrix for $\phi=0$.

0
On

The idea is to do a Jordan decomposition of $R$ to $QJQ^T$ where $Q$ is orthogonal, $J$ is block diagonal composed of $2\times2$ orthogonal matrices. $2\times 2$ orthogonal can easily be written as the exponential of skew symmetric, thus $J$ can be written as $e^{A}$, and $R=Qe^{A}Q^T=e^{QAQ^T}$.

There is another approach, which is much simpler, but it does not interpolate at a "constant speed". This is to use the Cayley-Transform, to create a skew symmetric matrix $A=(R-I) (R+I)^{-1}$ and then interpolate $R(t)=(I-tA)(I+tA)^{-1}$. setting $t=0$ obtains the unity $I$ and $t=1$ the original rotation $R$ and for $t\in(0,1)$ you get a smooth family of rotations between $I$ and $R$.

I stress again that the $t$ parameter is not and angle, so the interpolation is not a constant rotation. I believe that in computer vision this is also called a "slerp" (spherical linear interpolation).