Omnidirectional Drive


  • Tank drive: 2 degrees of freedom
  • Omnidirectional drive: 3 degrees of freedom

Advantages and Disadvantages


  • Maneuverability


  • Complex
    • Heavy
    • Less robust
    • Tricky to control
  • (Usually) less pushing force

Strategies Favouring Omnidirectional Drive

  • Primarily offensive robots
    • Not good at pushing others
    • Good at avoiding defense
    • If implemented correctly, easier to align robot to targets (e.g. balls to pick up, goals to score into)
  • Confined spaces on the field
    • Raising the Bar in 2004
    • Analogous to industrial applications

Swerve Drive

  • Independently steered drive modules
  • Simple conceptually
  • Simple wheels
  • Good traction
  • Complex to build
  • Complex to program and control
  • Maximum pushing force
  • Either steered gearboxes or concentric drive

Holonomic Drive

  • Wheels with ‘straight’ rollers (omniwheels)
  • More complex conceptually
  • Fairly complex wheels
  • Fairly simple to build
  • Simple to control
  • Lower traction
  • Less speed and pushing force on when moving diagonally

Mecanum Drive

  • Wheels with angled rollers
    • NOTE: In the diagram, imagine you are viewing the wheels from above, but the top half of the wheels are transparent so you are seeing the pattern of contact between the wheels and the ground
  • Very complex conceptually
  • Very complex wheels
  • Otherwise simple to build
  • Simple to control
  • Less speed and pushing force when moving diagonally


  • Mathematics describing motion
  • Solid grasp of theory makes control much easier
  • Great example of how real university-level theory can be applied to FIRST robots
  • Three step process:
    • Define overall robot motion
      • Usually by can transform other forms into this form quite easily
  • Calculate velocity at each wheel
  • Calculate actual wheel speed (and possibly orientation) from that velocity

Single Wheel

Common to all types of omnidirectional drive

Vector approach

Scalar approach

Entire Base

  • In general, each wheel will have a unique speed and direction
    • Full swerve drive would require at least 8 motors; has been done once (Chief Delphi in 2001)
    • Swerve drive usually done with 2 swerve modules along with casters or holonomic wheels

Swerve Drive Approximations

  • Some drive trains use swerve modules steered together
    • Four modules steered together (crab drive)
    • Front modules steered together, back modules steered together
    • Right modules steered together, left modules steered together
  • Does not allow full freedom of motion
  • Requires fewer steering motors

Swerve Drive

  • Resolve velocity at each wheel into magnitude and angle
  • Be careful with angle quadrant!

Holonomic Drive

  • Resolve velocity into parallel and perpendicular components
  • Magnitude of gives wheel speed

Mecanum Drive

  • NOTE: As before, imagine viewing the wheel with the top half transparent; the diagram shows the pattern of contact between the wheel and the ground
  • Similar to holonomic drive
  • Conceptually: Resolve velocity into components parallel to wheel and parallel to roller
  • Not easy to calculate directly (directions are not perpendicular), so do it in two steps

Resolve to Roller

  • Resolve velocity into components parallel and perpendicular to roller axis
  • Perpendicular component can be discarded
  • is not the same for each wheel!

Resolve to Wheel

  • Use component parallel to roller axis and resolve it into components parallel to wheel and parallel to roller
  • This does not involve simple projections like holonomic drive, so we cannot use dot products
  • However, angle is known, so we can calculate directly:

Mecanum Drive Examples

Using wheel 3 as an example:


Note that all speeds are linear functions of the inputs (i.e. no trigonometry or square roots necessary), so control is very fast.

Hybrid Swerve/Holonomic Drive

Swerve module 1:

Swerve module 2:

Holonomic wheel:

What's Wrong With This Picture?

NOTE: Remember that diagrams show the pattern of wheel contact with the ground

Scaling Issues

  • Speed calculations may result in greater-than-maximum speeds
  • Possible to limit inputs so this never happens, but this overly restricts some directions
  • Better to adjust speeds on the fly

Scaling Algorithm

  • Calculate wheel speeds for each wheel
  • Find maximum wheel speed
  • If this is greater than the maximum possible wheel speed, calculate the scaling factor necessary to reduce it to the maximum possible wheel speed
  • Scale all wheel speeds by this factor

Robots to Check Out (2006)

Team 148: in Curie has mecanum drive with two control modes; tank steering and full 3 degree of freedom steering

Team 16: in Galileo has two swerve modules steered together but driven seperately at the front, and then a third swerve module at the back; drive is either in crab mode or tank mode

Team 71: in Newton has 4 swerve modules steered together but powered seperately, driven in a hybrid crab/tank system

Team 118: in Newton has 4 swerve modules steered and driven together (pure crab steering)

Team 830: in Galileo has a pure holonomic drive system with full 3 degree of freedom motion

References I