RIT VEXU Core API
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
12using namespace units::literals;
13
21 public:
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};
Definition pose2d.h:21
Algorithms for time-parameterizing spatial path points into constrained trajectories.
Definition trajectory_parameterizer.h:20
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
Represents a time-parameterized 2D motion trajectory.
Definition trajectory.h:37
Pair representing 2D Pose and scalar path units::Curvature.
Definition trajectory.h:18