Go to the documentation of this file. 1 #ifndef AIKIDO_PLANNER_PARABOLIC_PARABOLICSMOOTHER_HPP_
2 #define AIKIDO_PLANNER_PARABOLIC_PARABOLICSMOOTHER_HPP_
47 std::unique_ptr<trajectory::Spline>
doShortcut(
50 const Eigen::VectorXd& _maxVelocity,
51 const Eigen::VectorXd& _maxAcceleration,
88 std::unique_ptr<trajectory::Spline>
doBlend(
91 const Eigen::VectorXd& _maxVelocity,
92 const Eigen::VectorXd& _maxAcceleration,
124 const Eigen::VectorXd& _maxVelocity,
125 const Eigen::VectorXd& _maxAcceleration,
155 const Eigen::VectorXd& _velocityLimits,
156 const Eigen::VectorXd& _accelerationLimits,
157 bool _enableShortcut =
true,
158 bool _enableBlend =
true,
170 std::unique_ptr<aikido::trajectory::Spline>
postprocess(
180 std::unique_ptr<aikido::trajectory::Spline>
postprocess(
225 #endif // ifndef AIKIDO_PLANNER_PARABOLIC_PARABOLICSMOOTHER_HPP_
std::unique_ptr< trajectory::Spline > doShortcut(const trajectory::Spline &_inputTrajectory, aikido::constraint::TestablePtr _feasibilityCheck, const Eigen::VectorXd &_maxVelocity, const Eigen::VectorXd &_maxAcceleration, aikido::common::RNG &_rng, double _timelimit=DEFAULT_TIMELIMT, double _checkResolution=DEFAULT_CHECK_RESOLUTION, double _tolerance=DEFAULT_TOLERANCE)
Shortcut waypoints in a trajectory using parabolic splines.
double mShortcutTimelimit
Set to the value of _shortcutTimelimit.
Definition: ParabolicSmoother.hpp:212
constexpr int DEFAULT_BLEND_ITERATIONS
Definition: ParabolicSmoother.hpp:16
bool mEnableShortcut
Set to the value of _enableShortcut.
Definition: ParabolicSmoother.hpp:206
double mFeasibilityCheckResolution
Set to the value of _feasibilityCheckResolution.
Definition: ParabolicSmoother.hpp:194
bool mEnableBlend
Set to the value of _enableBlend.
Definition: ParabolicSmoother.hpp:209
Format of serialized trajectory in YAML.
Definition: algorithm.hpp:4
double mBlendRadius
Set to the value of _blendRadius.
Definition: ParabolicSmoother.hpp:215
Class for performing parabolic smoothing on trajectories.
Definition: ParabolicSmoother.hpp:134
std::unique_ptr< trajectory::Spline > doShortcutAndBlend(const trajectory::Spline &_inputTrajectory, aikido::constraint::TestablePtr _feasibilityCheck, const Eigen::VectorXd &_maxVelocity, const Eigen::VectorXd &_maxAcceleration, aikido::common::RNG &_rng, double _timelimit=DEFAULT_TIMELIMT, double _blendRadius=DEFAULT_BLEND_RADIUS, int _blendIterations=DEFAULT_BLEND_ITERATIONS, double _checkResolution=DEFAULT_CHECK_RESOLUTION, double _tolerance=DEFAULT_TOLERANCE)
Shortcut and blends waypoints in a trajectory using parabolic splines.
constexpr double DEFAULT_TOLERANCE
Definition: ParabolicSmoother.hpp:18
int mBlendIterations
Set to the value of _blendIterations.
Definition: ParabolicSmoother.hpp:218
Implementation of the C++11 "random engine" concept that uses virtual function calls to erase the typ...
Definition: RNG.hpp:24
const Eigen::VectorXd mVelocityLimits
Set to the value of _velocityLimits.
Definition: ParabolicSmoother.hpp:200
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.
constexpr double DEFAULT_TIMELIMT
Definition: ParabolicSmoother.hpp:14
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)
const Eigen::VectorXd mAccelerationLimits
Set to the value of _accelerationLimits.
Definition: ParabolicSmoother.hpp:203
Definition: TrajectoryPostProcessor.hpp:12
double mFeasibilityApproxTolerance
Set to the value of _feasibilityApproxTolerance.
Definition: ParabolicSmoother.hpp:197
constexpr double DEFAULT_BLEND_RADIUS
Definition: ParabolicSmoother.hpp:15
std::shared_ptr< Testable > TestablePtr
Definition: Testable.hpp:13
std::unique_ptr< trajectory::Spline > doBlend(const trajectory::Spline &_inputTrajectory, aikido::constraint::TestablePtr _feasibilityCheck, const Eigen::VectorXd &_maxVelocity, const Eigen::VectorXd &_maxAcceleration, double _blendRadius=DEFAULT_BLEND_RADIUS, int _blendIterations=DEFAULT_BLEND_ITERATIONS, double _checkResolution=DEFAULT_CHECK_RESOLUTION, double _tolerance=DEFAULT_TOLERANCE)
Blend around waypoints in a trajectory using parabolic splines.
Trajectory that uses an Interpolator to interpolate between waypoints.
Definition: Interpolated.hpp:14
constexpr double DEFAULT_CHECK_RESOLUTION
Definition: ParabolicSmoother.hpp:17
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 mEnableShortcu...
Polynomial spline trajectory defined in a StateSpace.
Definition: Spline.hpp:25