Robot Core Documentation
|
Public Member Functions | |
TrapezoidProfile (Constraints constraints) | |
TrapezoidProfile (Constraints constraints, State goal, State initial) | |
TrapezoidProfile (Constraints constraints, State goal) | |
State | calculate (double t) |
State | calculate (double t, State current, State goal) |
double | timeLeftUntil (double target) |
double | totalTime () |
boolean | isFinished (double t) |
A trapezoid-shaped velocity profile.
While this class can be used for a profiled movement from start to finish, the intended usage is to filter a reference's dynamics based on trapezoidal velocity constraints. To compute the reference obeying this constraint, do the following.
Initialization:
TrapezoidProfile.Constraints constraints =
new TrapezoidProfile.Constraints(kMaxV, kMaxA);
TrapezoidProfile.State previousProfiledReference =
new TrapezoidProfile.State(initialReference, 0.0);
TrapezoidProfile profile = new TrapezoidProfile(constraints);
Run on update:
previousProfiledReference =
profile.calculate(timeSincePreviousUpdate, previousProfiledReference, unprofiledReference);
where unprofiledReference
is free to change between calls. Note that when the unprofiled reference is within the constraints, calculate()
returns the unprofiled reference unchanged.
Otherwise, a timer can be started to provide monotonic values for calculate()
and to determine when the profile has completed via isFinished()
.
edu.wpi.first.math.trajectory.TrapezoidProfile.TrapezoidProfile | ( | Constraints | constraints | ) |
Constructs a TrapezoidProfile.
constraints | The constraints on the profile, like maximum velocity. |
edu.wpi.first.math.trajectory.TrapezoidProfile.TrapezoidProfile | ( | Constraints | constraints, |
State | goal, | ||
State | initial ) |
Constructs a TrapezoidProfile.
constraints | The constraints on the profile, like maximum velocity. |
goal | The desired state when the profile is complete. |
initial | The initial state (usually the current state). |
edu.wpi.first.math.trajectory.TrapezoidProfile.TrapezoidProfile | ( | Constraints | constraints, |
State | goal ) |
Constructs a TrapezoidProfile.
constraints | The constraints on the profile, like maximum velocity. |
goal | The desired state when the profile is complete. |
State edu.wpi.first.math.trajectory.TrapezoidProfile.calculate | ( | double | t | ) |
Calculates the position and velocity for the profile at a time t where the current state is at time t = 0.
t | How long to advance from the current state toward the desired state. |
State edu.wpi.first.math.trajectory.TrapezoidProfile.calculate | ( | double | t, |
State | current, | ||
State | goal ) |
Calculates the position and velocity for the profile at a time t where the current state is at time t = 0.
t | How long to advance from the current state toward the desired state. |
current | The current state. |
goal | The desired state when the profile is complete. |
boolean edu.wpi.first.math.trajectory.TrapezoidProfile.isFinished | ( | double | t | ) |
Returns true if the profile has reached the goal.
The profile has reached the goal if the time since the profile started has exceeded the profile's total time.
t | The time since the beginning of the profile. |
double edu.wpi.first.math.trajectory.TrapezoidProfile.timeLeftUntil | ( | double | target | ) |
Returns the time left until a target distance in the profile is reached.
target | The target distance. |
double edu.wpi.first.math.trajectory.TrapezoidProfile.totalTime | ( | ) |
Returns the total time the profile takes to reach the goal.