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, update
public 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 MecanumPIDVAFollower
public 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 MecanumPIDVAFollower
public 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 MecanumPIDVAFollower
public 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 MecanumPIDVAFollower
public Pose2d getLastError()
Robot pose error computed in the last TrajectoryFollower.update
call.
TrajectoryFollower.update
public void setLastError(Pose2d p)
Robot pose error computed in the last TrajectoryFollower.update
call.
TrajectoryFollower.update
public void update(Pose2d currentPose)
Run a single iteration of the trajectory follower.
currentPose
- current robot pose