Angular Velocities
Terms
Angular Velocities
Knowing the configuration of a robot helps us understand the space in which the robot can operate. Usually this is made up of positions and rotations.
Next we will look for a representation of angular velocity, again using 3 variables like we did before. We defined the frame in coordinates $[\hat{x}, \hat{y}, \hat{z}]^T$ so we should be able to take the change in these positions over time. $\triangle{t}$
To determine angular velocity, we also need to identify the angles present in a frame. If we examine the body frame at times $t$ and $t + \triangle{t}$, the change in frame orientation can be described as a rotation of angle $\triangle\theta$ about some unit axis $\hat{w}$ passing through the origin. Now for the final step.
As $\triangle{t}$ approaches zero, the ratio $\frac{\triangle{\theta}}{\triangle{t}}$ becomes the rate of rotation $\dot{\theta}$ and moves by a factor of the unit axis we defined before. Therefore, the angular velocity can be defined as:
$$ w = \hat{w}\dot{\theta} $$
This equation works because any regular velocity can be represented by a rotation axis and the speed of rotation about it.
Following along with this, we can also get the angular velocity along any single axis:
$$ \dot{\hat{x}} = w\times\hat{x} \newline \dot{\hat{y}} = w\times\hat{y} \newline \dot{\hat{z}} = w\times\hat{z} \newline $$
Isn’t math fun? :)
Skew Symmetric Matrices
Let’s go back to the Rotation Matrix R. We previously stated that any regular velocity can be represented by a rotation axis and the speed of rotation about it. Well since w is a matrix, let’s refer to it as [w] in equations. If we want to define the angular velocity via the rotation matrix we would then say:
$$ \dot{R} = R[w]R^T $$
which will yield a coordinate matrix for the angular velocities. But that’s a lot of work going on in the right hand side. Thankfully a useful math property is here to save the day. If we can define w to be a skew-symmetric matrix, then we can rewrite the equation as:
$$ [\dot{R}]= [w]R $$
Indeed, we can achieve this. Since w is made up of $[\dot{\hat{x}}, \dot{\hat{y}},\ and\ \dot{\hat{z}}]$, we need to prove that each of these is skew-symmetric. To do that we only have to focus on one example.
A matrix is said to be skew-symmetric if the transpose of the matrix is equal to the negative of the matrix. This is true if:
$$ x = \begin{bmatrix} x_1 \cr x_2 \cr x_3 \end{bmatrix} \in \real^3 $$
$$ [x] = \begin{bmatrix} 0 & -x_3 & x_2 \cr x_3 & 0 & -x_1 \cr -x_2 & x_1 & 0 \end{bmatrix} $$
In otherwords, we need to make [x] be a 3x3 matrix representation of the 3-vector x. The math works out so we can acomplish this. We also get a new definition out of this, so(3).
so(3) refers to all of the 3x3 skew-symmetric real matrices. It is related to SO(3), the space of all rotation matrices.
Angular Velocity based on Frame
Typically, we write the angular velocity rotation matrix as:
$$ \dot{R}=[w_s]R_{sb} $$
The ordering is very important as is the subscript ordering. Here are the rules on expressing this matrix in different frames.
-
The angular velocity vector can be expressed in other frames, not just the {s} frame. We can also write it in the body frame.
$w_b = R_{bs}w_s = R_{sb}^{-1}w_s = R_{sb}^Tw_s$
-
R usually indicates the body frame relative to the space frame, so we can drop the subscripts and write the relationship between the body angular velocity and spatial angular velocity as:
$w_b = R_{w_s}^{-1} = R_{w_s}^T$
-
We can isolate the angular velocity:
$[w_s] = \dot{R}R^{-1}$
Exponential Coordinates Representation of Rotation
The last thing we are going to focus on is a three-parameter representation for rotations, known as the exponential coordinates for rotation. What’s