5 #include <Klampt/Modeling/GeneralizedRobot.h> 6 #include "PlannerSettings.h" 7 #include <KrisLibrary/planning/CSpaceHelpers.h> 8 #include <KrisLibrary/planning/RigidBodyCSpace.h> 9 #include <KrisLibrary/utils/ArrayMapping.h> 35 virtual int NumDimensions();
36 virtual string VariableName(
int i);
37 virtual void Sample(Config& x);
38 virtual void SampleNeighborhood(
const Config& c,Real r,Config& out);
39 virtual void Interpolate(
const Config& x,
const Config& y,Real u,Config& out);
40 virtual Real Distance(
const Config& x,
const Config& y);
41 virtual void Properties(PropertyMap&);
43 virtual void InterpolateDeriv(
const Config& a,
const Config& b,Real u,Vector& dx);
44 virtual void InterpolateDerivA(
const Config& a,
const Config& b,Real u,
const Vector& da,Vector& dx);
45 virtual void InterpolateDerivB(
const Config& a,
const Config& b,Real u,
const Vector& db,Vector& dx);
46 virtual void InterpolateDeriv2(
const Config& a,
const Config& b,Real u,Vector& ddx);
47 virtual void Integrate(
const Config& a,
const Vector& da,Config& b);
52 vector<Real> jointWeights;
53 Real floatingRotationWeight;
54 vector<Real> jointRadiusScale;
55 Real floatingRotationRadiusScale;
67 virtual int NumDimensions();
68 virtual string VariableName(
int i);
69 virtual void Sample(Config& x);
70 virtual void Interpolate(
const Config& x,
const Config& y,Real u,Config& out);
71 virtual Real
Distance(
const Config& x,
const Config& y);
72 virtual void Properties(PropertyMap&)
const;
74 virtual void InterpolateDeriv(
const Config& a,
const Config& b,Real u,Vector& dx);
75 virtual void InterpolateDerivA(
const Config& a,
const Config& b,Real u,
const Vector& da,Vector& dx);
76 virtual void InterpolateDerivB(
const Config& a,
const Config& b,Real u,
const Vector& db,Vector& dx);
77 virtual void InterpolateDeriv2(
const Config& a,
const Config& b,Real u,Vector& ddx);
78 virtual void Integrate(
const Config& a,
const Vector& da,Config& b);
108 void FixDof(
int dof,Real value);
110 void IgnoreCollisions(
int a,
int b);
114 virtual void Sample(Config& x);
115 virtual void SampleNeighborhood(
const Config& c,Real r,Config& x);
116 virtual bool IsFeasible(
const Config& x);
117 virtual EdgePlannerPtr PathChecker(
const Config& a,
const Config& b,
int obstacle);
118 virtual EdgePlannerPtr PathChecker(
const Config& a,
const Config& b);
119 virtual void Properties(PropertyMap& map);
121 virtual void GetJointLimits(Vector& bmin,Vector& bmax);
123 bool UpdateGeometry(
const Config& x);
124 bool CheckJointLimits(
const Config& x);
125 bool CheckCollisionFree(
const Config& x);
131 vector<pair<int,int> > collisionPairs;
132 vector<Geometry::AnyCollisionQuery> collisionQueries;
134 vector<int> fixedDofs;
135 vector<Real> fixedValues;
136 vector<pair<int,int> > ignoreCollisions;
137 bool constraintsDirty;
150 virtual EdgePlannerPtr PathChecker(
const Config& a,
const Config& b);
153 void IgnoreCollisions(
int id);
155 bool UpdateGeometry(
const Config& x);
161 vector<pair<int,int> > collisionPairs;
162 vector<Geometry::AnyCollisionQuery> collisionQueries;
164 bool constraintsDirty;
Real Distance(const Robot &robot, const Config &a, const Config &b, Real norm, Real floatingRotationWeight=1.0)
Returns the geodesic distance between a and b. Combines individual joint distances together via the L...
The main robot type used in RobotSim.
Definition: Robot.h:79
A CSpace for just a few dofs of a robot. Slightly faster than using a regular RobotCSpace then pickin...
Definition: RobotCSpace.h:63
A structure containing settings that should be used for collision detection, contact solving...
Definition: PlannerSettings.h:41
The main world class containing multiple robots, objects, and static geometries (terrains). Lights and other viewport information may also be stored here.
Definition: World.h:20
A cspace consisting of a single robot configuration in a RobotWorld. Feasibility constraints are join...
Definition: RobotCSpace.h:100
A configuration space for a rigid object, treated like a robot.
Definition: RobotCSpace.h:145
void Interpolate(Robot &robot, const Config &x, const Config &y, Real u, Config &out)
Interpolates between the two configurations in geodesic fashion on the robot's underlying configurati...
A (static) rigid object that may be manipulated.
Definition: RigidObject.h:13
Implements a basic robot configuration space with only joint limit constraint testing.
Definition: RobotCSpace.h:30
void Integrate(Robot &robot, const Config &q, const Vector &dq, Config &b)
Integrates a velocity vector dq from q to obtain the configuration b.