RIT VEXU Core API
Toggle main menu visibility
Loading...
Searching...
No Matches
trajectory_constraint.h
1
#pragma once
2
3
#include <limits>
4
#include <memory>
5
6
#include "core/math/geometry/pose2d.h"
7
#include "core/math/units.h"
8
9
using namespace
units::literals;
10
14
class
TrajectoryConstraint {
15
public
:
16
TrajectoryConstraint() =
default
;
17
18
TrajectoryConstraint(
const
TrajectoryConstraint&) =
default
;
19
TrajectoryConstraint& operator=(
const
TrajectoryConstraint&) =
default
;
20
21
TrajectoryConstraint(TrajectoryConstraint&&) =
default
;
22
TrajectoryConstraint& operator=(TrajectoryConstraint&&) =
default
;
23
24
virtual
~TrajectoryConstraint() =
default
;
25
29
struct
MinMax
{
35
MinMax
(units::Acceleration
min_acceleration
, units::Acceleration
max_acceleration
)
36
:
min_acceleration
(
min_acceleration
),
max_acceleration
(
max_acceleration
) {}
37
39
MinMax
()
40
:
min_acceleration
(-std::numeric_limits<double>::max()),
41
max_acceleration
(std::numeric_limits<double>::max()) {}
42
43
units::Acceleration
min_acceleration
{
44
-std::numeric_limits<double>::max()};
45
units::Acceleration
max_acceleration
{
46
std::numeric_limits<double>::max()};
47
};
48
56
virtual
units::Velocity
max_velocity
(
const
Pose2d
& pose, units::Curvature curvature,
57
units::Velocity velocity)
const
= 0;
58
67
virtual
MinMax
min_max_acceleration
(
const
Pose2d
& pose, units::Curvature curvature,
68
units::Velocity speed)
const
= 0;
69
74
virtual
std::unique_ptr<TrajectoryConstraint>
clone
()
const
= 0;
75
};
Pose2d
Definition
pose2d.h:21
TrajectoryConstraint::clone
virtual std::unique_ptr< TrajectoryConstraint > clone() const =0
Creates an independent copy of this constraint.
TrajectoryConstraint::min_max_acceleration
virtual MinMax min_max_acceleration(const Pose2d &pose, units::Curvature curvature, units::Velocity speed) const =0
Computes minimum and maximum allowed linear accelerations at a given pose, curvature,...
TrajectoryConstraint::max_velocity
virtual units::Velocity max_velocity(const Pose2d &pose, units::Curvature curvature, units::Velocity velocity) const =0
Computes maximum allowed velocity at a given pose and path curvature.
TrajectoryConstraint::MinMax
Struct representing minimum and maximum allowed linear accelerations.
Definition
trajectory_constraint.h:29
TrajectoryConstraint::MinMax::max_acceleration
units::Acceleration max_acceleration
Upper acceleration limit.
Definition
trajectory_constraint.h:45
TrajectoryConstraint::MinMax::MinMax
MinMax()
Default constructor setting unbounded limits [-Inf, +Inf].
Definition
trajectory_constraint.h:39
TrajectoryConstraint::MinMax::MinMax
MinMax(units::Acceleration min_acceleration, units::Acceleration max_acceleration)
Constructs MinMax with explicit minimum and maximum acceleration bounds.
Definition
trajectory_constraint.h:35
TrajectoryConstraint::MinMax::min_acceleration
units::Acceleration min_acceleration
Lower acceleration limit.
Definition
trajectory_constraint.h:43
include
core
math
trajectory
constraints
trajectory_constraint.h
Generated by
1.18.0