RIT VEXU Core API
Toggle main menu visibility
Loading...
Searching...
No Matches
centripetal_acceleration_constraint.h
1
#pragma once
2
3
#include <memory>
4
5
#include "core/math/trajectory/constraints/trajectory_constraint.h"
6
#include "core/math/units.h"
7
8
using namespace
units::literals;
9
14
class
CentripetalAccelerationConstraint
:
public
TrajectoryConstraint {
15
public
:
20
explicit
CentripetalAccelerationConstraint
(units::Acceleration max_centripetal_acceleration)
21
: max_centripetal_acceleration_(max_centripetal_acceleration) {}
22
31
units::Velocity
max_velocity
(
const
Pose2d
& pose, units::Curvature curvature,
32
units::Velocity velocity)
const override
{
33
if
(units::abs(curvature) < 1e-9_radpm) {
34
return
units::Velocity(std::numeric_limits<double>::max());
35
}
36
return
sqrt(max_centripetal_acceleration_ / units::abs(curvature / 1_rad));
37
}
38
46
MinMax
min_max_acceleration
(
const
Pose2d
& pose, units::Curvature curvature,
47
units::Velocity speed)
const override
{
48
return
{};
49
}
50
55
std::unique_ptr<TrajectoryConstraint>
clone
()
const override
{
56
return
std::unique_ptr<TrajectoryConstraint>(
new
CentripetalAccelerationConstraint
(*
this
));
57
}
58
59
private
:
60
units::Acceleration max_centripetal_acceleration_;
61
};
CentripetalAccelerationConstraint::CentripetalAccelerationConstraint
CentripetalAccelerationConstraint(units::Acceleration max_centripetal_acceleration)
Constructs a CentripetalAccelerationConstraint.
Definition
centripetal_acceleration_constraint.h:20
CentripetalAccelerationConstraint::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
centripetal_acceleration_constraint.h:46
CentripetalAccelerationConstraint::max_velocity
units::Velocity max_velocity(const Pose2d &pose, units::Curvature curvature, units::Velocity velocity) const override
Computes maximum allowed velocity based on path curvature and centripetal acceleration limits.
Definition
centripetal_acceleration_constraint.h:31
CentripetalAccelerationConstraint::clone
std::unique_ptr< TrajectoryConstraint > clone() const override
Creates an independent copy of this constraint.
Definition
centripetal_acceleration_constraint.h:55
Pose2d
Definition
pose2d.h:21
TrajectoryConstraint::MinMax
Struct representing minimum and maximum allowed linear accelerations.
Definition
trajectory_constraint.h:29
include
core
math
trajectory
constraints
centripetal_acceleration_constraint.h
Generated by
1.18.0