# Holonomics Movement vs Holonomics Constraint

I'm reading Mechanics of Robotic Manipulation by Matthew T Mason and I stumbled upon the concept of kinematic constraints. The book mentioned about two types of constraints: holonomic and nonholonomic constraints

Following is one example of a holonomic constraint mentioned in the book:

A rectangular block sliding in a channel with free variations in the coordinates x,y,and theta. The channel imposes a constraint so that the rectangle's y value is fixed. The holonomic constraint is described below:

While the following is an example of a nonholonomic constraint mentioned:

Suppose that we add a wheel to the block, so it behaves like a unicycle or an ice skate. At any given point in time, the block can move forward and backward, it can rotate about the wheel center, but it cannot move sideways. The nonholonomic constraint equation is described below as:

The author also wrote that:

".. it is evident that each independent holonomic constraint reduces the degrees of freedom of the system by one, but a nonholonomic constraint does not."

All of the explanations so far seem to contradict my understanding of the physical meaning of robotic holonomic movement:

1. I've always thought that a holonomic robot means that it can move in all directions and hence the total number of controllable degrees of freedom is equal to the total degrees of freedom. But how is that possible when every holonomic constraint reduces the degree of freedom of the system?
2. And how come doesn't a nonholonomic constraint reduce the degree of freedom of the system? Isn't the unicycle constraining the block from moving sideways? Why is the degree of freedom of the system not considered as reduced then?

I hope someone can help to clarify my understanding.

You can look at degrees of freedom as if they were the number of variables that you need to use to describe your system. So, for a robot moving in a 2D plane, its state would be represented by: $$s=\begin{bmatrix} x \\ y \\ \theta \\ \end{bmatrix}$$

For a robot moving in a 2D plane to be holonomic, it must have the ability to change any state variable at any given time, no matter the value that the other variables have at the moment.

So, for instance, this means that in order to be holonomic, the robot must be able to change its $Y$ variable to any value it wants without altering $X$ and $\theta$. In the example you give for a non-holonomic constraint, while it is possible for the robot to reach any $X$, $Y$ and $\theta$ values, it has a limit on the number of paths that it must take (one such impossible path would be to move sideways!).

Generally speaking, in order to be holonomic, the number of degrees of fredoom must be the same as the number of differentiable degrees of freedom: $$DOF=DDOF$$

DOFs define the possibility of reaching various configurations, e.g. position ($X$ and $Y$) and orientation ($\theta$)

DDOFs define the number of independently admissible velocities, e.g. linear velocity ($\dot{X}$ and $\dot{Y}$) and angular velocity ($\dot{\theta}$).

Holonomic restrictions limit the number of DOFs. For instance, your wheeled robot cannot fly, hence $Z$ (height) does not belong in the state.

Non-holonomic restrictions limit the ability to change the derivative of the state at will, hence they reduce the number of DDOFs. For instance, you cannot have your unicycle rotating (constant $\dot{\theta}$) while only moving in the $X$ direction.

Interestingly enough, a lighthouse is holonomic!

Everything that is stationary is holonomic because it has 0 DOFs and 0 DDOFs!

So, in a nutshell:

1) DOFs = number of variables in the state

2) DDOFs = velocities that can be changed independently

3) Holonomic restrictions reduce DOFs

4) Non-holonomic restrictions reduce DDOFs

5) A robot is holonomic if, and only if, DOFs=DDOFs

• Is it correct to assume that a reduction in DOF will also causes a reduction DDOF? e.g. if the object is restricted to move in the z axis, the DDOF for linear velocity on z axis will be restricted as well – nasw_264 Sep 10 '17 at 17:15
• In most cases that is very likely to happen, however there are some cases where that is not true: a bicycle has 3DOFs (X Y and theta) and only 1DDOF (angular velocity will affect both X and Y velocities). Now, block the front wheel so that it doesn't steer. You're left with only 1DOF (X) and only 1 DDOF (velocity in X). – Chi Sep 11 '17 at 0:17
• BTW, if you want to get more in depth info about this topic, I'd recommend the book "Intoduction to Autonomous Mobile Robots" by Roland Siegwart. It's a little math heavy for my taste, but nonetheless a good book if you have the time to spare. Chapter 3 is the one you want, it teaches degrees of mobility, steerability, maneuverability, and other important concepts related to mobile robot kinematics – Chi Sep 11 '17 at 0:52

A holonomic constraint applies to the configuration variables, it is represented by an equation is some or all of the configuration variables.

A constraint that applies to the rate of change of the configuration variables, and that cannot be integrated to a constraint in the configuration variables, is therefore non-holonomiw. It is represented by an equation in some or all of the configuration velocities. For example, a car can have an arbitrary configuration (x,y,$$\theta$$) but at any configuration it is limited in the velocity $$(\dot{x}, \dot{y}, \dot{\theta})$$ it can achieve due to the rolling constraints on its wheels. Non-holonomy can be caused by under actuation or by rolling constraints.