public class TankPIDVAFollower
extends TrajectoryFollower
Traditional PID controller with feedforward velocity and acceleration components to follow a trajectory. More
specifically, one feedback loop controls the path displacement (that is, x in the robot reference frame), and
another feedback loop to minimize cross track (lateral) error via heading correction (overall, very similar to
class MecanumPIDVAFollower except adjusted for the nonholonomic constraint). Feedforward is applied at the wheel level.
class MecanumPIDVAFollower| Constructor and Description |
|---|
TankPIDVAFollower(TankDrive drive,
PIDCoefficients displacementCoeffs,
PIDCoefficients crossTrackCoeffs,
double kV,
double kA,
double kStatic,
Pose2d admissibleError,
double timeout,
NanoClock clock)
Traditional PID controller with feedforward velocity and acceleration components to follow a trajectory. More
specifically, one feedback loop controls the path displacement (that is, x in the robot reference frame), and
another feedback loop to minimize cross track (lateral) error via heading correction (overall, very similar to
class MecanumPIDVAFollower except adjusted for the nonholonomic constraint). Feedforward is applied at the wheel level. |
TankPIDVAFollower(TankDrive drive,
PIDCoefficients displacementCoeffs,
PIDCoefficients crossTrackCoeffs,
double kV,
double kA,
double kStatic,
Pose2d admissibleError,
double timeout)
Traditional PID controller with feedforward velocity and acceleration components to follow a trajectory. More
specifically, one feedback loop controls the path displacement (that is, x in the robot reference frame), and
another feedback loop to minimize cross track (lateral) error via heading correction (overall, very similar to
class MecanumPIDVAFollower except adjusted for the nonholonomic constraint). Feedforward is applied at the wheel level. |
TankPIDVAFollower(TankDrive drive,
PIDCoefficients displacementCoeffs,
PIDCoefficients crossTrackCoeffs,
double kV,
double kA,
double kStatic,
Pose2d admissibleError)
Traditional PID controller with feedforward velocity and acceleration components to follow a trajectory. More
specifically, one feedback loop controls the path displacement (that is, x in the robot reference frame), and
another feedback loop to minimize cross track (lateral) error via heading correction (overall, very similar to
class MecanumPIDVAFollower except adjusted for the nonholonomic constraint). Feedforward is applied at the wheel level. |
TankPIDVAFollower(TankDrive drive,
PIDCoefficients displacementCoeffs,
PIDCoefficients crossTrackCoeffs,
double kV,
double kA,
double kStatic)
Traditional PID controller with feedforward velocity and acceleration components to follow a trajectory. More
specifically, one feedback loop controls the path displacement (that is, x in the robot reference frame), and
another feedback loop to minimize cross track (lateral) error via heading correction (overall, very similar to
class MecanumPIDVAFollower except adjusted for the nonholonomic constraint). Feedforward is applied at the wheel level. |
| Modifier and Type | Method and Description |
|---|---|
Pose2d |
getLastError()
Robot pose error computed in the last
TrajectoryFollower.update call. |
void |
setLastError(Pose2d p)
Robot pose error computed in the last
TrajectoryFollower.update call. |
void |
update(Pose2d currentPose)
Run a single iteration of the trajectory follower.
|
elapsedTime, followTrajectory, getClock, getLastError, getTrajectory, isFollowing, setLastError, setTrajectory, updatepublic TankPIDVAFollower(TankDrive drive, PIDCoefficients displacementCoeffs, PIDCoefficients crossTrackCoeffs, double kV, double kA, double kStatic, Pose2d admissibleError, double timeout, NanoClock clock)
Traditional PID controller with feedforward velocity and acceleration components to follow a trajectory. More
specifically, one feedback loop controls the path displacement (that is, x in the robot reference frame), and
another feedback loop to minimize cross track (lateral) error via heading correction (overall, very similar to
class MecanumPIDVAFollower except adjusted for the nonholonomic constraint). Feedforward is applied at the wheel level.
drive - tank drive instancedisplacementCoeffs - PID coefficients for the robot axial (x) controllercrossTrackCoeffs - PID coefficients for the robot heading controller based on cross track errorkV - feedforward velocity gainkA - feedforward acceleration gainkStatic - signed, additive feedforward constant (used to overcome static friction)admissibleError - admissible/satisfactory pose error at the end of each movetimeout - max time to wait for the error to be admissibleclock - clockdrive - tank drive instancedisplacementCoeffs - PID coefficients for the robot axial (x) controllercrossTrackCoeffs - PID coefficients for the robot heading controller based on cross track errorkV - feedforward velocity gainkA - feedforward acceleration gainkStatic - signed, additive feedforward constant (used to overcome static friction)admissibleError - admissible/satisfactory pose error at the end of each movetimeout - max time to wait for the error to be admissibleclock - clockclass MecanumPIDVAFollowerpublic TankPIDVAFollower(TankDrive drive, PIDCoefficients displacementCoeffs, PIDCoefficients crossTrackCoeffs, double kV, double kA, double kStatic, Pose2d admissibleError, double timeout)
Traditional PID controller with feedforward velocity and acceleration components to follow a trajectory. More
specifically, one feedback loop controls the path displacement (that is, x in the robot reference frame), and
another feedback loop to minimize cross track (lateral) error via heading correction (overall, very similar to
class MecanumPIDVAFollower except adjusted for the nonholonomic constraint). Feedforward is applied at the wheel level.
drive - tank drive instancedisplacementCoeffs - PID coefficients for the robot axial (x) controllercrossTrackCoeffs - PID coefficients for the robot heading controller based on cross track errorkV - feedforward velocity gainkA - feedforward acceleration gainkStatic - signed, additive feedforward constant (used to overcome static friction)admissibleError - admissible/satisfactory pose error at the end of each movetimeout - max time to wait for the error to be admissibledrive - tank drive instancedisplacementCoeffs - PID coefficients for the robot axial (x) controllercrossTrackCoeffs - PID coefficients for the robot heading controller based on cross track errorkV - feedforward velocity gainkA - feedforward acceleration gainkStatic - signed, additive feedforward constant (used to overcome static friction)admissibleError - admissible/satisfactory pose error at the end of each movetimeout - max time to wait for the error to be admissibleclass MecanumPIDVAFollowerpublic TankPIDVAFollower(TankDrive drive, PIDCoefficients displacementCoeffs, PIDCoefficients crossTrackCoeffs, double kV, double kA, double kStatic, Pose2d admissibleError)
Traditional PID controller with feedforward velocity and acceleration components to follow a trajectory. More
specifically, one feedback loop controls the path displacement (that is, x in the robot reference frame), and
another feedback loop to minimize cross track (lateral) error via heading correction (overall, very similar to
class MecanumPIDVAFollower except adjusted for the nonholonomic constraint). Feedforward is applied at the wheel level.
drive - tank drive instancedisplacementCoeffs - PID coefficients for the robot axial (x) controllercrossTrackCoeffs - PID coefficients for the robot heading controller based on cross track errorkV - feedforward velocity gainkA - feedforward acceleration gainkStatic - signed, additive feedforward constant (used to overcome static friction)admissibleError - admissible/satisfactory pose error at the end of each movedrive - tank drive instancedisplacementCoeffs - PID coefficients for the robot axial (x) controllercrossTrackCoeffs - PID coefficients for the robot heading controller based on cross track errorkV - feedforward velocity gainkA - feedforward acceleration gainkStatic - signed, additive feedforward constant (used to overcome static friction)admissibleError - admissible/satisfactory pose error at the end of each moveclass MecanumPIDVAFollowerpublic TankPIDVAFollower(TankDrive drive, PIDCoefficients displacementCoeffs, PIDCoefficients crossTrackCoeffs, double kV, double kA, double kStatic)
Traditional PID controller with feedforward velocity and acceleration components to follow a trajectory. More
specifically, one feedback loop controls the path displacement (that is, x in the robot reference frame), and
another feedback loop to minimize cross track (lateral) error via heading correction (overall, very similar to
class MecanumPIDVAFollower except adjusted for the nonholonomic constraint). Feedforward is applied at the wheel level.
drive - tank drive instancedisplacementCoeffs - PID coefficients for the robot axial (x) controllercrossTrackCoeffs - PID coefficients for the robot heading controller based on cross track errorkV - feedforward velocity gainkA - feedforward acceleration gainkStatic - signed, additive feedforward constant (used to overcome static friction)drive - tank drive instancedisplacementCoeffs - PID coefficients for the robot axial (x) controllercrossTrackCoeffs - PID coefficients for the robot heading controller based on cross track errorkV - feedforward velocity gainkA - feedforward acceleration gainkStatic - signed, additive feedforward constant (used to overcome static friction)class MecanumPIDVAFollowerpublic Pose2d getLastError()
Robot pose error computed in the last TrajectoryFollower.update call.
TrajectoryFollower.updatepublic void setLastError(Pose2d p)
Robot pose error computed in the last TrajectoryFollower.update call.
TrajectoryFollower.updatepublic void update(Pose2d currentPose)
Run a single iteration of the trajectory follower.
currentPose - current robot pose