Brick
Toggle main menu visibility
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
6
using namespace
units::literals
;
7
8
/**
9
* @brief Trajectory constraint that enforces a strict upper limit on velocity.
10
*/
11
class
MaxVelocityConstraint
:
public
TrajectoryConstraint {
12
public
:
13
/**
14
* @brief Constructs a MaxVelocityConstraint.
15
* @param max_velocity Maximum allowed linear velocity.
16
*/
17
explicit
MaxVelocityConstraint
(units::Velocity
max_velocity
)
18
: max_velocity_(
units
::abs(
max_velocity
)) {}
19
20
/**
21
* @brief Computes maximum allowed velocity.
22
* @param pose 2D position and orientation.
23
* @param curvature Path curvature in rad/meter.
24
* @param velocity Candidate linear velocity.
25
* @return Constrained units::Velocity limit.
26
*/
27
units::Velocity
max_velocity
(
28
const
Pose2d
& pose, units::Curvature curvature, units::Velocity velocity
29
)
const override
{
30
return
max_velocity_;
31
}
32
33
/**
34
* @brief Computes minimum and maximum allowed linear accelerations.
35
* @param pose 2D position and orientation.
36
* @param curvature Path curvature in rad/meter.
37
* @param speed Current scalar speed.
38
* @return MinMax acceleration bounds struct.
39
*/
40
MinMax
min_max_acceleration
(
41
const
Pose2d
& pose, units::Curvature curvature, units::Velocity speed
42
)
const override
{
43
return
{};
44
}
45
46
/**
47
* @brief Creates an independent copy of this constraint.
48
* @return Unique pointer to cloned MaxVelocityConstraint instance.
49
*/
50
std::unique_ptr<TrajectoryConstraint>
clone
()
const override
{
51
return
std::unique_ptr<TrajectoryConstraint>(
new
MaxVelocityConstraint
(*
this
));
52
}
53
54
private
:
55
units::Velocity max_velocity_;
///< Maximum allowed linear velocity
56
};
MaxVelocityConstraint::clone
std::unique_ptr< TrajectoryConstraint > clone() const override
Creates an independent copy of this constraint.
Definition
max_velocity_constraint.h:50
MaxVelocityConstraint::min_max_acceleration
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:40
MaxVelocityConstraint::MaxVelocityConstraint
MaxVelocityConstraint(units::Velocity max_velocity)
Constructs a MaxVelocityConstraint.
Definition
max_velocity_constraint.h:17
MaxVelocityConstraint::max_velocity
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
Pose2d
Definition
pose2d.h:21
units::literals
Definition
units.h:691
units
Definition
units.h:12
TrajectoryConstraint::MinMax
Struct representing minimum and maximum allowed linear accelerations.
Definition
trajectory_constraint.h:29
core
math
trajectory
constraints
max_velocity_constraint.h
Generated by
1.18.0