3
$\begingroup$

The following quaternion represents a rotation by $\theta$ around the z-axis:

\begin{align} q &= (\cos(\frac{1}{2}\theta), \vec{u}\cdot\sin(\frac{1}{2}\theta)), \\ \vec{u}&=(0,0,1)^t \end{align} I'd like to take the derivative of this quaternion with respect to its angle $\theta$. In this paper I've read that first the exponential map representation of the quaternion has to be built: that would be \begin{align} q &= e^\vec{w} , \\\vec{w}&=(w_1,w_2,w_3)^t=(0,0,\frac{1}{2}\theta)^t \end{align} Then I have to derive q with respect to $w_1,w_2$ and $w_3$ as follows: \begin{align} \frac{\partial q}{\partial \vec{w}}&=(\frac{\partial q}{\partial w_1},\frac{\partial q}{\partial w_2},\frac{\partial q}{\partial w_3}) \end{align} In my example, for every partial derivation I get a quaternion, which is respectively: enter image description here which are 3 quaternions. Could this be wrong? I'm wondering because $w_1=w_2=0$. Does anybody have an idea how to deal with this?

Later I'm aiming to compute a jacobian matrix (I've already computed it) with these derivatives, and as $\theta$ is in the denominator, in the jacobian matrix there has to be $\theta\neq0$, which is senseless because $\theta$ has to include the posibility to be $0$.

To provide more information, I've added the algorithm I'm working with: enter image description here

Could anyone help me with this? Thanks!

$\endgroup$
1
  • $\begingroup$ The one thing I didn't cover in my answer below: when you got those three quats, that's $dq/dw$, but to compute $dq/d\theta$, you need $dq/d\theta = (dq/dw) (dw/d\theta)$, i.e, you need to multiply that row vector of three quats by the column vector $(0,0,1/2)^t$; that'll get you the same result I got below. $\endgroup$ Feb 21, 2014 at 18:44

2 Answers 2

4
$\begingroup$

A quaternion is just a point in $4$-space. You've got a function from, say, $[0, 2\pi]$ to $4$-space defined by

$$ \gamma: \theta \mapsto (\cos(\theta/2), 0, 0, \sin(\theta/2)). $$

The derivative of that function is $$ \gamma': \theta \mapsto \frac{1}{2}(-\sin(\theta/2), 0, 0, \cos(\theta/2)). $$

Since $\gamma(\theta)$ is a unit quaternion for all $\theta$, its derivative should be a tangent vector to the unit sphere at $\gamma(\theta)$, i.e., the dot product (not quaternion product!) of $\gamma(\theta)$ and $\gamma'(\theta)$ should be zero...and in fact it is.

It's possible that what you want is the body-centered derivative, which is just $\gamma(\theta)^{-1}\gamma'(\theta)$, where the "-1" denotes quaternion inverse, and the multiplication here is quaternion multiplication; that'll get you a unit quaternion in the tangent space to $(1,0,0,0)$, which consists of all pure-vector quaternions...but maybe that's not what you want. If it is, it happens to be easy to compute in this case.

I'm going to just write $\gamma$ for $\gamma(\theta)$ from now on, and "c" and "s" for the cosine and sine of $\theta/2$, OK?

Because $\gamma$ is a unit quaternion, its inverse is its conjugate, so $$ \gamma^{-1} = \bar{\gamma} = (c, 0, 0, -s). $$ That makes the body-centered derivative be $$ \gamma^{-1} \gamma' = (c, 0, 0, -s) \star (-s, 0, 0, c), $$ where I've used $\star$ to denote quaternion multiplication. The result is \begin{align} \gamma^{-1} \gamma' &= (c, 0, 0, -s) \star \frac{1}{2}(-s, 0, 0, c)\\ &= \frac{1}{2}(-sc + sc; c(0,0,c) -s (0,0,-s) - (0,0,c) \times (0,0,-s)) \\ &= \frac{1}{2}(0; (0,0,c^2 + s^2) \\ &= \frac{1}{2}(0, 0,0,1). \end{align} In other words, your body-centered derivative is, at all times, $\frac{1}{2} {\mathbf k}$.

$\endgroup$
4
  • $\begingroup$ Thanks! I'm not sure what you mean with "body centered derivative". Are you saying that $(\frac{\partial q}{\partial w_1},\frac{\partial q}{\partial w_2},\frac{\partial q}{\partial w_3})$ are all the same, namely $\frac{1}{2}(-\sin(\theta/2), 0, 0, \cos(\theta/2))$? I don't understand it, as $w_1,w_2,w_3$ are not all the same. $\endgroup$ Feb 21, 2014 at 19:56
  • 1
    $\begingroup$ As you drive your car, there are two kinds of instructions I can give. One is "turn north"; another is "turn left". The second is "body centered" -- it's a description relative to a frame of reference you carry with you (x points to the front of the car; y points out the driver's door; z points up). The first is "world-centered" -- it's specified with respect to a frame of ref where x points east, y points north, and z points to the sky. I don't think I can explain more in the length of a "comment". As for $dq/dw_1$, etc., see my comment on your original question: you forgot the chain rule. :) $\endgroup$ Feb 21, 2014 at 20:16
  • $\begingroup$ Please would it be possible for you to write $(\frac{\partial q}{\partial w_1},\frac{\partial q}{\partial w_2},\frac{\partial q}{\partial w_3})$ explicitly? I'm very confused as I've been trying to understand quaternion algebra for several weeks without getting any explicite results. What would be $\frac{\partial q}{\partial w_1}$, as $w_1=0$? Does it exist? Is it $\frac{\partial q}{\partial w_1}=(0,0,0,0)$? Or what would be $\frac{\partial q}{\partial w_3}$? $\endgroup$ Feb 22, 2014 at 11:17
  • $\begingroup$ Assuming you mean $\partial q/ \partial w_1$ at $w_1 = 0$, that's not a meaningful question: $q$ is a function of 3 variables, and you have to give me values for all 3. At a point $(w_1, w_2, w_3)$ where $w_1 = 0$ and at least one of $w_2$ and $w_3$ is nonzero, your theorem tells you the answer: it's $(\mathbf i - 0)\frac{sin(\|w\|)}{\|w\|} +0 \cdot \text{stuff} = \mathbf i \frac{sin(\|w\|)}{\|w\|} $. $\endgroup$ Feb 25, 2014 at 21:28
1
$\begingroup$

I just came across a paper by T.Barfoot, J.R. Forbes and P.T.Fugale that deals with derivatives of rotation matrices with respect to their angles. Take a look at equation (16)

$$\frac{\partial C(a, \phi)}{\partial \phi}=-a^x C(a, \phi)$$

Note this is useful if you wish to use the rotation matrix instead of the quaternion.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .