sheen.bot logo

Insights

Why Mecanum Wheels Drift in FTC Autonomous (and How to Fix It Without Dead Wheels)

Sep 24, 2026·Sheen Robotics
Why Mecanum Wheels Drift in FTC Autonomous (and How to Fix It Without Dead Wheels)

Mecanum drift is caused by imperfect vector force cancellation on compliant foam tiles. You can eliminate most autonomous error without odometry pods by locking heading with the Control Hub's internal IMU and profiling acceleration.

Mecanum drivetrains drift during FTC autonomous routines because their movement relies on the precise mathematical cancellation of 45-degree diagonal force vectors. On soft, uneven EVA foam tiles, uneven normal forces and roller slip prevent those vectors from balancing perfectly, creating unwanted rotational yaw that compounds over distance. You do not need expensive unpowered odometry pods (dead wheels) to fix this: you can eliminate the vast majority of autonomous pathing error by closing the loop on heading using the REV Control Hub’s built-in IMU and limiting acceleration to stay within the static friction limits of your rollers.

The Mechanics of Mecanum Slip

A standard traction wheel applies force parallel to the wheel’s rotation. A Mecanum wheel transfers force through passive rollers angled at 45 degrees relative to the wheel plate. When a motor spins a Mecanum wheel forward, the contact patch exerts a diagonal vector: one component pushing the robot forward, and an equal transverse component pushing sideways.

To drive straight forward, the left and right wheels exert equal and opposite transverse forces that cancel each other out, leaving only forward thrust. To strafe purely sideways, opposing diagonal pairs spin against each other, cancelling forward thrust and combining transverse thrust.

This vector cancellation assumes three conditions that never hold true on a competition field:

  • Symmetric normal forces: If your robot’s centre of mass is offset even slightly toward the battery or lift mechanism, the heavier corners experience higher normal force and greater traction. The lighter corners slip, leaving transverse forces uncancelled.
  • Uniform surface traction: Soft interlocking EVA foam tiles deform under weight. Rollers sink into the foam at varying depths, altering the effective contact angle and rolling resistance from millisecond to millisecond.
  • Identical kinetic friction: The passive plastic and rubber rollers on standard commercial Mecanum wheels have small manufacturing variances, axial play, and internal friction differences.

When force vectors fail to cancel perfectly, the immediate result is an uncommanded yaw torque. Once your robot rotates by just two or three degrees off its intended heading, every subsequent motor encoder tick drives the robot along a rotated trajectory, multiplying positional error over time.

The Solution: Active IMU Heading Correction

While motor encoders measure how far your wheel shafts have turned, they cannot measure roller slippage across the floor. However, you do not need full Cartesian position tracking to solve the bulk of your autonomous inaccuracy. If you prevent the robot from rotating off its intended heading, translational encoder errors remain linear and predictable rather than rotational and catastrophic.

Every REV Control Hub contains an internal Inertial Measurement Unit (IMU) capable of reading absolute angular orientation (yaw) with high precision and minimal drift across a 30-second autonomous period.

Implementing the Heading Lock Loop

Instead of sending raw translational powers directly to your drive motors, pipe your heading error through a Proportional-Derivative (PD) control loop that injects corrective rotational power into the Mecanum kinematic equations in real time.

The standard Mecanum kinematic equations for motor powers are:

  • Front Left = Drive + Strafe + Turn
  • Front Right = Drive - Strafe - Turn
  • Back Left = Drive - Strafe + Turn
  • Back Right = Drive + Strafe - Turn

In an open-loop routine, Turn is set to zero during straight drives or pure strafes. In an active heading-locked routine, Turn is dynamically calculated from IMU yaw feedback on every loop iteration:

  1. Read current heading: Fetch the current yaw angle from the IMU.
  2. Calculate heading error: Compute the shortest angular difference between your target heading and your current heading, ensuring you normalize the angle between -180 and +180 degrees (or -π and +π radians) to prevent wrap-around errors.
  3. Calculate correction: Multiply the error by a tuned proportional gain (kP), and add the rate of change of error multiplied by a derivative gain (kD) to dampen oscillations.
  4. Apply and normalize: Substitute this correction value into the Turn variable. If any motor calculation exceeds a power of 1.0 (or -1.0), divide all four motor powers by the maximum absolute value to preserve the intended vector ratios without clipping.

Normalising motor powers is critical. If your robot is driving forward at full power and the controller demands a turn correction, un-normalised clipping will zero out the corrective differential and allow the robot to drift regardless of your software gains.

Taming Kinetic Slip with Slew Rate Limiting

Active heading correction handles rotational drift, but rapid acceleration causes longitudinal and lateral slip where the wheels spin faster than the chassis accelerates. When rollers lose static grip on the foam, motor encoders register distance that was never travelled.

To fix kinetic slip without dead wheels:

  • Limit Acceleration (Slew Rate): Never jump motor target power from 0.0 to 1.0 in a single loop cycle. Ramp power gradually using a simple rate limiter (e.g., capping acceleration to an increase of no more than 0.05 power per 20-millisecond cycle).
  • Decelerate with a Profile: Use trapezoidal or S-curve velocity profiling to slow the robot down before reaching the target encoder count. Braking abruptly causes the robot to skid over the tiles, invalidating your target stop point.
  • Mechanical Floor Contact: Ensure your drivetrain chassis has slight torsional compliance or a rocker suspension on one axle. If a rigid four-wheel chassis encounters an uneven seam between foam tiles, one wheel lifts slightly off the floor, instantly losing traction and inducing slip.

When Are Dead Wheels Actually Necessary?

Teams often jump to three-wheel spring-loaded odometry pods because they believe Mecanum wheels cannot drive a reliable 30-second autonomous path. In reality, a well-tuned heading lock loop combined with encoder-based velocity ramping is sufficient to score high-value autonomous tasks, align reliably with field walls, and park consistently.

Dead-wheel odometry only becomes strictly necessary when your autonomous strategy requires complex, high-speed multi-waypoint spline paths (such as full Road Runner or Pedro Pathing trajectories) where the robot must know its exact (X, Y) coordinate after colliding with game elements or aggressively strafing across the entire field width.

If you are building and refining FTC drivetrains or looking to master autonomous motion profiling with your team, explore our competition engineering guides at Sheen Robotics FTC Resources.

#ftc#robotics#mecanum#programming#control-systems

More Insights