Aikido
aikido::planner::kunzretimer Namespace Reference

Classes

class  KunzRetimer
 Class for performing time-optimal trajectory retiming following subject to velocity and acceleration limits. More...
 

Functions

std::unique_ptr< aikido::trajectory::SplinecomputeKunzTiming (const aikido::trajectory::Interpolated &inputTrajectory, const Eigen::VectorXd &maxVelocity, const Eigen::VectorXd &maxAcceleration, double maxDeviation=DEFAULT_MAX_DEVIATION, double timeStep=DEFAULT_TIME_STEP)
 Computes the time-optimal timing of a trajectory consisting of a sequence Geodesic interpolations between states under velocity and acceleration bounds. More...
 

Variables

constexpr double DEFAULT_MAX_DEVIATION = 1e-2
 
constexpr double DEFAULT_TIME_STEP = 0.1
 

Function Documentation

◆ computeKunzTiming()

std::unique_ptr<aikido::trajectory::Spline> aikido::planner::kunzretimer::computeKunzTiming ( const aikido::trajectory::Interpolated inputTrajectory,
const Eigen::VectorXd &  maxVelocity,
const Eigen::VectorXd &  maxAcceleration,
double  maxDeviation = DEFAULT_MAX_DEVIATION,
double  timeStep = DEFAULT_TIME_STEP 
)

Computes the time-optimal timing of a trajectory consisting of a sequence Geodesic interpolations between states under velocity and acceleration bounds.

The output is a parabolic spline, encoded in cubic polynomials. It firstly preprocesses a non-differentiable path to a differentiable one by adding circular blends; and then exactly follows the preprocessed path.

The output trajectory consists of a sequence of trapezoidal velocity profiles that implement bang-bang control. This function curently only supports RealVector, SO2, and compound state spaces of those types. Additionally, this function requires that inputTrajectory to be interpolated using a GeodesicInterpolator.

Parameters
[in]inputTrajectoryInput piecewise Geodesic trajectory
[in]maxVelocityMaximum velocity for each dimension
[in]maxAccelerationMaximum acceleration for each dimension
[in]maxDeviationMaximum deviation from a waypoint in doing circular blending around the waypoint
[in]timeStepTime step in following the path
Returns
Time optimal trajectory that satisfies velocity and acceleration constraints

Variable Documentation

◆ DEFAULT_MAX_DEVIATION

constexpr double aikido::planner::kunzretimer::DEFAULT_MAX_DEVIATION = 1e-2
constexpr

◆ DEFAULT_TIME_STEP

constexpr double aikido::planner::kunzretimer::DEFAULT_TIME_STEP = 0.1
constexpr