4 #include <KrisLibrary/planning/GeneralizedBezierCurve.h> 5 #include <KrisLibrary/spline/TimeSegmentation.h> 6 #include <KrisLibrary/spline/PiecewisePolynomial.h> 7 #include <KrisLibrary/math/vector.h> 33 int TimeToSegment(Real t)
const;
34 Real TimeToParam(Real t)
const;
35 Real TimeToParam(
int segment,Real t)
const;
36 Real TimeToParamDeriv(
int segment,Real t)
const;
37 Real TimeToParamAccel(
int segment,Real t)
const;
38 int ParamToSegment(Real s)
const;
39 Real ParamToTime(Real s)
const;
40 Real ParamToTime(
int segment,Real s)
const;
62 bool SolveMinTime(
const Vector& vmin,
const Vector& vmax,
63 const Vector& amin,
const Vector& amax,
64 const vector<Real>& paramdivs,
65 const vector<Vector>& dxMins,
const vector<Vector>& dxMaxs,
66 const vector<Vector>& ddxMins,
const vector<Vector>& ddxMaxs,
67 Real ds0=-1,Real dsEnd=-1,
68 vector<pair<int,int> >* velocityLimitedVariables=NULL,
69 vector<pair<int,int> >* accelerationLimitedSegments=NULL);
73 bool SolveMinTime(
const Vector& vmin,
const Vector& vmax,
74 const Vector& amin,
const Vector& amax,
75 const GeneralizedCubicBezierSpline& path,
76 Real ds0=-1,Real dsEnd=-1);
79 bool SolveMinTime(
const Vector& vmin,
const Vector& vmax,
80 const Vector& amin,
const Vector& amax,
81 const vector<Real>& paramdivs,
82 const vector<Vector>& dxs,
83 Real ds0=-1,Real dsEnd=-1);
87 void ConditionMinTime(vector<Real>& paramdivs,vector<Vector>& dxs,
88 vector<Vector>& dxMins,vector<Vector>& dxMaxs,
89 vector<Vector>& ddxMins,vector<Vector>& ddxMaxs);
93 bool SolveMinTimeArcLength(
const Vector& vmin,
const Vector& vmax,
94 const Vector& amin,
const Vector& amax,
95 const vector<Real>& paramdivs,
96 const vector<Vector>& dxMins,
const vector<Vector>& dxMaxs,
97 const vector<Vector>& ddxMins,
const vector<Vector>& ddxMaxs,
98 Real ds0=-1,Real dsEnd=-1);
101 bool SolveMinTimeArcLength(
const Vector& vmin,
const Vector& vmax,
102 const Vector& amin,
const Vector& amax,
103 const vector<Real>& paramdivs,
104 const vector<Vector>& dxs,
105 Real ds0=-1,Real dsEnd=-1);
108 void GetTimeToParam(Spline::PiecewisePolynomial& poly)
const;
110 Spline::TimeSegmentation params,times;
131 bool OptimizeTimeScaling(
const Vector& vmin,
const Vector& vmax,
const Vector& amin,
const Vector& amax);
132 void GetPiecewiseLinear(std::vector<Real>& times,std::vector<Config>& milestones)
const;
133 void GetDiscretizedPath(Real dt,std::vector<Config>& milestones)
const;
134 Real EndTime()
const;
135 void Eval(Real t,Vector& x)
const;
136 void Deriv(Real t,Vector& dx)
const;
137 void Accel(Real t,Vector& ddx)
const;
140 void Plot(
const char* fn,
const Vector& vmin,
const Vector& vmax,
const Vector& amin,
const Vector& amax,Real res=1e-3);
142 GeneralizedCubicBezierSpline path;
143 Spline::TimeSegmentation pathSegments;
155 const Vector& vmin,
const Vector& vmax,
156 const Vector& amin,
const Vector& amax,
Maps time into a given path parameter range (e.g., [0,1]) with joint space velocity and acceleration ...
Definition: TimeScaling.h:29
bool OptimizeTimeScaling(const GeneralizedCubicBezierSpline &path, const Vector &vmin, const Vector &vmax, const Vector &amin, const Vector &amax, TimeScaling &scaling)
Optimizes the given path according to velocity and acceleration bounds. The resulting time scaling is...
A convenience class that stores a Bezier curve and its time scaling. Useful for evaluating the scaled...
Definition: TimeScaling.h:128