Talk:Rodrigues' rotation formula

Earliest comment
I have tried to improve this page in a number of ways:-

1)Clarifying that the proof is with respect to a right handed orthonormal frame.

2)Identifying categories, external and internal references.

3)Notation (to a limited extent).

I'll try and do more later; hopefully it's enough to justify taking off the clean-up tag but since I'm a beginner at this maybe some others would give it the once-over?

Selfstudier (talk) 18:51, 3 April 2009 (UTC)

In your proof you write about a vector u with unit length that is not defined or used elsewhere. At least I can't find it or understand, what you use it for. Dansk84 (talk) 12:49, 22 June 2009 (UTC)

Overstating?
This article seems to overstate things... As I understand it, the Rodrigues rotation formula is simply one algorithm to apply a rotation represented as an axis-angle to another vector, or (basically equivalently) to compute the rotation matrix that corresponds to a rotation represented as an axis-angle. In other words, it is just a clever trick to compute the matrix exponent in SO(3). This page has some valuable stuff in it, but it should really tie in to axis angle. As it reads it's unclear if this is an alternative rotation representation to axis angle. If no one objects, I may make some big changes along these lines. —Ben FrantzDale (talk) 17:26, 13 November 2009 (UTC)


 * No problem, viewed from today the article is in many respects mainly of historical interest, the beginning of three-dimensional rotation theory; to that extent at least, I don't think it is "overstating".
 * Selfstudier (talk) 17:31, 7 August 2010 (UTC)


 * It may be of historical interest, but as written, I still find it fails to emphasize the fact that this is just a very good algorithm to compute the exponential map in SO(3). As a software engineer, I find the distinction between what I want and how it is computed very important, and it seems that this confusion -- that the Rodrigues formula is the only way to compute a rotation vector -- is pervasive. For example, OpenCV's Rodrigues function. I'll be bold. —Ben FrantzDale (talk) 11:51, 9 August 2010 (UTC)

Generalization to SE(3)?
It looks like there is a generalization to SE(3) (which needs its own page). In particular, from page 17 of this reference, I see:
 * $$e^S = I + S + \frac{1}{|\omega|^2} (1-\cos |\omega|) S^2 + \frac{1}{|\omega|^3} (|\omega| - \sin |\omega|) S^3$$

where S is the 4x4 matrix representation of an element of se(3), and $$\omega$$ is the magnitude of the rotation. —Ben FrantzDale (talk) 10:53, 25 May 2011 (UTC)

Connection with Euler-Rodrigues formula
The title of the article states that R's rotation formula is not the same as the E-R formula. This is correct in one sense, but in another they are the same: The E-R formula is essentially a reparameterization of R's rotation formula. I believe that this should be made explicit in the article; especially because the E-R parameterization is more efficient when composing rotations about different axes.

See the new article Euler-Rodrigues formula; make a link? Arjenvreugd (talk) 04:36, 9 July 2011 (UTC)

Misleading wording
The article explicitly states, both in the first section and in the informative drawing that the vector is getting rotated by angle θ, but a simple test shows that this is not the case. Rotating vector (2, 0, 0) around the z axis (0, 0, 1) by 90 degrees should result in the vector (0, 2, 0). Instead, the formula gives the result (0, -2, 0), which corresponds to a rotation of the coordinate system, not the vector. This must be clearly stated in the article and represented correctly in the sketch. — Preceding unsigned comment added by 67.137.35.238 (talk) 17:57, 2 October 2013 (UTC)

Error in formula?
There is a formula for R: R = I * cos(theta) + [...]. It appears as if the cos factor was missplaced. — Preceding unsigned comment added by 213.168.69.130 (talk) 14:24, 5 December 2013 (UTC)


 * You are very wrong, but not alone. Every few months, somebody who does not care to follow the definition of K and connect to the vector formula, makes such unwarranted corrections. Integral spin representations of the rotation group as a polynomial of spin matrices always commence with the plain identity, in contrast to half integral representations, such as Pauli matrices, which do not, and with good reason. Any half-decent book on angular momentum reiterates that basic fact, but to no avail.Cuzkatzimhut (talk) 01:10, 14 December 2014 (UTC)


 * Indeed, as per above, given the definition of $K$, if you assume $k$ has unit length, then $$\mathbf{K}^2 = \mathbf{k} \otimes \mathbf{k} - I$$. Play around with that a little bit and you'll see that the formula for $R$ is equivalent to what I'm fairly certain you're looking at.(edit: + should have been a -)129.21.29.17 (talk) 06:30, 13 December 2016 (UTC)

Easy improvements
I find the name of the axis of rotation in the article confusing. z is a confusing name. The orthogonal vectors are most often named x, y, and z. A name change to other than x, y, or z would be better. For example the name B would be better. The article states the rotation axis aligned with the defining z axis perhaps leading to the confusing name. The article should have a clearer break between the example of a easy specific case and the general formula. Perhaps the derivation should come first and then the example. There may be a stylistic convention on Wikipedia regarding order of derivation/proof vs example.

Derivation/Proof of general case.

Example with rotation axis aligned with the primary Z axis.

The image accompanying the article is not very helpful. It is difficult to read. There are many known examples of better images. Perhaps on Wikipedia itself.

Clarity2020composition (talk) 08:01, 28 January 2014 (UTC)


 * This example becomes simpler when restated in a component-free formulation. The axes should thus be disposed of altogether. I have simplified the derivation, but not fixed the diagram. Someone can look at producing a similarly simplified image. —Quondum 05:33, 29 January 2014 (UTC)

There is an easy derivation of the Rodrigues formula. The long derivation in the article is not needed. Rotation and the right-hand side of the formula are linear in v. Thus, it is enough to check the formula in two cases. First, when v = k, the formula reduces to vrot = v, which is correct because vectors along the axis are fixed by the rotation. Second, when v is orthogonal to k, the formula is correct because it becomes the formula for the rotation of a vector in a plane. QED.ThomasHales (talk) 15:32, 25 November 2021 (UTC)

Final twist
We know
 * $$\mathbf{K} \in \mathfrak{so}(3), \quad \textbf{K}\text{ is `normalized'},$$

and
 * $$  \mathbf{R}(\theta) = \mathbf{I} + (\sin\theta) \mathbf{K} + (1-\cos\theta)\mathbf{K}^2, \quad \mathbf{R}(\theta) \in \mathrm{SO}(3) \quad\forall \theta \in \mathbb{R}~.$$

We know the above $R(θ)$ rotates about the same axis independently of $θ$. Can we infer from this that
 * $$ \mathbf{R}(\theta) = \exp (\theta\mathbf{K})$$

without going through the same trouble as in Axis–angle representation? For $SO(3)$ and "normalized" $K$, the $exp$-map is periodic in this way with period $2π$, so it makes sense, but this is extra info that still do not take it all the way. Hmm. The formulas seem to agree for infinitesimal $θ$. That does the trick. YohanN7 (talk) 22:15, 30 December 2014 (UTC)

Actually, the argument still isn't complete. Establish that $R(θ)$ (first version) is a one-parameter subgroup, appeal to that $exp$ is one-to-one near the origin in $so(3)$, then we're done once we know that all one-parameter subgroups are of the form of an exponential. Not really a straightforward argument. Cuzkatzimhut? YohanN7 (talk) 22:30, 30 December 2014 (UTC)


 * Sorry, I was busy, so I did not follow developments and the exact question, probably... I may not be qualified to answer it without what you call the "trouble" of the (sound) axis-angle argument, namely that
 * $$\mathbf{K} ^3= - \mathbf{K} $$, call it (x).
 * Using this, you see that the expansion of the exponential immediately yields the first expression for $$\mathbf{R} $$  from the second; and, vice versa, from the first and trigonometry,
 * $$\mathbf{R}(\theta) \mathbf{R}(\phi)= \mathbf{R} (\theta+\phi)$$, which is as good as a definition of the exponential, unless you wish to define it as the limit of $$ (\mathbf{I} +\theta\mathbf{K} /N)^N $$ instead... In any case, this is a commutative structure where standard algebra works, modulo the identification (x).  Cuzkatzimhut (talk) 02:25, 31 December 2014 (UTC)
 * I think that
 * $$\mathbf{R}(\theta) \mathbf{R}(\phi)= \mathbf{R} (\theta+\phi)$$
 * (first) making it an exponential (or a one-parameter subgroup for that matter) together with match for infinitesimal $θ$ suffices for the article. This argument is independent from that in Axis–angle representation. YohanN7 (talk) 10:40, 31 December 2014 (UTC)

"Agree for infinitesimal theta" is pretty much sloppy. The argument should read: Calculate the derivative and use the theorem on unique solutions of linear differential equations. — Preceding unsigned comment added by 217.95.166.112 (talk) 22:40, 2 October 2018 (UTC)

Mathworld
For anyone comparing the statement formula presented here with that on the Mathworld site - in which the terms of the cross product are reversed. I believe that the Wikipedia version is correct, in that it follows the right-hand-rule. The Mathworld version also states that it represents a counterclockwise rotation about the axis, _however_ the accompanying diagrams show a clockwise rotation (left-hand-rule), as does an implementation of that formula. The Wikipedia formula produces the expected counterclockwise (right-hand-rule) rotation. Sawatts (talk) 09:40, 29 June 2015 (UTC)

Derivations section, anticlockwise only when looking in the negative k direction
The writer mentions an anticlockwise rotation rotation but fails to state the direction he is viewing the rotation. The rotation is anticlockwise when looking in the minus $$ \mathbf{k}$$ direction but clockwise when looking in the positive $$ \mathbf{k}$$ direction. Preceeding unsigned comment by user:RHB100 (talk) 02:12, 13 April 2017‎, signed by 'M'&and;Ŝc2ħεИτlk 10:12, 13 April 2017 (UTC)


 * What about it? The formula is still correctly obtained isn't it? The direction of k is what it is. The perspective you view it from does not change it's atual direction only the percieved direction. 'M'&and;Ŝc2ħεИτlk 10:12, 13 April 2017 (UTC)

Failing to state the direction you are looking makes it ambiguous. RHB100 (talk) 19:18, 13 April 2017 (UTC)


 * I edited the sentence to clarify it, redundantly. The reader is either inward looking, in which case the right hand rule should say it all, or is looking at the figure, from the vantage point of the figure, which leaves no ambiguity. Well, looking at it in a mirror, to be sure... 21:49, 13 April 2017 (UTC)

Don't forget to define your terms
I'm sorry to say: No matter how nice this looks (the beginning of the Statement section): If $v$ is a vector in $ℝ^{3}$ and $k$ is a unit vector describing an axis of rotation about which $v$ rotates by an angle $θ$ according to the right hand rule, the Rodrigues formula is

it neglects to define the left-hand side of the equation, vrot.

Neither the text before or after this formula ever defines vrot!

An encyclopedia article is not the place to skip over necessary steps like saying what each term in an equation means, no matter how obvious it might seem to some people.108.245.209.39 (talk) 00:52, 16 June 2018 (UTC)

Composite Rotations
On https://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation#The_composition_of_spatial_rotations Here is a formula for rotating a rotation with rodriguez's rotation forumla. This is not just a unit vector, and is a different operation.

This is reworked below; I used wolfram alpha to find some equivalent functions that add/subtract the angles before applying sin/cos to them; otherwise this works the same. I will leave it to others to update the rotation formula page to maybe include the above information; and leaving the below as an alternative. Implemented this in This JS project ; I had started with the above mentioned wikipedia link on composite rotations (and that seems to be about the ONLY reference to that equation), and refined it with time.

given

- $$Q = [n,\theta]$$ n is a normal vector/axis of rotation

- $$P = [n,\theta]$$ $\theta$ is the angle of rotation - often positive.

The composite of rotating Q around P is
 * $$ R_{\theta} = 2 cos^{-1}(\frac { {\cos (\frac {{ Q_\theta} - P_{\theta}} 2)}( 1 - (Q_n \cdot P_n) ) + {\cos (\frac {{ Q_\theta} + P_{\theta}} 2) }(1+(Q_n \cdot P_n)) } 2 ) $$


 * $$ R_n = ( Q_n \times P_n ) ({\cos (\frac {{ Q_\theta} - P_{\theta}} 2)}-{ \cos (\frac {{ Q_\theta} + P_{\theta}} 2)  }) + P_n ({\sin (\frac {{ Q_\theta} + P_{\theta}} 2)}+{\sin (\frac {{ Q_\theta} - P_{\theta}} 2)}) + Q_n ({\sin (\frac {{ Q_\theta} + P_{\theta}} 2)}-{\sin (\frac {{ Q_\theta} - P_{\theta}} 2)}) $$

Partials

 * $$ A = Q_n \cdot P_n $$
 * $$  B = \cos \frac {{ Q_\theta} + P_{\theta}} 2 $$
 * $$  C = \cos \frac {{ Q_\theta} - P_{\theta}} 2 $$
 * $$  D = \frac { C( 1 - A )  + B(1+A) } 2 $$


 * $$ {Result}_{\theta} = 2 \arccos( D )$$

if $${Result}_{\theta} = 0$$ then the two rotations are co-incidental the axis is left unmodified. then if $A > 0$ axis is multiplied by $ Q_{\theta}+P_{\theta} $ else use $ Q_{\theta}-P_{\theta} $.

else


 * $$E = \sin \frac {{ Q_\theta} + P_{\theta}} 2 $$
 * $$F = \sin \frac {{ Q_\theta} - P_{\theta}} 2 $$
 * $$G = ( Q_n \times P_n ) (C-B) + P_n (E+F) + Q_n (E-F) $$
 * $${Result}_n = \frac G {||G||} $$


 * $$ {Result} = Result_{\theta} {Result}_n $$

D3x0r (talk) 20:16, 16 March 2021 (UTC)


 * Red alert! You are misinformed; this is the wrong Rodrigues article. You probably have in mind Rotation formalisms in three dimensions which covers the composition of rotations adequately, and so does the article on Pauli matrices, etc... This is a standard, trite subject, and involving quaternions is counterproductive, tendentious, and unhelpful. Cuzkatzimhut (talk) 20:57, 16 March 2021 (UTC)

Hodge dual???
The section Matrix notation contains this passage:

"''Note that the Hodge dual of the rotation $$\mathbf{R}$$ is just $$\mathbf{R}^* = -\sin(\theta)\mathbf{k}$$ which allows the extraction of both the axis of rotation and the sine of the angle of the rotation from the rotation itself, with the usual ambiguity:


 * $$\begin{align}

\sin(\theta) &= \sigma \left|\mathbf{R}^*\right| \\[3pt] \mathbf{k} &= -\frac{\sigma\mathbf{R}^*}{\left|\mathbf{R}^*\right|} \end{align}$$

''where $$\sigma = \pm 1$$. The above simple expression results from the fact that the Hodge dual of $$\mathbf{I}$$ and $$\mathbf{K}^2$$ are zero, and $$\mathbf{K}^* = -\mathbf{k}$$. ''"

Although I am very familiar with rotation matrices, as well as with the Hodge dual on an exterior algebra, I have never seen the term applied to a matrix before.

For this reason, it is entirely not adequate to merely link the term "Hodge dual" to its Wikipedia article and hope that no one notices that the meaning of "Hodge dual" is left unexplained in the article.

If the term belongs in this article at all, its unusual use should be explained here.

I hope someone knowledgeable about this subject can fill in the missing explanation. 2601:200:C000:1A0:3432:A8CE:134F:957 (talk) 03:18, 5 April 2021 (UTC)


 * I agree with you that the fraught language does not add much to the obvious statement, but might well satisfy a hidebound mathematician type, in anticipation of his improvement. The way I understand it is that the dual of a matrix in these 3 dimensions is its null vector, that is, the matrix represents the plane perpendicular to it. Cuzkatzimhut (talk) 13:31, 5 April 2021 (UTC)

Article desperately needs improvement
The simplest form of Rodrigues' formula for a rotation through an angle 𝜃 about an unit vector axis v = (a,b,c) in 3-space ought to be presented first.

But a much more serious problem is that, in order to understand Rodrigues' formula as presented here, it is necessary to read through the entire article if one wants to understand the notation. 2601:200:C000:1A0:8DBF:A670:DF81:2D86 (talk) 16:55, 3 May 2022 (UTC)


 * The unit rotation vector axis is k, not v, and the straightforward formula is the very first equation displayed in the box. What on earth are you talking about? What specific improvements are you proposing? This is not "critics' table" for making faces, and it is bad form to give unfunded mandates for somebody else to carry out. Cuzkatzimhut (talk) 21:34, 3 May 2022 (UTC)

Hodge dual needs much better explanation
The section Matrix notation contains this passage:

"The Hodge dual of the rotation $$\mathbf{R}$$ is just $$\mathbf{R}^* = -\sin(\theta)\mathbf{k}$$ which enables the extraction of both the axis of rotation and the sine of the angle of the rotation from the rotation matrix itself, with the usual ambiguity,
 * $$\begin{align}

\sin(\theta) &= \sigma \left|\mathbf{R}^*\right| \\[3pt] \mathbf{k} &= -\frac{\sigma\mathbf{R}^*}{\left|\mathbf{R}^*\right|} \end{align}$$ "where $$\sigma = \pm 1$$. The above simple expression results from the fact that the Hodge duals of $$\mathbf{I}$$ and $$\mathbf{K}^2$$ are zero, and $$\mathbf{K}^* = -\mathbf{k}$$."

The link provided (to the article on the Hodge star operator) does not explain the meaning of the "Hodge dual" of a rotation matrix in 3 dimensions.

I hope someone knowledgeable about this subject will please explain what this is about, or else remove it entirely.