A setpoint command moves a PID subsystem to the given setpoint. It finishes when the PID subsystem is within the given tolerance of the setpoint.
Commands can require a subsystem using the requires() method of commands. When a command requires a subsystem, it claims exclusive control over that subsystem and will interrupt any other command that requires the same subsystem. This only works if all your commands properly require the subsystems that they use.
Parameters are variables that are passed into a command to be used later. By adding parameters to your command, the parameters are defined in your command class as a variable of the same type. The arguments passed in by the parameters can then be used by methods inside of the command.