EN530.646 Review. Based on A Mathematical Introduction to Robotic Manipulation book.

Math Preliminaries

Vector Space

A vector space over a field $$F$$ is a set $$V$$ together with two operations $$(+, \cdot)$$ defined as

1. Vector addition $$+$$: $$V\times V \rightarrow V$$
2. Scalar multiplication $$\cdot$$: $$F\times V \rightarrow V$$

It has to satisfy eight axioms, $$\forall x, y, z \in V$$ and $$\forall \alpha, \beta \in F$$

1. $$x+y=y+x$$
2. $$(x+y)+z = x+(y+z)$$
3. $$\exists 0\in V$$, s.t. $$x+0=x$$
4. $$\exists -x \in V$$, s.t. $$x + (-x) = 0$$
5. $$\alpha \cdot(x+y) = \alpha\cdot x + \alpha\cdot y$$
6. $$(\alpha+\beta)\cdot x = \alpha\cdot x + \beta\cdot x$$
7. $$(\alpha\beta)\cdot x = \alpha\cdot(\beta\cdot x)$$
8. $$1\cdot x = x$$, where $$1$$ is the multiplicative identity in $$F$$

Rigid Body Motion

Rotational Motion

Let $$A$$ be the inertial frame, $$B$$ the body frame, and $$\mathbf{x}_{ab}, \mathbf{y}_{ab},\mathbf{z}_{ab} \in \mathbb{R}^3$$ the coordinated of the principal axes of $$B$$ relative to $$A$$. Define the $$3\times 3$$ rotation matrix $\displaylines{R_{ab} = \begin{bmatrix} \mathbf{x}_{ab} & \mathbf{y}_{ab} & \mathbf{z}_{ab} \end{bmatrix} }$ Properties:

1. $$RR^T=R^TR=I$$
2. $$\det R = \pm 1$$. If the coordinate frame is right-handed, then $$\det R = 1$$

Let $$q_a, q_b$$ be the coordinates of a point $$q$$ relative to frames $$A$$ and $$B$$, then we have $\displaylines{q_a = R_{ab}q_b }$

Special Orthogonal Group

Define $$SO(n)$$ as $\displaylines{SO(n) = \{R\in\mathbb{R}^{n\times n} : RR^T=I, \det R = 1 \} }$ $$SO(n)$$ is a group under the operation of matrix multiplication.

A set $$G$$ with a binary operation $$\circ$$ defined on elements of $$G$$ is called a group if it satisfies the following axioms:

1. Closure: If $$g_1, g_2\in G$$, then $$g_1 \circ g_2 \in G$$
2. Identity: There exists an identity element $$e$$, s.t. $$g\circ e=e\circ g = g$$ for every $$g\in G$$
3. Inverse: For each $$g\in G$$, there exists only one inverse $$g^{-1}\in G$$, s.t. $$g\circ g^{-1} = g^{-1} \circ g = e$$
4. Associativity: If $$g_1, g_2, g_3 \in G$$, then $$(g_1\circ g_2)\circ g_3 = g_1\circ(g_2\circ g_3)$$

Defined $$so(n)$$ as $\displaylines{so(n)=\{S\in\mathbb{R}^{n\times n}: S^T=-S \} }$

Exponential Coordinates

Let $$\omega \in \mathbb{R}^3$$ be a unit vector which specifies the direction of the rotation and $$\theta \in \mathbb{R}$$ be the angle of rotation. The rotation matrix can be represented as $\displaylines{R(\omega, \theta) = e^{\widehat{\omega} \theta} }$ where $$\widehat{\omega} \in so(3)$$ with the property $$\omega \times b = \widehat{\omega}b$$ $\displaylines{\widehat{\omega} = \begin{bmatrix} 0 & -\omega_3 & \omega_2 \\ \omega_3 & 0 & -\omega_1 \\ -\omega_2 & \omega_1 & 0 \end{bmatrix} }$ When $$\|\omega\| = 1$$ $\displaylines{e^{\widehat{\omega}\theta} = I + \widehat{\omega}\sin\theta + \widehat{\omega}^2 (1-\cos\theta) }$ The exponential map from $$so(3)$$ to $$SO(3)$$ is surjective

Important properties: $\displaylines{R\widehat{\omega}R^T = (R\omega)^\wedge \\ }$

Euler Angles

$\displaylines{R_x(\alpha):=e^{\widehat{x}\alpha} = \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos\alpha & -\sin\alpha \\ 0 & \sin\alpha & \cos\alpha \\ \end{bmatrix} \\ R_y(\beta):=e^{\widehat{y}\beta} = \begin{bmatrix} \cos\beta & 0 & \sin\beta \\ 0 & 1 & 0 \\ -\sin\beta & 0 & \cos\beta \end{bmatrix} \\ R_z(\gamma):=e^{\widehat{z}\gamma} = \begin{bmatrix} \cos\gamma & -\sin\gamma & 0 \\ \sin\gamma & \cos\gamma & 0\\ 0 & 0 & 1 \end{bmatrix} }$

$$ZYZ$$ is a commonly used Euler angles: Start with frame $$B$$ coincident with frame $$A$$. First rotate $$B$$ about the $$z$$-axis of frame $$B$$ by an angle $$\alpha$$, then rotate about the (new) $$y$$-axis of frame $$B$$ by an angle $$\beta$$, and then rotate about the (new) $$z$$-axis of frame $$B$$ by an angle of $$\gamma$$. The rotation of $$B$$ relative to A is $\displaylines{R_{ab} = R_z(\alpha)R_y(\beta)R_z(\gamma) }$

Quaternions

\displaylines{\begin{aligned} Q &= q_0+q_1 \mathbf{i} + q_2\mathbf{j} + q_3\mathbf{k} \qquad q_i\in\mathbb{R} \\ &=(q_0, \vec{q}) \end{aligned} }

where $\displaylines{\mathbf{i}\cdot\mathbf{i}=\mathbf{j}\cdot\mathbf{j}=\mathbf{k}\cdot\mathbf{k}=-1 \\ \mathbf{i}\cdot\mathbf{j}=-\mathbf{j}\cdot\mathbf{i}=\mathbf{k} \qquad \mathbf{j}\cdot\mathbf{k}=-\mathbf{k}\cdot\mathbf{j}=\mathbf{i} \qquad \mathbf{k}\cdot\mathbf{i}=-\mathbf{i}\cdot\mathbf{k}=\mathbf{j} }$ Definitions:

1. The conjugate of a quaternion: $$Q^*=(q_0, -\vec{q})$$
2. $$\|Q\|^2=Q\cdot Q^*=q_0^2 + q_1^2 + q_2^2 + q_3^2$$
3. $$Q\cdot P=(q_0 p_0 - \vec{q}\cdot\vec{p}, q_0 \vec{p} + p_0\vec{q}+\vec{q}\times\vec{p})$$

Given a rotation matrix $$R=e^{\widehat{\omega}\theta}$$, define the unit quaternion as $\displaylines{Q=(\cos(\theta / 2), \omega\sin(\theta / 2)) }$ To rotate a point $$x$$, first let $$X=(0, \vec{x})$$ be a pure quaternion, then $\displaylines{QXQ^* }$ is also a pure quaternion and the vector part is the rotated $$x$$

Rigid Motion

Rigid motions consist of rotation $$R_{ab}$$ and translation $$p_{ab}$$ is an affine transformation $\displaylines{q_a = p_{ab} + R_{ab}q_b }$ By using homogeneous coordinates, it can be represented in linear form $\displaylines{\bar{q}_a=\begin{bmatrix} q_1 \\ 1 \end{bmatrix}=\begin{bmatrix} R_{ab} & p_{ab} \\ 0 & 1 \end{bmatrix}\begin{bmatrix} q_b \\ 1 \end{bmatrix} =: \bar{g}_{ab}\bar{q}_b }$

Special Euclidean Group

Define $$SE(3)$$ as $\displaylines{SE(3)=\{(p, R): p\in\mathbb{R}^3, R\in SO(3)\} }$ Define $$se(3)$$ as $\displaylines{se(3):=\{(v, \widehat{\omega}: v\in\mathbb{R}^3, \widehat{\omega} \in so(3) \} }$

Exponential Coordinates

Similar to $$SO(3)$$, the exponential mapping can be generalized to $$SE(3)$$ $\displaylines{\bar{g}=e^{\widehat{\xi} \theta} \\ \widehat{\xi} = \begin{bmatrix} \widehat{\omega} & -\omega\times q \\ 0 & 0 \end{bmatrix} \in se(3) }$ where $$\omega$$ is the axis of rotation and $$q$$ is a point on the axis.

$$\xi:=(v, \omega)$$ is the twist coordinates of $$\widehat{\xi}$$ $\displaylines{\begin{bmatrix} v \\ \omega \end{bmatrix}^\wedge = \begin{bmatrix} \widehat{\omega} & v \\ 0 & 0 \end{bmatrix} }$ When $$\|\omega\| = 1$$ $$$\displaylines{ e^{\widehat{\xi} \theta} = \begin{bmatrix} e^{\widehat{\omega} \theta} & (I - e^{\widehat{\omega}\theta}) (\omega \times v) + \omega\omega^Tv\theta) \\ 0 & 1 \end{bmatrix} \\ } \label{gexp}$$$ The exponential map from $$se(3)$$ to $$SE(3)$$ is surjective

Note that this represents the relative motion of a rigid body: $\displaylines{p(\theta) = e^{\widehat{\xi}\theta} p(0) \\ g_{ab}(\theta) = e^{\widehat{\xi}\theta}g_{ab}(0) }$

Screws

Screw motion is defined as rotation about an axis by $$\theta = M$$ angles, followed by translation along the same axis by $$d=h\theta$$.

• Pitch: $$h:=d/\theta$$. If $$h=\infty$$ then it represent pure translation by $$M$$
• Axis: $$l=\{q+\lambda \omega : \lambda \in \mathbb{R}\}$$, where $$q$$ is a point on the axis and $$\omega$$ is the direction
• Magnitude: $$M$$

Represent screw motion in homogeneous coordinates: $\displaylines{g = \begin{bmatrix} e^{\widehat{\omega} \theta} & \left(I-e^{\widehat{\omega} \theta}\right) q+h \theta \omega \\ 0 & 1 \end{bmatrix} }$ Compared with $$\eqref{gexp}$$, if we choose $$v=-\omega\times q + h\omega$$, then $$\xi=(v,\omega)$$ generates the same screw motion.

Twist to Screw

Given twist $$\xi = (v, \omega)$$, the screw coordinates are:

• Pitch: $$h=\dfrac{\omega^{T} v}{\|\omega\|^{2}}$$
• Axis: $$l=\left\{\begin{array}{ll} \frac{\omega \times v}{\|\omega\|^{2}}+\lambda \omega: \lambda \in \mathbb{R}, & \text { if } \omega \neq 0 \\ 0+\lambda v: \lambda \in \mathbb{R}, & \text { if } \omega=0 \end{array}\right.$$
• Magnitude: $$M=\left\{\begin{array}{ll} \|\omega\|, & \text { if } \omega \neq 0 \\ \|v\|, & \text { if } \omega=0 \end{array}\right.$$

Screw to Twist

If $$h=\infty$$. Let $$l=\{q + \lambda v: \|v\| = 1\}$$, $$\theta = M$$, the twist is $$\widehat{\xi} = \begin{bmatrix}0 & v \\ 0 & 0\end{bmatrix}$$

if $$h\ne\infty$$. Let $$l=\{q + \lambda \omega: \|\omega\| = 1\}$$, $$\theta=M$$, the twist is $$\widehat{\xi} = \begin{bmatrix}\widehat{\omega} & -\omega\times q + h\omega \\ 0 & 0\end{bmatrix}$$

Velocity of a Rigid Body

Rotational Velocity

From $$q_a(t)=R_{ab}(t) q_b$$, we can get the velocity of the point in spatial coordinates: $\displaylines{v_{q_{a}}(t)=\frac{d}{d t} q_{a}(t)=\dot{R}_{a b}(t) q_{b} = \dot{R}_{a b}(t) R_{a b}^{-1}(t) R_{a b}(t) q_{b} }$ Define spatial angular velocity $$\widehat{\omega}_{ab}^s$$ and body angular velocity $$\widehat{\omega}_{ab}^b$$ as $\displaylines{\widehat{\omega}_{ab}^s := \dot{R}_{ab} R_{ab}^{-1}, \qquad \widehat{\omega}_{ab}^b := R_{ab}^{-1} \dot{R}_{ab} }$ And the velocity becomes $\displaylines{v_{q_{a}}(t)=\widehat{\omega}_{a b}^{s} R_{a b}(t) q_{b}=\omega_{a b}^{s}(t) \times q_{a}(t) \\ v_{q_b}(t) = R_{ab}^T(t) v_{q_a}(t) = \omega_{ab}^b(t) \times q_b }$

Rigid Body Velocity

Similar to rotational velocity, from $$q_a(t) = g_{ab}(t) q_b$$ we have $\displaylines{v_{q_a} = \frac{d}{dt}q_a(t) = \dot{g}_{ab} q_b = \dot{g}_{ab} g_{ab}^{-1} q_a }$ Define the spatial velocity $$\widehat{V}_{ab}^s \in se(3)$$ and body velocity $$\widehat{V}_{ab}^b \in se(3)$$ $\displaylines{\widehat{V}_{a b}^{s}=\dot{g}_{a b} g_{a b}^{-1}, \qquad V_{a b}^{s} =\begin{bmatrix} v_{a b}^{s} \\ \omega_{a b}^{s} \end{bmatrix}=\begin{bmatrix} -\dot{R}_{a b} R_{a b}^{T} p_{a b}+\dot{p}_{a b} \\ \left(\dot{R}_{a b} R_{a b}^{T}\right)^{\vee} \end{bmatrix} \\ \widehat{V}_{a b}^{b}=g_{a b}^{-1}\dot{g}_{a b}, \qquad V_{a b}^{b} =\begin{bmatrix} v_{a b}^{b} \\ \omega_{a b}^{b} \end{bmatrix}=\begin{bmatrix} R_{a b}^{T} \dot{p}_{a b} \\ \left(R_{a b}^{T} \dot{R}_{a b}\right)^{\vee} \end{bmatrix} \\ }$

And the velocity becomes $\displaylines{v_{q_{a}}=\widehat{V}_{a b}^{s} q_{a}=\omega_{a b}^{s} \times q_{a}+v_{a b}^{s} \\ v_{q_b} = g_{ab}^{-1} v_{q_a} = \widehat{V}_{ab}^b q_b = \omega_{a b}^{b} \times q_{b}+v_{a b}^{b} }$

• $$\omega_{ab}^s$$: angular velocity of the body viewed in the spatial frame
• $$v_{ab}^s$$: velocity of a point on the body which is traveling through the origin of the spatial frame
• $$\omega_{ab}^b$$: angular velocity of the coordinate frame viewed in the current body frame
• $$v_{ab}^b$$: velocity of the origin of the body frame viewed in the current body frame

The spatial and body velocity are related by $\displaylines{\omega_{a b}^{s}=R_{a b} \omega_{a b}^{b} \\ v_{a b}^{s}=-\omega_{a b}^{s} \times p_{a b}+\dot{p}_{a b}=p_{a b} \times\left(R_{a b} \omega_{a b}^{b}\right)+R_{a b} v_{a b}^{b} }$ Define the adjoint transformation associated with $$g$$ as $\displaylines{\mathrm{Ad}_g = \begin{bmatrix} R & \widehat{p} R \\ 0 & R \end{bmatrix} }$ Then we have $$V_{ab}^s = \mathrm{Ad}_g V_{ab}^b$$

Velocity of a Screw

\displaylines{\begin{aligned} \widehat{V}_{ab}^s &= \dot{g}_{ab}(\theta) g_{ab}^{-1}(\theta) \\ &= \frac{d}{dt}\left(e^{\widehat{\xi}\theta} g_{ab}(0)\right) \left(g_{ab}^{-1}(0) e^{-\widehat{\xi}\theta}\right) \\ &= \widehat{\xi}\dot{\theta} \end{aligned} }

\displaylines{\begin{aligned} \widehat{V}_{a b}^{b} &=g_{a b}^{-1}(\theta) \dot{g}_{a b}(\theta) \\ &=\left(g_{a b}^{-1}(0) e^{-\widehat{\xi} \theta}\right)\left(e^{\widehat{\xi} \theta} \widehat{\xi} \dot{\theta} g_{a b}(0)\right) \\ &=\left(g_{a b}^{-1}(0) \hat{\xi} g_{a b}(0)\right) \dot{\theta} \\ &=\left(\operatorname{Ad}_{g_{a b}^{-1}(0)} \xi\right)^{\wedge} \dot{\theta} \end{aligned} }

Note that $$\frac{d}{dt}e^{A(t)} = \dot{A}(t) e^{A(t)} = e^{A(t)}\dot{A}(t)$$ iff $$A$$ and $$\dot{A}$$ commute

Coordinate Transformation

Transformation of spatial velocity: $\displaylines{V_{a c}^{s}=V_{a b}^{s}+\mathrm{Ad}_{g_{a b}} V_{b c}^{s} }$ Transformation of body velocity: $\displaylines{V_{a c}^{b}=\mathrm{Ad}_{g_{b c}^{-1}} V_{a b}^{b}+V_{b c}^{b} }$ Important properties: $\displaylines{V_{a b}^{b}=-V_{b a}^{s} \\ V_{a b}^{b}=-\mathrm{Ad}_{g_{b a}} V_{b a}^{b} }$

Wrenches

Define wrench as a force/moment pair $\displaylines{F = \begin{bmatrix} f \\ \tau \end{bmatrix} \in \mathbb{R}^6 }$ Let $$B$$ be a coordinate frame attached to a rigid body, then write $$F_b = (f_b, \tau_b)$$ for a wrench applied at the origin of $$B$$.

The infinitesimal work can be represented as $\displaylines{\delta W = V_{ab}^b \cdot F_b }$ Now consider another frame $$C$$ that is stationary w.r.t. $$B$$, the work should be the same: $\displaylines{V_{ac}^b \cdot F_c = V_{ab}^b \cdot F_b = (\mathrm{Ad}_{g_{bc}} V_{ac}^b)^T F_b = V_{ac}^b \cdot \mathrm{Ad}_{g_{bc}}^T F_b }$ so that $\displaylines{F_c = \mathrm{Ad}_{g_{bc}}^T F_b \\ \begin{bmatrix} f_c \\ \tau_c \end{bmatrix} = \begin{bmatrix} R_{bc}^T & 0 \\ -R_{bc}^T \widehat{p}_{bc} & R_{bc}^T \end{bmatrix} \begin{bmatrix} f_b \\ \tau_b \end{bmatrix} }$

Manipulator Kinematics

Forward Kinematics

Consider open-chain manipulators with base frame $$S$$ and tool frame $$T$$ connected by a series of revolute or prismatic joints. The joint (configuration) space $$Q$$ of a manipulator consists of all possible values of the joint variables the robot.

The forward kinematics map $$g_{st}: Q \rightarrow SE(3)$$ is given by $$$\displaylines{ g_{s t}(\theta)=e^{\widehat{\xi}_{1} \theta_{1}} e^{\widehat{\xi}_{2} \theta_{2}} \cdots e^{\widehat{\xi}_{n} \theta_{n}} g_{s t}(0) } \label{fk}$$$ where $$\xi_i$$ must be numbered sequentially starting from the base

Manipulator Jacobian

Since $$g: \mathbb{R}^n \rightarrow SE(3)$$ is a matrix-valued function, the Jacobian $$\frac{\partial g}{\partial \theta}$$ cannot be easily obtained. Instead we derive it from the twist notation.

End-Effector Velocity

\displaylines{\begin{aligned} \widehat{V}_{st}^s &= \dot{g}_{st}(\theta) g_{st}^{-1}(\theta) \\ &= \sum_{i=1}^n \left( \frac{\partial g_{st}}{\partial \theta_i} \dot{\theta}_i \right) g_{st}^{-1}(\theta) \\ &= \sum_{i=1}^n \left( \frac{\partial g_{st}}{\partial \theta_i} g_{st}^{-1}(\theta) \right) \dot{\theta}_i \end{aligned} }

It can be written as $\displaylines{V_{st}^s = J_{st}^s(\theta) \dot{\theta} \\ J_{st}^s(\theta) = \left[ \left(\frac{\partial g_{st}}{\partial \theta_1} g_{st}^{-1} \right)^\vee \dots \left(\frac{\partial g_{st}}{\partial \theta_n} g_{st}^{-1} \right)^\vee \right] }$ where $$J_{st}^s(\theta) \in \mathbb{R}^{6\times n}$$ is called the spatial manipulator Jacobian

If we represent the forward kinematics as $$\eqref{fk}$$ then \displaylines{\begin{aligned} \left(\frac{\partial g_{s t}}{\partial \theta_{i}}\right) g_{s t}^{-1} &=e^{\widehat{\xi}_{1} \theta_{1}} \cdots e^{\widehat{\xi}_{i-1} \theta_{i-1}} \frac{\partial}{\partial \theta_{i}}\left(e^{\widehat{\xi}_{i} \theta_{i}}\right) e^{\widehat{\xi}_{i+1} \theta_{i+1}} \cdots e^{\widehat{\xi}_{n} \theta_{n}} g_{s t}(0) g_{s t}^{-1} \\ &=e^{\widehat{\xi}_{1} \theta_{1}} \cdots e^{\widehat{\xi}_{i-1} \theta_{i-1}}\left(\widehat{\xi}_{i}\right) e^{\widehat{\xi}_{i} \theta_{i}} \cdots e^{\widehat{\xi}_{n} \theta_{n}} g_{s t}(0) g_{s t}^{-1} \\ &=e^{\widehat{\xi}_{1} \theta_{1}} \cdots e^{\widehat{\xi}_{i-1} \theta_{i-1}}\left(\widehat{\xi}_{i}\right) e^{-\widehat{\xi}_{i-1} \theta_{i-1}} \cdots e^{-\widehat{\xi}_{1} \theta_{1}} \end{aligned} } Converting to twist coordinates: $\displaylines{\left(\frac{\partial g_{s t}}{\partial \theta_{i}} g_{s t}^{-1}\right)^{\vee}=\operatorname{Ad}_{\left(e^{\hat{\xi}_{1} \theta_{1}} \dots e^{\widehat{\xi}_{i-1} \theta_{i-1}}\right)} {\xi_{i}} }$ The spatial manipulator Jacobian becomes $\displaylines{J_{st}^s(\theta) = \begin{bmatrix} \xi_1 & \xi_2' & \dots & \xi_n' \end{bmatrix} \\ \xi_i' = \operatorname{Ad}_{\left(e^{\hat{\xi}_{1} \theta_{1}} \dots e^{\widehat{\xi}_{i-1} \theta_{i-1}}\right)} {\xi_{i}} }$ which means that the $$i$$-th column of the spatial Jacobian is the $$i$$-th joint twist, transformed to the current manipulator configuration.

The body manipulator Jacobian can be defined similarly: $\displaylines{J_{st}^b(\theta) = \begin{bmatrix} \xi_1^\dagger & \dots & \xi_{n-1}^\dagger & \xi_n^\dagger \end{bmatrix} \\ \xi_i^\dagger = \operatorname{Ad}^{-1}_{\left(e^{\hat{\xi}_{i} \theta_{i}} \dots e^{\widehat{\xi}_{n} \theta_{n}} g_{st}(0)\right)} {\xi_{i}} }$ The columns of $$J_{st}^b$$ correspond to the joint twists written w.r.t. the tool frame at the current configuration.

The spatial and boy Jacobians are related by an adjoint transformation: $\displaylines{J_{st}^s(\theta) = \operatorname{Ad}_{g_{st}(\theta)} J_{st}^b(\theta) }$ The manipulator Jacobian (when invertible) can be used to move a robot without calculating the inverse kinematics by $\displaylines{\dot{\theta}(t) = [J_{st}^s(\theta)]^{-1} V_{st}^s(t) }$

Singularities

A singular configuration of a robot manipulator is a configuration at which the manipulator Jacobian drops rank.

4 common singularity cases:

Two collinear revolute joints: There exist two revolute joints with twists $\displaylines{\xi_1 = \begin{bmatrix} -\omega_1 \times q_1 \\ \omega_1 \end{bmatrix} \qquad \xi_2 = \begin{bmatrix} -\omega_2 \times q_2 \\ \omega_2 \end{bmatrix} }$ with the following conditions:

1. The axes are parallel: $$\omega_1 = \pm \omega_2$$
2. The axes are collinear: $$\omega_i \times(q_1 - q_2) = 0$$

Three parallel coplanar revolute joint axes

1. The axes are parallel: $$\omega_i = \pm \omega_j$$ for $$i,j=1,2,3$$
2. The axes are coplanar: there exists $$n$$ s.t. $$n^T \omega_i = 0$$ and $$n^T(q_i - q_j) = 0$$ for $$i,j=1,2,3$$

Four intersecting revolute joint axes: There exists a point $$q$$ s.t. $$\omega_i \times(q_i - q) = 0$$ for $$i=1,2,3,4$$

Four parallel joint axes: The axes are parallel: $$\omega_i = \pm\omega_j$$ for $$i=1,2,3,4$$

Manipulability

The manipulability of a robot describes its ability to move freely in all directions in the workspace.

1. The ability to reach a certain position or set of positions
2. The ability to change the position or orientation at a given configuration

Manipulability measure:

1. Minimum singular value: $$\sigma_\min(J)$$
2. Inverse of the condition number: $$\sigma_\min(J) / \sigma_\max(J)$$
3. Determinant: $$\det J$$