# How is Screw Theory used in Robotics when you can do everything with regular kinematics?

I was seeing some Robotics lectures and a word which keeps coming up is "Screw Theory", on looking it up, I find that everything you can do with it practically, you can do with vector algebra itself.

So, in what exact way does the usage of screw theory simplfy the study of robotics?

Screw theory greatly simplifies the notation and expressions used. This allows for complex systems to be considered. As an added bonus it completely eliminates the need to specify which coordinate frame, and on what position things are summed up.

# Example

Consider the use case of two connected rigid bodies floating in space

### Definitions

At some instant, in time the locations of each body's center of mass are described by the vectors $$\vec{r}_1$$ and $$\vec{r}_2$$. The velocities and accelerations are respectively $$\vec{v}_1$$ and $$\vec{v}_2$$ and $$\vec{a}_1$$ and $$\vec{a}_2$$ also at the center of mass. Rotationally they move with $$\vec{\omega}_1$$ and $$\vec{\omega}_2$$ and their accelerations are $$\vec{\alpha}_1$$ and $$\vec{\alpha}_2$$.

The mass properties of the two bodies are described by the scalar masses $$m_1$$ and $$m_2$$ and the mass moment of inertia tensors $$\mathrm{I}_1$$ and $$\mathrm{I}_2$$ summed at each center of mass but using the inertial frame basis vectors.

The revolute joint between the two bodies is located at $$\vec{r}_A$$ at this instant, and the relative rotation axis is $$\hat{z}_A$$ with joint speed $$\dot{q}_A$$. The joint motor has specified torque $$\tau_A$$.

The equations of motion of this system need to consider not only the force and moment sums but also the kinematics between the bodies, and the joint condition.

## Let us look at the kinematics first

### Vector Notation

Here are all the equations needed to describe the relative motion between the bodies

\begin{aligned}\vec{\omega}_{2} & =\vec{\omega}_{1}+\hat{z}_{A}\dot{q}_{A}\\ \vec{v}_{2} & =\vec{v}_{1}+\vec{\omega}_{1}\times\left(\vec{r}_{A}-\vec{r}_{1}\right)+\vec{\omega}_{2}\times\left(\vec{r}_{2}-\vec{r}_{A}\right)\\ \vec{\alpha}_{2} & =\vec{\alpha}_{1}+\hat{z}_{A}\ddot{q}_{A}+\vec{\omega}_{1}\times\hat{z}_{A}\dot{q}_{A}\\ \vec{a}_{2} & =\vec{a}_{1}+\vec{\alpha}_{1}\times\left(\vec{r}_{A}-\vec{r}_{1}\right)+\vec{\omega}_{1}\times\left(\vec{\omega}_{1}\times\left(\vec{r}_{A}-\vec{r}_{1}\right)\right)+\vec{\alpha}_{2}\times\left(\vec{r}_{2}-\vec{r}_{A}\right)+\vec{\omega}_{2}\times\left(\vec{\omega}_{2}\times\left(\vec{r}_{2}-\vec{r}_{A}\right)\right) \end{aligned}

I count 4 vector equations (12 component equations). Ouch, my eyes hurt looking at these.

### Screw Notation

Here are the exact same equations but with screw notation

\begin{aligned}\boldsymbol{v}_{2} & =\boldsymbol{v}_{1}+\boldsymbol{s}_{A}\dot{q}_{A}\\ \boldsymbol{a}_{2} & =\boldsymbol{a}_{1}+\boldsymbol{s}_{A}\ddot{q}_{A}+\boldsymbol{v}_{1}\times\boldsymbol{s}_{A}\dot{q}_{A} \end{aligned}

I count 2 screw equations (12 component equations). What is neat is that the expressiveness offers an explanation of what is going on visually. For example,

$$\underbrace{\boldsymbol{v}_{2}}_{\text{motion of 2}} = \underbrace{\boldsymbol{v}_{1}}_{\text{motion of 1}}+\underbrace{\boldsymbol{s}_{A}\dot{q}_{A}}_{\text{joint motion}}$$

This is not the place to derive all of the above, but suffice to say that the entire motion of body 1 is described by one quantity defined as

$$\boldsymbol{v}_1 = \begin{bmatrix} \vec{v}_1 + \vec{r}_1 \times \vec{\omega}_1 \\ \vec{\omega}_1 \end{bmatrix}$$

The above encompasses the translational and rotational motion as well as the location of the instantaneous axis of rotation (and thus the geometry of the kinematics).

## Now let us look at the equations of motion

### Vector Notation

Consider there is a force moment pair $$(\vec{F}_A,\vec{M}_A)$$ applied in equal and opposite terms between the bodies the equations of motion are

\begin{aligned}-\vec{F}_A & =m_{1}\vec{a}_{1}\\ -\left(\vec{r}_{A}-\vec{r}_{1}\right)\times\vec{F}_A-\vec{M}_A & =\mathrm{I}_{1}\vec{\alpha}_{1}+\vec{\omega}_{1}\times\mathrm{I}_{1}\vec{\omega}_{1}\\ \vec{F}_A & =m_{2}\vec{a}_{2}\\ \left(\vec{r}_{A}-\vec{r}_{2}\right)\times\vec{F}_A+\vec{M}_A & =\mathrm{I}_{2}\vec{\alpha}_{2}+\vec{\omega}_{2}\times\mathrm{I}_{2}\vec{\omega}_{2} \end{aligned}

Again, 4 vector equations (12 component equations). The sum of moments is always going to be a complex affair in dynamics as everything acting contributes an active moment and an equipollent moment at the same time.

### Screw Notion

Forces and moments are combined in wrenches making the equations of motion satisfyingly simpler

\begin{aligned}-\boldsymbol{f}_A & ={\bf I}_{1}\boldsymbol{a}_{1}+\boldsymbol{v}_{1}\times{\bf I}_{1}\boldsymbol{v}_{1}\\ \boldsymbol{f}_A & ={\bf I}_{2}\boldsymbol{a}_{2}+\boldsymbol{v}_{2}\times{\bf I}_{2}\boldsymbol{v}_{2} \end{aligned}

I count 2 screw equations (12 component equations). Again there is an expressiveness here you see exactly what goes into each equation like a free body diagram. For example, the force pair from the joint acts in equal and opposite measures on the two bodies. This wrench is defined as

$$\boldsymbol{f}_A = \begin{bmatrix} \vec{F}_A \\ \vec{M}_A + \vec{r}_A \times \vec{F}_A \end{bmatrix}$$

## Joint Condition

Finally, the joint torque $$\tau_A$$ must be considered.

### Vector notation

$$\tau_A = \hat{z}_A ^\top \vec{M}_A$$

This is a scalar equation.

### Screw notation

$$\tau_A = \boldsymbol{s}_A ^\top \boldsymbol{f}_A$$

This is also a scalar equation.

## Try to solve for the joint acceleration

### With vector notation

You have 12+12+1 = 25 equations and 19 unknowns (6 DOF of motion for each body, 3 constraint forces, 3 constraint moments, 1 joint motion). So there the problem is overconstrained and some vector equations need to be disregarded to be solved.

### With screw notation

You can reduce the system to 7 equations to be solved with 7 unknowns (6 motion DOF of first body plus joint motion).

$$\begin{gathered}\tau_{A}=\boldsymbol{s}_{A}^{\top}\boldsymbol{f}_{A}\\ \tau_{A}=\boldsymbol{s}_{A}^{\top}\left({\bf I}_{2}\boldsymbol{a}_{2}+\boldsymbol{v}_{2}\times{\bf I}_{2}\boldsymbol{v}_{2}\right)\\ \underbrace{\tau_{A}=\left(\boldsymbol{s}_{A}^{\top}{\bf I}_{2}\boldsymbol{s}_{A}\right)\ddot{q}_{A}+\boldsymbol{s}_{A}^{\top}\left({\bf I}_{2}\left(\boldsymbol{a}_{1}+\boldsymbol{v}_{1}\times\boldsymbol{s}_{A}\dot{q}_{A}\right)+\boldsymbol{v}_{2}\times{\bf I}_{2}\boldsymbol{v}_{2}\right)}_{\text{1 equation, unknowns }\boldsymbol{a}_1\,\ddot{q}_A}\\ \\ 0={\bf I}_{1}\boldsymbol{a}_{1}+\boldsymbol{v}_{1}\times{\bf I}_{1}\boldsymbol{v}_{1}+{\bf I}_{2}\boldsymbol{a}_{2}+\boldsymbol{v}_{2}\times{\bf I}_{2}\boldsymbol{v}_{2}\\ \underbrace{0=\left({\bf I}_{1}+{\bf I}_{2}\right)\boldsymbol{a}_{1}+{\bf I}_{2}\boldsymbol{s}_{A}\ddot{q}_{A}+\boldsymbol{v}_{1}\times{\bf I}_{1}\boldsymbol{v}_{1}+\boldsymbol{v}_{2}\times{\bf I}_{2}\boldsymbol{v}_{2}+{\bf I}_{2}\left(\boldsymbol{v}_{1}\times\boldsymbol{s}_{A}\dot{q}_{A}\right)}_{\text{6 equations, unknowns }\boldsymbol{a}_1\,\ddot{q}_A}\\ \\ \end{gathered}$$

## Summary

So screw notation is more expressive, more compact, leads easier to solver algorithms, and can combine complex connected structures with at least an order of magnitude less difficulty.

Recently I look at a rigid body collision algorithm and in vector notation, you calculate the reduced mass of the system along the contact normal as

$$m_{\rm reduced} = \left[\tfrac{1}{m_{1}}+\tfrac{1}{m_{2}}+\left(\hat{n}\times\vec{c}_{1}\right)\cdot {\rm I}_{1}^{-1}\left(\hat{n}\times\vec{c}_{1}\right)+\left(\hat{n}\times\vec{c}_{2}\right)\cdot {\rm I}_{2}^{-1}\left(\hat{n}\times\vec{c}_{2}\right)\right]^{-1}$$

But in screw notation, the above becomes much simpler (to remember and to write)

$$m_{\rm reduced} = \frac{1}{ \boldsymbol{n}^\top (\mathbf{I}_1^{-1} + \mathbf{I}_2^{-1}) \, \boldsymbol{n} }$$

And again, you can see that the two masses are added like resistors in parallel (addition of inverse inertia) and then projected through the contact normal. This kind of insight cannot be achieved with vector notation.

– Chuck
Commented Jan 14, 2022 at 22:26
• @Chuck - thank you. I wrote the book well just my Thesis. Commented Jan 15, 2022 at 2:26
• Well said! Came here to provide some insights to the OP on screw theory and instead ended up learning about using it to calculate reduced mass formulations. Commented Jan 19, 2022 at 16:09
• @BrandonJ.DeHart - yeah it is remarkably easier. $\boldsymbol{n}$ is the unit wrench designating the location and direction of the contact and $\mathbf{I}_i$ is the spatial inertia matrices. Note also the speed along the contact normal is $$v_{\rm imp} = \boldsymbol{n}^\top ( \boldsymbol{v}_1 - \boldsymbol{v}_2 )$$ Commented Jan 19, 2022 at 22:19
• @BrandonJ.DeHart - if you are interested in reduced mass formulation for a constrained serial chain read this article I authored. Commented Jan 25, 2022 at 21:16

Screw theory is another way to describe the motion of rigid bodies. The difference between this theory and the homogenous transformation matrix (i.e. standard approach) is the fact that with the latter, the translation and rotation are carried out separately whereas with the former the translational and rotational movement is carried out simultaneously. Both will provide same final equations.

Why use polar or spherical coordinates when you can use Cartesian coordinates for everything? Why use Laplace transforms to solve differential equations?

I think most of the challenge in higher math is choosing the representation that makes the problem easy (or easier) to solve.

• Not just easier to solve, but easier to gain insight and easier to combine into more complex structures. See my answer for a more illustrative example of this point. Commented Jan 14, 2022 at 21:43