RIT VEXU Core API
Toggle main menu visibility
Loading...
Searching...
No Matches
trajectory_parameterizer.h
1
#pragma once
2
3
#include <cstdio>
4
#include <functional>
5
#include <memory>
6
#include <vector>
7
8
#include "core/math/trajectory/constraints/trajectory_constraint.h"
9
#include "core/math/trajectory/trajectory.h"
10
#include "core/math/units.h"
11
12
using namespace
units::literals;
13
20
class
TrajectoryParameterizer
{
21
public
:
34
static
Trajectory
time_parameterize_trajectory
(
35
const
std::vector<PoseWithCurvature>& points,
36
const
std::vector<std::unique_ptr<TrajectoryConstraint>>& constraints,
37
units::Velocity start_velocity, units::Velocity end_velocity, units::Velocity max_velocity,
38
units::Acceleration max_acceleration,
bool
reversed,
39
std::function<
void
(
const
char
*)> error_handler = [](
const
char
* message) {
40
std::fprintf(stderr,
"%s\n"
, message);
41
});
42
43
private
:
44
constexpr
static
double
kEpsilon = 1E-6;
45
46
struct
ConstrainedState {
47
PoseWithCurvature
pose = {
Pose2d
{}, 0_radpm};
48
units::Length distance = 0_in;
49
units::Velocity max_velocity = 0_inps;
50
units::Acceleration min_acceleration = 0_inps2;
51
units::Acceleration max_acceleration = 0_inps2;
52
};
53
54
static
bool
enforce_acceleration_limits(
55
bool
reverse,
const
std::vector<std::unique_ptr<TrajectoryConstraint>>& constraints,
56
ConstrainedState* state,
const
std::function<
void
(
const
char
*)>& error_handler);
57
};
Pose2d
Definition
pose2d.h:21
TrajectoryParameterizer
Algorithms for time-parameterizing spatial path points into constrained trajectories.
Definition
trajectory_parameterizer.h:20
TrajectoryParameterizer::time_parameterize_trajectory
static Trajectory time_parameterize_trajectory(const std::vector< PoseWithCurvature > &points, const std::vector< std::unique_ptr< TrajectoryConstraint > > &constraints, units::Velocity start_velocity, units::Velocity end_velocity, units::Velocity max_velocity, units::Acceleration max_acceleration, bool reversed, std::function< void(const char *)> error_handler=[](const char *message) { std::fprintf(stderr, "%s\n", message);})
units::Time-parameterizes a list of discrete path points into a Trajectory under physical constraints...
Definition
trajectory_parameterizer.cpp:7
Trajectory
Represents a time-parameterized 2D motion trajectory.
Definition
trajectory.h:37
PoseWithCurvature
Pair representing 2D Pose and scalar path units::Curvature.
Definition
trajectory.h:18
include
core
math
trajectory
trajectory_parameterizer.h
Generated by
1.18.0