Where to Go Next#
Once you're comfortable with Lessons 0–16, these are the topics most teams tackle next. Lessons 17–21 (Going Further) cover the first five. They're listed roughly in the order teams usually learn them, with the best place to start for each.
Odometry and pose estimation#
Odometry tracks where the robot is on the field by combining wheel encoders and the gyro. It's the foundation for path following and auto-aiming.
- Start: Lesson 17 and Lab 11, then WPILib's Kinematics and Odometry
- Next level: pose estimation, which corrects odometry drift with camera measurements of AprilTags. See State-Space and Pose Estimators.
Swerve drive#
Most competitive teams now drive swerve: each wheel steers and drives independently, so the robot can move in any direction while turning.
- Start: Lesson 21
- Then: the swerve kinematics and odometry pages in the WPILib kinematics section above
- Then: your swerve module vendor's docs, and their example code
- Many teams start from a generated template, such as CTRE's swerve project generator in Phoenix Tuner, rather than writing swerve from scratch
Everything from Lessons 10–14 still applies: a swerve module is a drive motor with velocity control and a steering motor with position control.
Vision#
Cameras let the robot see AprilTags (to know where it is) and game pieces (to aim or drive to them).
Path following#
Instead of "drive 2 meters, turn 90°," draw a smooth path on a field diagram and let the robot follow it.
- Start: Lesson 19
- PathPlanner: the most widely used tool, with a path editor, auto builder, and on-the-fly pathfinding
- Choreo: generates time-optimal paths
Characterization#
- System Identification (SysId), covered in Lesson 13.1
- ReCalc: estimate gear ratios, speeds, and feedforward gains before the mechanism is built
Logging and replay#
- Start: Lesson 20
- AdvantageKit: logs every input so you can replay a match and re-run your code against it
- AdvantageScope: graphs, 3D field views, and log analysis
Vendor libraries#
Your team's motors run through vendor libraries. Read the docs for whichever you use:
- CTRE Phoenix 6 (TalonFX, Kraken, CANcoder, Pigeon 2)
- REVLib (SPARK MAX, SPARK Flex, NEO)
Learn from other teams
Many top teams publish their robot code on GitHub, and some write up their software design each season. Reading a championship robot's code after finishing this course is one of the best ways to level up. Pick one mechanism and figure out how they did it.