RIT VEXU Core API
Loading...
Searching...
No Matches
max_velocity_constraint.h
1#pragma once
2
3#include "core/math/trajectory/constraints/trajectory_constraint.h"
4#include "core/math/units.h"
5
6using namespace units::literals;
7
11class MaxVelocityConstraint : public TrajectoryConstraint {
12 public:
17 explicit MaxVelocityConstraint(units::Velocity max_velocity)
18 : max_velocity_(units::abs(max_velocity)) {}
19
27 units::Velocity max_velocity(const Pose2d& pose, units::Curvature curvature,
28 units::Velocity velocity) const override {
29 return max_velocity_;
30 }
31
39 MinMax min_max_acceleration(const Pose2d& pose, units::Curvature curvature,
40 units::Velocity speed) const override {
41 return {};
42 }
43
48 std::unique_ptr<TrajectoryConstraint> clone() const override {
49 return std::unique_ptr<TrajectoryConstraint>(new MaxVelocityConstraint(*this));
50 }
51
52 private:
53 units::Velocity max_velocity_;
54};
std::unique_ptr< TrajectoryConstraint > clone() const override
Creates an independent copy of this constraint.
Definition max_velocity_constraint.h:48
MinMax min_max_acceleration(const Pose2d &pose, units::Curvature curvature, units::Velocity speed) const override
Computes minimum and maximum allowed linear accelerations.
Definition max_velocity_constraint.h:39
MaxVelocityConstraint(units::Velocity max_velocity)
Constructs a MaxVelocityConstraint.
Definition max_velocity_constraint.h:17
units::Velocity max_velocity(const Pose2d &pose, units::Curvature curvature, units::Velocity velocity) const override
Computes maximum allowed velocity.
Definition max_velocity_constraint.h:27
Definition pose2d.h:21
Struct representing minimum and maximum allowed linear accelerations.
Definition trajectory_constraint.h:29