4 #include "DynamicPath.h" 6 #include <Klampt/Contact/Stance.h> 7 #include <KrisLibrary/planning/GeneralizedBezierCurve.h> 8 #include <KrisLibrary/utils/PropertyMap.h> 9 #include <KrisLibrary/math/vector.h> 34 bool Load(
const string& fn);
35 bool Save(
const string& fn)
const;
36 bool Load(TiXmlElement* in);
37 bool Save(TiXmlElement* out)
const;
38 size_t NumSections()
const {
return sections.size(); }
43 bool IsContinuous(Real tol=0.0)
const;
45 bool HasTiming(
int section=0)
const;
47 bool HasVelocity(
int section=0)
const;
49 bool HasConstraints(
int section=0)
const;
51 bool HasContacts(
int section=0)
const;
53 void GetMilestones(vector<Vector>& milestones,
int section=0)
const;
56 void GetTimedMilestones(vector<Real>& times,vector<Vector>& milestones,
int section=0)
const;
62 void SetMilestones(
const vector<Vector>& milestones,
int section=0);
65 void SetTimedMilestones(
const vector<Real>& times,
const vector<Vector>& milestones,
int section=0);
70 Real StartTime()
const;
74 Real Duration()
const;
79 void SetDuration(Real duration,
bool uniformSectionTimes=
true);
83 void SetSmoothTiming(Real duration,
bool uniformSectionTimes=
true);
88 void Concat(
const MultiPath& suffix,
bool relative=
true);
90 void GetIKProblem(vector<IKGoal>& goals,
int section=0)
const;
93 void SetIKProblem(
const vector<IKGoal>& goals,
int section=0);
95 void GetStance(
Stance& stance,
int section=0)
const;
98 void SetStance(
const Stance& stance,
int section=0);
100 void SetHold(
const string& str,
const Hold& h);
102 bool GetHold(
const string& str,
Hold& h)
const;
105 int TimeToSection(Real time)
const;
107 enum InterpPolicy { InterpLinear, InterpCubic };
110 int Evaluate(Real time,GeneralizedCubicBezierCurve& curve,Real& duration,Real& u,InterpPolicy policy=InterpCubic)
const;
111 int Evaluate(Real time,Vector& q,InterpPolicy policy=InterpCubic)
const;
112 int Evaluate(Real time,Vector& q,Vector& v,InterpPolicy policy=InterpCubic)
const;
116 PropertyMap settings;
119 vector<IKGoal> ikGoals;
121 vector<int> holdIndices;
122 vector<string> holdNames;
125 vector<Vector> milestones;
126 vector<Vector> velocities;
130 PropertyMap settings;
131 vector<PathSection> sections;
132 vector<Hold> holdSet;
133 vector<string> holdSetNames;
136 ostream& operator << (ostream& out,
const MultiPath& path);
Definition: MultiPath.h:114
A very general multi-section path container.
Definition: MultiPath.h:31
A collection of holds.
Definition: Stance.h:20
A bounded-velocity, bounded-acceleration trajectory consisting of parabolic ramps.
Definition: DynamicPath.h:114
A single contact between the robot and the environment.
Definition: Hold.h:28
Structures defining the finalized contacts used in stances.
Definition: ContactDistance.h:6