KrisLibrary  1.0.0
MultiRobot2DCSpace.h
1 #ifndef MULTI_ROBOT_2D_CSPACE_H
2 #define MULTI_ROBOT_2D_CSPACE_H
3 
4 #include "Geometric2DCSpace.h"
5 #include "RigidRobot2DCSpace.h"
6 #include "TranslatingRobot2DCSpace.h"
7 
10 class MultiRobot2DCSpace : public CSpace
11 {
12 public:
14  void DrawWorkspaceGL() const;
15  void DrawRobotGL(int index,const RigidTransform2D& T) const;
16  void DrawRobotGL(int index,const Config& q) const;
17  void DrawGL(const Config& q) const;
18  RigidTransform2D GetRobotTransform(int index,const Config& q) const;
19 
20  /* TODO: implement these
21  void GetSingleRobotConfig(const Config& q,int index,Config& qrobot) const;
22  void GetSingleRobotCSpace(const Config& q,int index,RigidRobot2DCSpace& space) const;
23  void GetSingleRobotCSpace(const Config& q,int index,TranslatingRobot2DCSpace& space) const;
24  void GetSubsetRobotConfig(const Config& q,const vector<int>& indices,Config& qrobots) const;
25  void GetSubsetRobotCSpace(const Config& q,const vector<int>& indices,MultiRobot2DCSpace& space) const;
26  */
27 
28  virtual void Sample(Config& x);
29  virtual void SampleNeighborhood(const Config& c,Real r,Config& x);
30  virtual bool IsFeasible(const Config& x);
31  virtual EdgePlannerPtr PathChecker(const Config& a,const Config& b);
32  virtual Real Distance(const Config& x, const Config& y);
33  virtual void Properties(PropertyMap&) const;
34 
35  bool allowRotation;
36  Real angleDistanceWeight;
37  Real visibilityEpsilon;
38  AABB2D domain;
39  Geometric2DCollection obstacles;
40  vector<Geometric2DCollection> robots;
41 };
42 
43 #endif
virtual Real Distance(const Config &x, const Config &y)
optionally overrideable (default uses euclidean space)
Definition: MultiRobot2DCSpace.cpp:181
Definition: Geometric2DCSpace.h:10
Vector Config
an alias for Vector
Definition: RobotKinematics3D.h:14
Motion planning configuration space base class. The configuration space implements an interpolation s...
Definition: CSpace.h:39
One or more 2D robots translating and/or rotating in a 2D workspace.
Definition: MultiRobot2DCSpace.h:10
A 2D axis-aligned bounding box.
Definition: AABB2D.h:13
A simple map from keys to values.
Definition: PropertyMap.h:27
Same as above, but in 2D.
Definition: math3d/primitives.h:902