class HolonomicPIDVAFollower : TrajectoryFollower
Traditional PID controller with feedforward velocity and acceleration components to follow a trajectory. More specifically, the feedback is applied to the components of the robot's pose (x position, y position, and heading) to determine the velocity correction. The feedforward components are instead applied at the wheel level.
axialCoeffs
- PID coefficients for the robot axial controller (robot X)
lateralCoeffs
- PID coefficients for the robot lateral controller (robot Y)
headingCoeffs
- PID coefficients for the robot heading controller
admissibleError
- admissible/satisfactory pose error at the end of each move
timeout
- max time to wait for the error to be admissible
HolonomicPIDVAFollower(axialCoeffs: PIDCoefficients, lateralCoeffs: PIDCoefficients, headingCoeffs: PIDCoefficients, admissibleError: Pose2d = Pose2d(), timeout: Double = 0.0, clock: NanoClock = NanoClock.system())
Traditional PID controller with feedforward velocity and acceleration components to follow a trajectory. More specifically, the feedback is applied to the components of the robot's pose (x position, y position, and heading) to determine the velocity correction. The feedforward components are instead applied at the wheel level. |
var lastError: Pose2d
Robot pose error computed in the last update call. |
val clock: NanoClock
clock |
|
lateinit var trajectory: Trajectory
Trajectory being followed if isFollowing is true. |
fun internalUpdate(currentPose: Pose2d): DriveSignal |
fun elapsedTime(): Double
Returns the elapsed time since the last followTrajectory call. |
|
open fun followTrajectory(trajectory: Trajectory): Unit
Follow the given trajectory. |
|
fun isFollowing(): Boolean
Returns true if the current trajectory has finished executing. |
|
fun update(currentPose: Pose2d): DriveSignal
Run a single iteration of the trajectory follower. |