WPILibC++  2020.3.2
TrajectoryConstraint.h
1 /*----------------------------------------------------------------------------*/
2 /* Copyright (c) 2019 FIRST. All Rights Reserved. */
3 /* Open Source Software - may be modified and shared by FRC teams. The code */
4 /* must be accompanied by the FIRST BSD license file in the root directory of */
5 /* the project. */
6 /*----------------------------------------------------------------------------*/
7 
8 #pragma once
9 
10 #include <limits>
11 
12 #include <units/units.h>
13 
14 #include "frc/geometry/Pose2d.h"
15 #include "frc/spline/Spline.h"
16 
17 namespace frc {
23  public:
24  TrajectoryConstraint() = default;
25 
27  TrajectoryConstraint& operator=(const TrajectoryConstraint&) = default;
28 
30  TrajectoryConstraint& operator=(TrajectoryConstraint&&) = default;
31 
32  virtual ~TrajectoryConstraint() = default;
33 
37  struct MinMax {
41  units::meters_per_second_squared_t minAcceleration{
42  -std::numeric_limits<double>::max()};
43 
47  units::meters_per_second_squared_t maxAcceleration{
48  std::numeric_limits<double>::max()};
49  };
50 
61  virtual units::meters_per_second_t MaxVelocity(
62  const Pose2d& pose, curvature_t curvature,
63  units::meters_per_second_t velocity) = 0;
64 
75  virtual MinMax MinMaxAcceleration(const Pose2d& pose, curvature_t curvature,
76  units::meters_per_second_t speed) = 0;
77 };
78 } // namespace frc
frc::TrajectoryConstraint::MinMaxAcceleration
virtual MinMax MinMaxAcceleration(const Pose2d &pose, curvature_t curvature, units::meters_per_second_t speed)=0
Returns the minimum and maximum allowable acceleration for the trajectory given pose,...
frc::TrajectoryConstraint::MinMax
Represents a minimum and maximum acceleration.
Definition: TrajectoryConstraint.h:37
frc::TrajectoryConstraint::MinMax::maxAcceleration
units::meters_per_second_squared_t maxAcceleration
The maximum acceleration.
Definition: TrajectoryConstraint.h:47
frc::TrajectoryConstraint
An interface for defining user-defined velocity and acceleration constraints while generating traject...
Definition: TrajectoryConstraint.h:22
frc::TrajectoryConstraint::MinMax::minAcceleration
units::meters_per_second_squared_t minAcceleration
The minimum acceleration.
Definition: TrajectoryConstraint.h:41
frc::Pose2d
Represents a 2d pose containing translational and rotational elements.
Definition: Pose2d.h:23
frc::curvature_t
units::unit_t< units::compound_unit< units::radian, units::inverse< units::meter > >> curvature_t
Define a unit for curvature.
Definition: Trajectory.h:27
frc::TrajectoryConstraint::MaxVelocity
virtual units::meters_per_second_t MaxVelocity(const Pose2d &pose, curvature_t curvature, units::meters_per_second_t velocity)=0
Returns the max velocity given the current pose and curvature.
frc
A class that enforces constraints on the differential drive kinematics.
Definition: SPIAccelerometerSim.h:16