Trajectory Sequence Baseline
Road Runner 0.5.6 is the active autonomous base in the regional Decode code. This page shows the safest sequence to implement and tune it.
Step 1
Start From the Correct Files
Main autonomous: drive/Autonomous/AutonomousControl.java
Drive class: RoadRunner/drive/SampleMecanumDrive.java
Localizer: RoadRunner/drive/opmode/TwoWheelTrackingLocalizer.java
Step 2
Build One Route With Temporal Markers
Implement one complete route before adding all four field variants:
trajectoryRedBasket = drive.trajectorySequenceBuilder(startPose_RedBasket)
.lineToLinearHeading(new Pose2d(RB_mainShooting_X, RB_mainShooting_Y, Math.toRadians(90)))
.addTemporalMarker(() -> artifactControl.setAutonomousShooter(...))
.addTemporalMarker(() -> artifactControl.setAutonomousThrowFlags())
.waitSeconds(3.65)
.addTemporalMarker(() -> artifactControl.setAutonomousResetFlags())
.lineTo(new Vector2d(RB_startPickupMiddlePattern_X, RB_startPickupMiddlePattern_Y))
.build();
Step 3
Use Async Follow + Loop Update
Keep motion and mechanisms running in the same loop:
drive.setPoseEstimate(startPose_RedBasket);
drive.followTrajectorySequenceAsync(trajectoryRedBasket);
while (opModeIsActive()) {
drive.update();
artifactControl.update(...);
telemetry.update();
}
Step 4
Tune In Correct Order
Localization accuracy first.
Drive/follower behavior second.
Marker timing and mechanism sequencing third.
Step 5
Scale to Full Match Routes
Add Blue/Red + Audience/Basket variants after one route is stable.
Keep at least one conservative fallback route for match safety.
Log endpoint error and cycle time variance in every practice run.
Common Mistakes
Adding many routes before validating one baseline route.
Tuning marker times while localization is still drifting.
Ignoring battery-voltage effects during validation.
Next
Open Road Runner 1.0 Transition Notes to plan migration without losing reliability.