I'm reading this article about the Rodrigues formula. While I understand how the vector notation of this formula was derived, I'm having a little trouble understanding how to convert an axis-angle rotation into a rotation matrix.

Rodrigues Formula

$$ \mathbf{v}' = cos(\theta)\mathbf{v} + sin(\theta)(\mathbf{k} \times \mathbf{v}) + (1-cos(\theta))\mathbf{k}(\mathbf{k} \cdot \mathbf{v})$$

I also understand that the cross product $(\mathbf{k} \times \mathbf{v}) = Skew(\mathbf{k})\mathbf{v}$.

However, the explanation provided in the article, doesn't merely make this substitution, but for some reason introduces the term $K^2\mathbf{v}$. The $cos(\theta)$ term is also dropped.

I believe I'm missing some obvious step that was purposefully omitted in this derivation. Any help in filling in the gaps would be much appreciated.

EDIT: According to this website, there's the following "outer product identity"

$nn^T = [n]_{\times}^2 +I$

  • 1
    $\begingroup$ It’s all there, but you have to go back to the derivation of the formula instead of starting with the finished product. In particular, $\mathbf v_\perp = \mathbf v-(\mathbf k\cdot\mathbf v)\mathbf k = -\mathbf k\times(\mathbf k\times\mathbf v) = -K^2\mathbf v$. $\endgroup$ – amd Jul 2 '18 at 7:52
  • $\begingroup$ Cross product $a=k \times v$ can be replaced with the matrix operation $a=S(k)v$. Double cross product $k \times (k \times v)$ becomes then $S^2(k)v$ ...en.wikipedia.org/wiki/… $\endgroup$ – Widawensen Jul 2 '18 at 11:39
  • $\begingroup$ @amd thanks. But where does equality 2 and 3 come from? $\endgroup$ – Carpetfizz Jul 2 '18 at 14:08
  • $\begingroup$ The linked website in my edit proves what I needed. I would like to close this question without actually deleting it, so that others may benefit. $\endgroup$ – Carpetfizz Jul 2 '18 at 16:10
  • $\begingroup$ Instead of editing in the missing piece, you should write up an answer to the question. $\endgroup$ – amd Jul 2 '18 at 16:45

Rodrigues formula is:

$v′=(\cos \theta)v + (\sin \theta)b \times v + (1− \cos \theta) b (b \cdot v)$

Using the fact that:

$b \times (b \times v)=b(b \cdot v)−v(b \cdot b)$

Using $\|b\| = 1$:

$b \times (b \times v)=b(b \cdot v)−v$

$(1− \cos \theta) b \times (b \times v) = (1− \cos \theta)b (b \cdot v) − v + (\cos \theta) v$

Now we need to accomodate those terms in Rodrigues formula:

$v′= v + (\sin \theta)b \times v + (1− \cos \theta ) b (b \cdot v) − v + (\cos \theta) v $


$v′= v + (\sin \theta)b \times v + (1− \cos \theta) b \times (b \times v)$

Now you can apply the matrix identities:

$K v = b \times v$

$K^2 v = b \times (b \times v)$

To get:

$v′= v + (\sin \theta)K v + (1− \cos \theta) K^2 v$

Finally, you can factor out $v$ to get the matrix $R$:

$v′= R v$

$R = I + (\sin \theta)K + (1− \cos \theta) K^2$


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.