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

Programming

Pedro Pathing

Reactive vector-based path following tuned for FTC drivetrains.

1 min readUpdated Aug 2, 2026

Pedro Pathing follows Bezier curves using a vector field: a translational vector pulls the robot to the path, a heading vector controls rotation, a drive vector pushes it along, and a centripetal vector compensates for curvature.

Why teams choose itLink to this section

  • Corrects continuously instead of replanning on error.
  • Holds heading independently of translation, which suits mecanum robots.
  • Tuning is a short ordered checklist rather than a search.

Tuning orderLink to this section

  1. Localizer — verify reported position against a tape measure.
  2. Mass and forward/lateral zero-power acceleration.
  3. Translational PID.
  4. Heading PID.
  5. Drive PID.
  6. Centripetal scaling.
java
PathChain toBackboard = follower.pathBuilder()
    .addPath(new BezierCurve(
        new Point(startPose),
        new Point(24, 12, Point.CARTESIAN),
        new Point(40, 36, Point.CARTESIAN)))
    .setLinearHeadingInterpolation(startPose.getHeading(), Math.toRadians(90))
    .build();

follower.followPath(toBackboard, true);