|
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.