Aikido
ParabolicTimer.hpp
Go to the documentation of this file.
1 #ifndef AIKIDO_PLANNER_PARABOLIC_PARABOLICTIMER_HPP_
2 #define AIKIDO_PLANNER_PARABOLIC_PARABOLICTIMER_HPP_
3 
4 #include <Eigen/Dense>
5 
9 
10 namespace aikido {
11 namespace planner {
12 namespace parabolic {
13 
34 std::unique_ptr<aikido::trajectory::Spline> computeParabolicTiming(
35  const aikido::trajectory::Interpolated& _inputTrajectory,
36  const Eigen::VectorXd& _maxVelocity,
37  const Eigen::VectorXd& _maxAcceleration);
38 
59 std::unique_ptr<aikido::trajectory::Spline> computeParabolicTiming(
60  const aikido::trajectory::Spline& _inputTrajectory,
61  const Eigen::VectorXd& _maxVelocity,
62  const Eigen::VectorXd& _maxAcceleration);
63 
66 {
67 public:
71  const Eigen::VectorXd& _velocityLimits,
72  const Eigen::VectorXd& _accelerationLimits);
73 
76  std::unique_ptr<aikido::trajectory::Spline> postprocess(
77  const aikido::trajectory::Interpolated& _inputTraj,
78  const aikido::common::RNG& _rng,
79  const aikido::constraint::TestablePtr& _constraint = nullptr) override;
80 
83  std::unique_ptr<aikido::trajectory::Spline> postprocess(
84  const aikido::trajectory::Spline& _inputTraj,
85  const aikido::common::RNG& _rng,
86  const aikido::constraint::TestablePtr& _constraint = nullptr) override;
87 
88 private:
90  const Eigen::VectorXd mVelocityLimits;
91 
93  const Eigen::VectorXd mAccelerationLimits;
94 };
95 
96 } // namespace parabolic
97 } // namespace planner
98 } // namespace aikido
99 
100 #endif // ifndef AIKIDO_PLANNER_PARABOLIC_PARABOLICTIMER_HPP_
TrajectoryPostProcessor.hpp
aikido
Format of serialized trajectory in YAML.
Definition: algorithm.hpp:4
aikido::planner::parabolic::ParabolicTimer::mAccelerationLimits
const Eigen::VectorXd mAccelerationLimits
Set to the value of _accelerationLimits.
Definition: ParabolicTimer.hpp:93
aikido::planner::parabolic::ParabolicTimer::ParabolicTimer
ParabolicTimer(const Eigen::VectorXd &_velocityLimits, const Eigen::VectorXd &_accelerationLimits)
Spline.hpp
Interpolated.hpp
aikido::planner::parabolic::ParabolicTimer::mVelocityLimits
const Eigen::VectorXd mVelocityLimits
Set to the value of _velocityLimits.
Definition: ParabolicTimer.hpp:90
aikido::planner::parabolic::ParabolicTimer::postprocess
std::unique_ptr< aikido::trajectory::Spline > postprocess(const aikido::trajectory::Interpolated &_inputTraj, const aikido::common::RNG &_rng, const aikido::constraint::TestablePtr &_constraint=nullptr) override
Performs parabolic retiming on an input trajectory.
aikido::common::RNG
Implementation of the C++11 "random engine" concept that uses virtual function calls to erase the typ...
Definition: RNG.hpp:24
aikido::planner::parabolic::computeParabolicTiming
std::unique_ptr< aikido::trajectory::Spline > computeParabolicTiming(const aikido::trajectory::Interpolated &_inputTrajectory, const Eigen::VectorXd &_maxVelocity, const Eigen::VectorXd &_maxAcceleration)
Computes the time-optimal timing of a trajectory consisting of a sequence Geodesic interpolations bet...
aikido::planner::parabolic::ParabolicTimer
Class for performing parabolic retiming on trajectories.
Definition: ParabolicTimer.hpp:65
aikido::planner::TrajectoryPostProcessor
Definition: TrajectoryPostProcessor.hpp:12
aikido::constraint::TestablePtr
std::shared_ptr< Testable > TestablePtr
Definition: Testable.hpp:13
aikido::trajectory::Interpolated
Trajectory that uses an Interpolator to interpolate between waypoints.
Definition: Interpolated.hpp:14
aikido::trajectory::Spline
Polynomial spline trajectory defined in a StateSpace.
Definition: Spline.hpp:25