# What is the difference between a holonomic and an omnidirectional robot?

I have seen the usage of the term "omnidirectional" in robotics, but I have not found a (precise) definition.

In the chapter Omni-Directional Robots from the book "Embedded Robotics", it is stated:

In contrast, a holonomic or omnidirectional robot is capable of driving in any direction

which seems to indicate that these words are synonyms.

What's an omnidirectional robot? What is the difference between a holonomic and an omnidirectional robot (if any)? What are examples of omnidirectional and holonomic robots (or other objects)?

Holonomic is a precise mathematical term; one definition is velocity constraints can be integrated into the form \begin{align} f(q1,q2,...,t) = 0. \end{align}

Roughly, that means the controllable degrees of freedom at any instant matches the total degrees of freedom for the robot. By this definition, a train is holonomic b/c it has one controllable degree of freedom (speed) and one motion degree of freedom (position along the track). However, most people would likely not consider a train to be omnidirectional.

Note that a car is nonholonomic. At any give instant you have two controllable degrees of freedom (speed and steer angle) but three motion degrees of freedom (x, y, and orientation).