Drive Systems

Mecanum Drive Simulator

Press W A S D to strafe and translate, Q E to rotate. Watch the wheel power values update in real time.

Robot top view
FL 0.00
FR 0.00
BL 0.00
BR 0.00

Live kinematics

fl (y + x + rx) / denom 0.00
fr (y − x − rx) / denom 0.00
bl (y − x + rx) / denom 0.00
br (y + x − rx) / denom 0.00

Input state

y0.00
x0.00
rx0.00
Q W E
A S D

Acceleration smoothing

Smooth Instant
18%

Virtual joystick

How it Works

The kinematics

Each mecanum wheel has rollers at 45°, so forces decompose into X and Y components. The equations combine your translational inputs (x, y) and rotation (rx) into per-wheel powers that sum correctly.

Field-centric mode

In robot-centric mode, W always drives the robot forward. In field-centric, the IMU heading rotates the input vector so W always drives away from the driver — the robot body rotates to show its real heading.

Power normalization

The denominator is max(|y| + |x| + |rx|, 1). When the raw sum exceeds 1, all four wheels are scaled proportionally so the fastest wheel always runs at full power.

Strafing diagonally

Press W + D simultaneously. Two wheels drive forward, two receive zero power — the robot slides diagonally. This is unique to mecanum and impossible with standard tank drive.

Ready to implement this on your robot?

Our full mecanum drive guide covers the math, Java implementation, and tips for calibrating field-centric mode with a BNO055 IMU.

View Mecanum Guide →