In a very high-level mental model of the world, There’s three main components:
- Calculating where you think you’re at
- Calculating where you want to be at
- Figuring out how to power motors to get you from where you’re at, to where you want to be.
Each can be done in a variety of simple and complex ways. Many of the techniques you mentioned do multiple simultaneously, hence probably part of your confusion.
Where You Are
As there is no sensor that directly measures your X/Y position on the field, #1 is done by taking readings from encoders and gyroscopes, along with some assumptions about the physical dimensions and behavior of the robot, and applies math to derive an estimate of the X/Y position. Buzzwords in this field include “Odometry”, “Pose”, “Twist”, “Kinematics”, “Kalman FIlter”, and many others.
Where You Want to Be
#2 involves writing code that can, at any given time, tell you where you want the robot to be at. Often this involves inputting a series of timestamped X, Y, and angle samples. In-between values are usually calculated by interpolation. Additional constraints on the maximum speed and acceleration of your drive-train may also be used. Calculus is used to determine the velocities and accelerations experienced by different parts of the robot throughout the maneuver. “Pathplanning” is the most common buzzword in this area.
Gettin’ There
#3 is also very math-heavy. Basically, you have to design some logic that takes the number from #2, and calculates how to power the motors to achieve the position (using #1 as additional input). “Ramaste”, “PID”, “Control Theory” are some of the buzzwords here.
The Honest Truth
With very few exception, not many FRC teams dig into much depth here. You don’t need to understand things fully to get to the end result.
On our team, we shortcut by not bothering calculating X/Y position from #1. Instead, we modify #2 to produce velocity commands for each side of the drivetrain. Then, we use PID features in motor controllers to cause each side of the drivetrain to move at that commanded velocity. We cross our fingers that it works “good enough”. Also, we try to design in mechanical alignment points (fancy way to say “drive into the wall”).
For the next level up, and what I hope we can do next year, the WPI libraries this year had a quantum leap forward in supporting the important parts of all of #1, #2, and #3 together internally, and with a tutorial if you’re starting from scratch, start there. Google words you don’t know and ask here if you’re confused. @Oblarg is remarkably responsive usually.