0
$\begingroup$

On page 111 (section 4.6) of Robot Modeling and Control (Second Edition) by Spong, Hutchinson and Viyasagar, the authors define a "body velocity" vector $\xi$ of the end-effector as follows:

$\xi = \begin {bmatrix} v_n^0 \\ \omega_n^0 \end{bmatrix}$

where $\omega_n^0$ and $v_n^0$ both belong to $\mathbb{R^3}$. (This is in the context of a derivation of the Jacobian.) It is then stated:

"Note that this velocity vector is not the derivative of a position variable, since the angular velocity vector is not the derivative of any particular time-varying quantity."

I don't understand the statement. Why isn't the angular velocity vector the derivative of a time-varying quantity? In particular, why isn't $\omega_n^0$ the derivative of the end-effector's orientation with respect to the basis vectors of the base frame?

$\endgroup$

2 Answers 2

1
$\begingroup$

As far as I can tell, the phrase

Note that this velocity vector is not the derivative of a position variable, since the angular velocity vector is not the derivative of any particular time-varying quantity.

is referring to the fact that you do not directly integrate the angular velocity vector back into some variable that represents the current orientation. For example, when you have the position derivative $\dot{x}(t)$, we know the position $x(t)$ can be found simply from using the equation

$$ x(t) = \int_{0}^{t}\dot{x}(\tau) d\tau $$

While a similar concept can be applied to a subset of rotations represented using the axis-angle representation, it does not hold universally. For example, consider a rotation about the x-axis with a magnitude of $2\pi$ radians followed by a rotation about the y-axis with a magnitude of $\pi$ radians. For the first rotation, we can directly integrate the angular velocity to produce its axis-angle representation, $\left[ 2\pi, 0, 0 \right]$. Meanwhile, directly integrating the second rotation would give you the axis-angle value of $\left[ 2\pi, \pi, 0 \right]$. Conceptually, we can see the final result of this example should be a $\pi$ rotation about the y-axis as a $2\pi$ rotation about any axis will return to the original orientation. So, let's consider the rotation matrix derived from the computed axis-angle values as well as the rotation matrix produced from the y-axis rotation alone.

So, the rotation matrix produced from the axis-angle representation is $$ \mathbf{R}_{\omega} \approx \left[ \begin{array}{ccc} 0.95 & 0.11 & 0.30 \\ 0.11 & 0.79 & -0.60 \\ -0.30 & 0.60 & 0.74 \end{array} \right] $$

while the y-axis rotation matrix is $$ \mathbf{R}_{y} = \left[ \begin{array}{ccc} -1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & -1 \end{array} \right] $$

Thus, simply integrating the angular velocities will not produce a meaningful representation of orientation.


Now, personally I disagree with saying the angular velocity is "not the derivative of any particular time-varying quantity". It is well-known that the time-derivative of a rotation matrix can be solved for by using the angular velocity (here), defined as follows

$$ \dot{{}_{a}\mathbf{R}_{b}} = {}_{a}\mathbf{R}_{b} [\omega]_{\times} $$

where ${}_{a}\mathbf{R}_{b}$ is the rotation matrix relating frame $b$ to frame $a$ and $[\omega]_{\times}$ is the skew-symmetric matrix formed from the angular velocity vector $\omega$. To relate this to robotics, the rotation matrix relating the end-effector frame to the world frame has a clear physical representation. Each of its columns represent the current values of the end-effector's x-axis, y-axis, and z-axis as represented in the world frame. So, the time derivative of this matrix represents how these values are going to change over time, which sounds an awfully lot like a time-varying quantity to me. So, it seems that the only chance this statement has at being correct would be if it is meaning that each component of the angular velocity vector does not correspond to a single orientation variable.

$\endgroup$
0
$\begingroup$

1: The first question you should ask, is: how do we describe the orientation of a rigid body in 3d space?

  1. Using rotation matrices R
  2. Using angle-axis representation
  3. Using euler angles (with a particular convention, ex. ZYX)
  4. Using quaternions

We do not describe it with "the angle of the end-effector's position with respect to the basis vectors of the base frame". (Also i think you mean the angle of the of the frame (coordinate system) of the end effector with respect to the basis frame, using for example angle-axis representation).

2: $\omega_n^0$ is the instantaneous angular velocity of the body, expresed the base frame. That is to say:

$$ \omega_n^0 = \frac{d \theta}{dt} k^0$$

where $k^0$ is the instantaneous axis of rotation. As you can see $\omega_n^0$ is not the derivative of any of the previous ways of representing orientation.

Extra There are two jacobians, the geometric and the analytic. The analytic jacobian is:

$$ \begin{bmatrix} u_n^0 \\ \dot{\theta}_r \end{bmatrix} = J_A(q,representation) \dot{q} $$

Here $\dot{\theta}_r$ is the derivate of the above representations.

$\endgroup$
2
  • $\begingroup$ You are right in your interpretation of my post. I've edited it for clarity. As regards point 2: isn't the expression $\omega_n^0 = \frac{d\theta}{dt}k^0$ the derivative of the angle-axis representation of the end-effector's orientation with respect to the basis frame? $\endgroup$ Mar 20, 2023 at 10:55
  • $\begingroup$ $\omega_n^0 = \frac{d\theta}{dt} k^0$ is a definition. $k^0$ isn't necessarily constant, for you to define $\vec{ \theta}_k = \theta k^0$ and then differentiate: $\dot{\theta}_k = \frac{d\theta}{dt} k^0 + \theta \cdot \frac{dk^0}{dt} =\frac{d\theta}{dt} k^0 $ $\endgroup$ Mar 20, 2023 at 11:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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