public class MotionProfileGenerator
Motion profile generator with arbitrary start and end motion states and either dynamic constraints or jerk limiting.
Modifier and Type | Field and Description |
---|---|
static MotionProfileGenerator |
INSTANCE
Motion profile generator with arbitrary start and end motion states and either dynamic constraints or jerk limiting.
|
Modifier and Type | Method and Description |
---|---|
static MotionProfile |
generateMotionProfile(MotionState start,
MotionState goal,
MotionConstraints constraints,
double resolution)
Generates a motion profile with dynamic maximum velocity and acceleration. Uses the algorithm described in
section 3.2 of Sprunk2008.pdf. Warning:
Profiles may be generated incorrectly if the endpoint velocity/acceleration values preclude the obedience of the
motion constraints. To protect against this, verify the continuity of the generated profile or keep the start and
goal velocities at 0.
|
static MotionProfile |
generateMotionProfile(MotionState start,
MotionState goal,
MotionConstraints constraints)
Generates a motion profile with dynamic maximum velocity and acceleration. Uses the algorithm described in
section 3.2 of Sprunk2008.pdf. Warning:
Profiles may be generated incorrectly if the endpoint velocity/acceleration values preclude the obedience of the
motion constraints. To protect against this, verify the continuity of the generated profile or keep the start and
goal velocities at 0.
|
static MotionProfile |
generateSimpleMotionProfile(MotionState start,
MotionState goal,
double maxVel,
double maxAccel,
double maxJerk,
boolean overshoot)
Generates a simple motion profile with constant
maxVel , maxAccel , and maxJerk . If maxJerk is zero, an
acceleration-limited profile will be generated instead of a jerk-limited one. If constraints can't be obeyed,
there are two possible fallbacks: If overshoot is true, then two profiles will be concatenated (the first one
overshoots the goal and the second one reverses back to reach the goal). Otherwise, the highest order constraint
(e.g., max jerk for jerk-limited profiles) is repeatedly violated until the goal is achieved. |
static MotionProfile |
generateSimpleMotionProfile(MotionState start,
MotionState goal,
double maxVel,
double maxAccel,
double maxJerk)
Generates a simple motion profile with constant
maxVel , maxAccel , and maxJerk . If maxJerk is zero, an
acceleration-limited profile will be generated instead of a jerk-limited one. If constraints can't be obeyed,
there are two possible fallbacks: If overshoot is true, then two profiles will be concatenated (the first one
overshoots the goal and the second one reverses back to reach the goal). Otherwise, the highest order constraint
(e.g., max jerk for jerk-limited profiles) is repeatedly violated until the goal is achieved. |
static MotionProfile |
generateSimpleMotionProfile(MotionState start,
MotionState goal,
double maxVel,
double maxAccel)
Generates a simple motion profile with constant
maxVel , maxAccel , and maxJerk . If maxJerk is zero, an
acceleration-limited profile will be generated instead of a jerk-limited one. If constraints can't be obeyed,
there are two possible fallbacks: If overshoot is true, then two profiles will be concatenated (the first one
overshoots the goal and the second one reverses back to reach the goal). Otherwise, the highest order constraint
(e.g., max jerk for jerk-limited profiles) is repeatedly violated until the goal is achieved. |
public static MotionProfileGenerator INSTANCE
Motion profile generator with arbitrary start and end motion states and either dynamic constraints or jerk limiting.
@JvmStatic @JvmOverloads @NotNull public static MotionProfile generateSimpleMotionProfile(@NotNull MotionState start, @NotNull MotionState goal, double maxVel, double maxAccel, double maxJerk, boolean overshoot)
Generates a simple motion profile with constant maxVel
, maxAccel
, and maxJerk
. If maxJerk
is zero, an
acceleration-limited profile will be generated instead of a jerk-limited one. If constraints can't be obeyed,
there are two possible fallbacks: If overshoot
is true, then two profiles will be concatenated (the first one
overshoots the goal and the second one reverses back to reach the goal). Otherwise, the highest order constraint
(e.g., max jerk for jerk-limited profiles) is repeatedly violated until the goal is achieved.
@JvmStatic @JvmOverloads @NotNull public static MotionProfile generateSimpleMotionProfile(@NotNull MotionState start, @NotNull MotionState goal, double maxVel, double maxAccel, double maxJerk)
Generates a simple motion profile with constant maxVel
, maxAccel
, and maxJerk
. If maxJerk
is zero, an
acceleration-limited profile will be generated instead of a jerk-limited one. If constraints can't be obeyed,
there are two possible fallbacks: If overshoot
is true, then two profiles will be concatenated (the first one
overshoots the goal and the second one reverses back to reach the goal). Otherwise, the highest order constraint
(e.g., max jerk for jerk-limited profiles) is repeatedly violated until the goal is achieved.
@JvmStatic @JvmOverloads @NotNull public static MotionProfile generateSimpleMotionProfile(@NotNull MotionState start, @NotNull MotionState goal, double maxVel, double maxAccel)
Generates a simple motion profile with constant maxVel
, maxAccel
, and maxJerk
. If maxJerk
is zero, an
acceleration-limited profile will be generated instead of a jerk-limited one. If constraints can't be obeyed,
there are two possible fallbacks: If overshoot
is true, then two profiles will be concatenated (the first one
overshoots the goal and the second one reverses back to reach the goal). Otherwise, the highest order constraint
(e.g., max jerk for jerk-limited profiles) is repeatedly violated until the goal is achieved.
@JvmStatic @JvmOverloads @NotNull public static MotionProfile generateMotionProfile(@NotNull MotionState start, @NotNull MotionState goal, @NotNull MotionConstraints constraints, double resolution)
Generates a motion profile with dynamic maximum velocity and acceleration. Uses the algorithm described in section 3.2 of Sprunk2008.pdf. Warning: Profiles may be generated incorrectly if the endpoint velocity/acceleration values preclude the obedience of the motion constraints. To protect against this, verify the continuity of the generated profile or keep the start and goal velocities at 0.
start
- start motion stategoal
- goal motion stateconstraints
- motion constraintsresolution
- separation between constraint samples@JvmStatic @JvmOverloads @NotNull public static MotionProfile generateMotionProfile(@NotNull MotionState start, @NotNull MotionState goal, @NotNull MotionConstraints constraints)
Generates a motion profile with dynamic maximum velocity and acceleration. Uses the algorithm described in section 3.2 of Sprunk2008.pdf. Warning: Profiles may be generated incorrectly if the endpoint velocity/acceleration values preclude the obedience of the motion constraints. To protect against this, verify the continuity of the generated profile or keep the start and goal velocities at 0.
start
- start motion stategoal
- goal motion stateconstraints
- motion constraints