Package edu.wpi.first.math.trajectory
Class TrajectoryGenerator
java.lang.Object
edu.wpi.first.math.trajectory.TrajectoryGenerator
public final class TrajectoryGenerator extends Object
Helper class used to generate trajectories with various constraints.
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
TrajectoryGenerator.ControlVectorList
Control vector list type that works around type erasure signatures. -
Method Summary
Modifier and Type Method Description static Trajectory
generateTrajectory(Pose2d start, List<Translation2d> interiorWaypoints, Pose2d end, TrajectoryConfig config)
Generates a trajectory from the given waypoints and config.static Trajectory
generateTrajectory(Spline.ControlVector initial, List<Translation2d> interiorWaypoints, Spline.ControlVector end, TrajectoryConfig config)
Generates a trajectory from the given control vectors and config.static Trajectory
generateTrajectory(TrajectoryGenerator.ControlVectorList controlVectors, TrajectoryConfig config)
Generates a trajectory from the given quintic control vectors and config.static Trajectory
generateTrajectory(List<Pose2d> waypoints, TrajectoryConfig config)
Generates a trajectory from the given waypoints and config.static void
setErrorHandler(BiConsumer<String,StackTraceElement[]> func)
Set error reporting function.static List<PoseWithCurvature>
splinePointsFromSplines(Spline[] splines)
Generate spline points from a vector of splines by parameterizing the splines.
-
Method Details
-
setErrorHandler
Set error reporting function. By default, DriverStation.reportError() is used.- Parameters:
func
- Error reporting function, arguments are error and stackTrace.
-
generateTrajectory
public static Trajectory generateTrajectory(Spline.ControlVector initial, List<Translation2d> interiorWaypoints, Spline.ControlVector end, TrajectoryConfig config)Generates a trajectory from the given control vectors and config. This method uses clamped cubic splines -- a method in which the exterior control vectors and interior waypoints are provided. The headings are automatically determined at the interior points to ensure continuous curvature.- Parameters:
initial
- The initial control vector.interiorWaypoints
- The interior waypoints.end
- The ending control vector.config
- The configuration for the trajectory.- Returns:
- The generated trajectory.
-
generateTrajectory
public static Trajectory generateTrajectory(Pose2d start, List<Translation2d> interiorWaypoints, Pose2d end, TrajectoryConfig config)Generates a trajectory from the given waypoints and config. This method uses clamped cubic splines -- a method in which the initial pose, final pose, and interior waypoints are provided. The headings are automatically determined at the interior points to ensure continuous curvature.- Parameters:
start
- The starting pose.interiorWaypoints
- The interior waypoints.end
- The ending pose.config
- The configuration for the trajectory.- Returns:
- The generated trajectory.
-
generateTrajectory
public static Trajectory generateTrajectory(TrajectoryGenerator.ControlVectorList controlVectors, TrajectoryConfig config)Generates a trajectory from the given quintic control vectors and config. This method uses quintic hermite splines -- therefore, all points must be represented by control vectors. Continuous curvature is guaranteed in this method.- Parameters:
controlVectors
- List of quintic control vectors.config
- The configuration for the trajectory.- Returns:
- The generated trajectory.
-
generateTrajectory
Generates a trajectory from the given waypoints and config. This method uses quintic hermite splines -- therefore, all points must be represented by Pose2d objects. Continuous curvature is guaranteed in this method.- Parameters:
waypoints
- List of waypoints..config
- The configuration for the trajectory.- Returns:
- The generated trajectory.
-
splinePointsFromSplines
Generate spline points from a vector of splines by parameterizing the splines.- Parameters:
splines
- The splines to parameterize.- Returns:
- The spline points for use in time parameterization of a trajectory.
- Throws:
SplineParameterizer.MalformedSplineException
- When the spline is malformed (e.g. has close adjacent points with approximately opposing headings)
-