Aikido
aikido::planner::kunzretimer::KunzRetimer Class Reference

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

#include <aikido/planner/kunzretimer/KunzRetimer.hpp>

Inheritance diagram for aikido::planner::kunzretimer::KunzRetimer:
aikido::planner::TrajectoryPostProcessor

Public Member Functions

 KunzRetimer (const Eigen::VectorXd &velocityLimits, const Eigen::VectorXd &accelerationLimits, double maxDeviation, double timeStep)
 
std::unique_ptr< aikido::trajectory::Splinepostprocess (const aikido::trajectory::Interpolated &inputTraj, const aikido::common::RNG &rng, const aikido::constraint::TestablePtr &constraint=nullptr) override
 Performs parabolic retiming on an input trajectory. More...
 
std::unique_ptr< aikido::trajectory::Splinepostprocess (const aikido::trajectory::Spline &inputTraj, const aikido::common::RNG &rng, const aikido::constraint::TestablePtr &constraint=nullptr) override
 Performs parabolic retiming on an input spline trajectory. More...
 
const Eigen::VectorXd & getVelocityLimits () const
 Returns the velocity limits of the dimensions. More...
 
const Eigen::VectorXd & getAccelerationLimits () const
 Returns the acceleration limits of the dimensions. More...
 
void setVelocityLimits (const Eigen::VectorXd &velocityLimits)
 Sets the velocity limits of the dimensions. More...
 
void setAccelerationLimits (const Eigen::VectorXd &accelerationLimits)
 Sets the acceleration limits of the dimensions. More...
 
double getTimeStep () const
 Returns the time step in following a path. More...
 
void setTimeStep (double timeStep)
 Sets the time step in following a path. More...
 
double getMaxDeviation () const
 Returns the max deviation of circular blending. More...
 
void setMaxDeviation (double maxDeviation)
 Sets the max deviation of circular blending. More...
 

Private Attributes

Eigen::VectorXd mVelocityLimits
 Set to the value of velocityLimits. More...
 
Eigen::VectorXd mAccelerationLimits
 Set to the value of accelerationLimits. More...
 
double mMaxDeviation
 Set to the value of maxDeviation. More...
 
double mTimeStep
 Set to the value of timeStep. More...
 

Detailed Description

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

Constructor & Destructor Documentation

◆ KunzRetimer()

aikido::planner::kunzretimer::KunzRetimer::KunzRetimer ( const Eigen::VectorXd &  velocityLimits,
const Eigen::VectorXd &  accelerationLimits,
double  maxDeviation,
double  timeStep 
)
Parameters
[in]velocityLimitsMaximum velocity for each dimension.
[in]accelerationLimitsMaximum acceleration for each dimension.
[in]maxDeviationMaximum deviation in circular blending
[in]timeStepTime step in following the path

Member Function Documentation

◆ getAccelerationLimits()

const Eigen::VectorXd& aikido::planner::kunzretimer::KunzRetimer::getAccelerationLimits ( ) const

Returns the acceleration limits of the dimensions.

◆ getMaxDeviation()

double aikido::planner::kunzretimer::KunzRetimer::getMaxDeviation ( ) const

Returns the max deviation of circular blending.

◆ getTimeStep()

double aikido::planner::kunzretimer::KunzRetimer::getTimeStep ( ) const

Returns the time step in following a path.

◆ getVelocityLimits()

const Eigen::VectorXd& aikido::planner::kunzretimer::KunzRetimer::getVelocityLimits ( ) const

Returns the velocity limits of the dimensions.

◆ postprocess() [1/2]

std::unique_ptr<aikido::trajectory::Spline> aikido::planner::kunzretimer::KunzRetimer::postprocess ( const aikido::trajectory::Interpolated inputTraj,
const aikido::common::RNG rng,
const aikido::constraint::TestablePtr constraint = nullptr 
)
overridevirtual

Performs parabolic retiming on an input trajectory.

Parameters
_inputTrajThe untimed trajectory for the arm to process.
_rngRandom number generator.
_constraintMust be satisfied after processing.

Implements aikido::planner::TrajectoryPostProcessor.

◆ postprocess() [2/2]

std::unique_ptr<aikido::trajectory::Spline> aikido::planner::kunzretimer::KunzRetimer::postprocess ( const aikido::trajectory::Spline inputTraj,
const aikido::common::RNG rng,
const aikido::constraint::TestablePtr constraint = nullptr 
)
overridevirtual

Performs parabolic retiming on an input spline trajectory.

Parameters
_inputTrajThe untimed trajectory for the arm to process.
_rngRandom number generator.
_constraintMust be satisfied after processing.

Implements aikido::planner::TrajectoryPostProcessor.

◆ setAccelerationLimits()

void aikido::planner::kunzretimer::KunzRetimer::setAccelerationLimits ( const Eigen::VectorXd &  accelerationLimits)

Sets the acceleration limits of the dimensions.

◆ setMaxDeviation()

void aikido::planner::kunzretimer::KunzRetimer::setMaxDeviation ( double  maxDeviation)

Sets the max deviation of circular blending.

◆ setTimeStep()

void aikido::planner::kunzretimer::KunzRetimer::setTimeStep ( double  timeStep)

Sets the time step in following a path.

◆ setVelocityLimits()

void aikido::planner::kunzretimer::KunzRetimer::setVelocityLimits ( const Eigen::VectorXd &  velocityLimits)

Sets the velocity limits of the dimensions.

Member Data Documentation

◆ mAccelerationLimits

Eigen::VectorXd aikido::planner::kunzretimer::KunzRetimer::mAccelerationLimits
private

Set to the value of accelerationLimits.

◆ mMaxDeviation

double aikido::planner::kunzretimer::KunzRetimer::mMaxDeviation
private

Set to the value of maxDeviation.

◆ mTimeStep

double aikido::planner::kunzretimer::KunzRetimer::mTimeStep
private

Set to the value of timeStep.

◆ mVelocityLimits

Eigen::VectorXd aikido::planner::kunzretimer::KunzRetimer::mVelocityLimits
private

Set to the value of velocityLimits.