# Holonomic (robotics)

A robot is holonomic system if all the constraints that it is subjected to are integrable into positional constraints of the form:

${\displaystyle f(q_{1},q_{2},...,q_{n};t)=0}$

The variables ${\displaystyle q_{i}}$ are the system coordinates. When a system contains constraints that cannot be written in this form, it is said to be nonholonomic.

In simpler terms, a holonomic system is when the number of controllable degrees of freedom is equal to the total degrees of freedom.

## Example

URANUS - this mobile robot is holonomic thanks to its omnidirectional Mecanum wheels

Consider a mobile robot such as the one depicted to the right, moving in the two-dimensional plane. Imagine that three omnidirectional wheels are mounted on the frame of the robot. Each wheel ${\displaystyle W_{i}}$ is described by its coordinates ${\displaystyle (x_{i},y_{i})}$, so that a configuration of the robot can be given by the six scalars ${\displaystyle (x_{1},y_{1},x_{2},y_{2},x_{3},y_{3})}$. Also, each wheel ${\displaystyle W_{i}}$ can impulse a velocity ${\displaystyle \mathbf {v} _{i}=(v_{x,i},v_{y,i})}$ to the robot. However, because all three wheels are connected by the rigid robot frame, their relative velocities are zero (unless the frame breaks):

${\displaystyle {\overrightarrow {W_{1}W_{2}}}\cdot (\mathbf {v} _{1}-\mathbf {v} _{2})=0}$

${\displaystyle {\overrightarrow {W_{2}W_{3}}}\cdot (\mathbf {v} _{2}-\mathbf {v} _{3})=0}$

${\displaystyle {\overrightarrow {W_{3}W_{1}}}\cdot (\mathbf {v} _{3}-\mathbf {v} _{1})=0}$

These velocity constraints integrate into positional constraints

${\displaystyle d(W_{1},W_{2})=\|{\overrightarrow {W_{1}W_{2}}}\|=D_{1}}$

${\displaystyle d(W_{2},W_{3})=\|{\overrightarrow {W_{2}W_{3}}}\|=D_{2}}$

${\displaystyle d(W_{3},W_{1})=\|{\overrightarrow {W_{3}W_{1}}}\|=D_{3}}$

where ${\displaystyle D_{1},D_{2},D_{3}}$ are scalar constants. The system is thus holonomic.

Let us finally look at the degree of freedom of the robot. We initially used six coordinates ${\displaystyle (x_{1},y_{1},x_{2},y_{2},x_{3},y_{3})}$ to describe a configuration of the robot. Yet, each of the positional constraints "consumes" a degree of freedom. For instance, ${\displaystyle d(W_{1},W_{2})=D_{1}}$ implies that ${\displaystyle (x_{2}-x_{1})^{2}+(y_{2}-y_{1})^{2}=D_{1}}$, i.e., ${\displaystyle x_{2}^{2}-2x_{1}x_{2}+x_{1}^{2}+(y_{2}-y_{1})^{2}-D_{1}=0}$. The coordinate ${\displaystyle x_{2}}$ can then be replaced by the appropriate root of this quadratic polynomial. Repeating the process thrice leaves us with three irreducible coordinates, corresponding to the three degrees of freedom of the system.

Note that the simplest generalized coordinates for this system are ${\displaystyle (x,y,\theta )}$, where ${\displaystyle x}$ and ${\displaystyle y}$ denote translation along the plane axes, and ${\displaystyle \theta }$ is the orientation of the robot.

## Counterexample

The tricycle may look like a similar robotic system; however, it is nonholonomic due to the parallel parking problem.