3#include <units/velocity.h>
4#include <units/acceleration.h>
5#include <units/angular_velocity.h>
6#include <units/angular_acceleration.h>
7#include <units/voltage.h>
11namespace pathplanner {
25 units::meters_per_second_squared_t maxAccel,
26 units::radians_per_second_t maxAngularVel,
27 units::radians_per_second_squared_t maxAngularAccel,
28 units::volt_t nominalVoltage = 12_V,
bool unlimited =
false) : m_maxVelocity(
29 maxVel), m_maxAcceleration(maxAccel), m_maxAngularVelocity(
30 maxAngularVel), m_maxAngularAcceleration(maxAngularAccel), m_nominalVoltage(
31 nominalVoltage), m_unlimited(unlimited) {
49 units::volt_t nominalVoltage) {
50 double inf = std::numeric_limits<double>::infinity();
52 units::meters_per_second_squared_t { inf },
53 units::radians_per_second_t { inf },
54 units::radians_per_second_squared_t { inf }, nominalVoltage,
73 return m_maxAcceleration;
82 return m_maxAngularVelocity;
91 return m_maxAngularAcceleration;
100 return m_nominalVoltage;
103 constexpr bool isUnlimited()
const {
107 bool operator==(
const PathConstraints &other)
const {
108 return std::abs(m_maxVelocity() - other.m_maxVelocity()) < 1E-9
109 && std::abs(m_maxAcceleration() - other.m_maxAcceleration())
112 m_maxAngularVelocity() - other.m_maxAngularVelocity())
115 m_maxAngularAcceleration()
116 - other.m_maxAngularAcceleration()) < 1E-9
117 && std::abs(m_nominalVoltage() - other.m_nominalVoltage())
118 < 1E-9 && m_unlimited == other.m_unlimited;
122 units::meters_per_second_t m_maxVelocity;
123 units::meters_per_second_squared_t m_maxAcceleration;
124 units::radians_per_second_t m_maxAngularVelocity;
125 units::radians_per_second_squared_t m_maxAngularAcceleration;
126 units::volt_t m_nominalVoltage;
Definition: PathConstraints.h:12
static constexpr PathConstraints unlimitedConstraints(units::volt_t nominalVoltage)
Definition: PathConstraints.h:48
constexpr units::meters_per_second_t getMaxVelocity() const
Definition: PathConstraints.h:63
constexpr units::volt_t getNominalVoltage() const
Definition: PathConstraints.h:99
static PathConstraints fromJson(const wpi::json &json)
Definition: PathConstraints.cpp:6
constexpr PathConstraints(units::meters_per_second_t maxVel, units::meters_per_second_squared_t maxAccel, units::radians_per_second_t maxAngularVel, units::radians_per_second_squared_t maxAngularAccel, units::volt_t nominalVoltage=12_V, bool unlimited=false)
Definition: PathConstraints.h:24
constexpr units::radians_per_second_squared_t getMaxAngularAcceleration() const
Definition: PathConstraints.h:90
constexpr units::radians_per_second_t getMaxAngularVelocity() const
Definition: PathConstraints.h:81
constexpr units::meters_per_second_squared_t getMaxAcceleration() const
Definition: PathConstraints.h:72