Aikido
|
Class for performing parabolic smoothing on trajectories. More...
#include <aikido/planner/parabolic/ParabolicSmoother.hpp>
Public Member Functions | |
ParabolicSmoother (const Eigen::VectorXd &_velocityLimits, const Eigen::VectorXd &_accelerationLimits, bool _enableShortcut=true, bool _enableBlend=true, double _shortcutTimelimit=DEFAULT_TIMELIMT, double _blendRadius=DEFAULT_BLEND_RADIUS, int _blendIterations=DEFAULT_BLEND_ITERATIONS, double _feasibilityCheckResolution=DEFAULT_CHECK_RESOLUTION, double _feasibilityApproxTolerance=DEFAULT_TOLERANCE) | |
std::unique_ptr< aikido::trajectory::Spline > | postprocess (const aikido::trajectory::Interpolated &_inputTraj, const aikido::common::RNG &_rng, const aikido::constraint::TestablePtr &_collisionTestable) override |
Performs parabolic smoothing on an input trajectory. More... | |
std::unique_ptr< aikido::trajectory::Spline > | postprocess (const aikido::trajectory::Spline &_inputTraj, const aikido::common::RNG &_rng, const aikido::constraint::TestablePtr &_collisionTestable) override |
Performs parabolic smoothing on an input spline trajectory. More... | |
Private Member Functions | |
std::unique_ptr< aikido::trajectory::Spline > | handleShortcutOrBlend (const aikido::trajectory::Spline &_inputTraj, const aikido::common::RNG &_rng, const aikido::constraint::TestablePtr &_collisionTestable) |
Common logic to do shortcutting and/or blending on the input trajectory as dictated by mEnableShortcut and mEnableBlend. More... | |
Private Attributes | |
double | mFeasibilityCheckResolution |
Set to the value of _feasibilityCheckResolution . More... | |
double | mFeasibilityApproxTolerance |
Set to the value of _feasibilityApproxTolerance . More... | |
const Eigen::VectorXd | mVelocityLimits |
Set to the value of _velocityLimits . More... | |
const Eigen::VectorXd | mAccelerationLimits |
Set to the value of _accelerationLimits . More... | |
bool | mEnableShortcut |
Set to the value of _enableShortcut . More... | |
bool | mEnableBlend |
Set to the value of _enableBlend . More... | |
double | mShortcutTimelimit |
Set to the value of _shortcutTimelimit . More... | |
double | mBlendRadius |
Set to the value of _blendRadius . More... | |
int | mBlendIterations |
Set to the value of _blendIterations . More... | |
Class for performing parabolic smoothing on trajectories.
aikido::planner::parabolic::ParabolicSmoother::ParabolicSmoother | ( | const Eigen::VectorXd & | _velocityLimits, |
const Eigen::VectorXd & | _accelerationLimits, | ||
bool | _enableShortcut = true , |
||
bool | _enableBlend = true , |
||
double | _shortcutTimelimit = DEFAULT_TIMELIMT , |
||
double | _blendRadius = DEFAULT_BLEND_RADIUS , |
||
int | _blendIterations = DEFAULT_BLEND_ITERATIONS , |
||
double | _feasibilityCheckResolution = DEFAULT_CHECK_RESOLUTION , |
||
double | _feasibilityApproxTolerance = DEFAULT_TOLERANCE |
||
) |
_velocityLimits | Maximum velocity for each dimension. |
_accelerationLimits | Maximum acceleration for each dimension. |
_enableShortcut | Whether shortcutting is used in smoothing. |
_enableBlend | Whether blending is used in smoothing. |
_shortcutTimelimit | Timelimit for shortcutting. It is ineffective when _enableShortcut is false. |
_blendRadius | Blend radius for blending. It is ineffective when _enableBlend is false. |
_blendIterations | Blend iterations for blending. It is ineffective when _enableBlend is false. |
_feasibilityCheckResolution | The resolution in discretizing a segment in checking the feasibility of the segment. |
_feasibilityApproxTolerance | This tolerance is used in a piecewise linear discretization that deviates no more than _feasibilityApproxTolerance from the parabolic ramp along any axis, and then checks for configuration and segment feasibility along that piecewise linear path. |
|
private |
Common logic to do shortcutting and/or blending on the input trajectory as dictated by mEnableShortcut and mEnableBlend.
|
overridevirtual |
Performs parabolic smoothing on an input trajectory.
_inputTraj | The untimed trajectory for the arm to process. |
_rng | Random number generator. |
_collisionTestable | Collision constraint that must be satisfied after prcoessing. |
Implements aikido::planner::TrajectoryPostProcessor.
|
overridevirtual |
Performs parabolic smoothing on an input spline trajectory.
_inputTraj | The untimed trajectory for the arm to process. |
_rng | Random number generator. |
_collisionTestable | Collision constraint that must be satisfied after prcoessing. |
Implements aikido::planner::TrajectoryPostProcessor.
|
private |
Set to the value of _accelerationLimits
.
|
private |
Set to the value of _blendIterations
.
|
private |
Set to the value of _blendRadius
.
|
private |
Set to the value of _enableBlend
.
|
private |
Set to the value of _enableShortcut
.
|
private |
Set to the value of _feasibilityApproxTolerance
.
|
private |
Set to the value of _feasibilityCheckResolution
.
|
private |
Set to the value of _shortcutTimelimit
.
|
private |
Set to the value of _velocityLimits
.