Space Academy 3.0 is open — want to become a project contributor?Join in

Programming

Road Runner

Motion-profiled trajectory generation with feedforward control.

1 min readUpdated Jul 25, 2026

Road Runner generates time-parameterised trajectories that respect velocity and acceleration constraints, then follows them with feedforward plus a corrective controller. It is precise and predictable when characterised properly.

Feedforward characterisationLink to this section

kV, kA and kStatic map a desired velocity to motor power. Run the manual feedforward tuner and adjust until the graphed target and measured velocity overlap.

ConstantMeaningSymptom if low
kVPower per unit velocityRobot lags behind the profile
kAPower per unit accelerationSlow to start, overshoots stops
kStaticPower to overcome frictionRobot stalls at low speed
java
Action toStack = drive.actionBuilder(startPose)
    .splineTo(new Vector2d(-48, -36), Math.PI)
    .waitSeconds(0.3)
    .lineToX(-56)
    .build();

Actions.runBlocking(toStack);