Parasol Planning Library (PPL)
ParallelCfgTraits.h
Go to the documentation of this file.
1 #ifndef PARALLEL_CFG_TRAITS_H_
2 #define PARALLEL_CFG_TRAITS_H_
3 
5 
6 //distance metric includes
7 //#include "MPLibrary/DistanceMetrics/BinaryLPSweptDistance.h"
8 //#include "MPLibrary/DistanceMetrics/CenterOfMassDistance.h"
10 //#include "MPLibrary/DistanceMetrics/KnotTheoryDistance.h"
11 //#include "MPLibrary/DistanceMetrics/LPSweptDistance.h"
12 //#include "MPLibrary/DistanceMetrics/ManhattanDistance.h"
13 //#include "MPLibrary/DistanceMetrics/RMSDDistance.h"
16 
17 //validity checker includes
20 //#include "MPLibrary/ValidityCheckers/ComposeValidity.h"
21 //#include "MPLibrary/ValidityCheckers/MedialAxisClearanceValidity.h"
22 //#include "MPLibrary/ValidityCheckers/NegateValidity.h"
23 //#include "MPLibrary/ValidityCheckers/NodeClearanceValidity.h"
24 //#include "MPLibrary/ValidityCheckers/ObstacleClearanceValidity.h"
25 
26 //neighborhood finder includes
27 //#include "MPLibrary/NeighborhoodFinders/BandsNF.h"
29 //#include "MPLibrary/NeighborhoodFinders/HierarchicalNF.h"
30 //#include "MPLibrary/NeighborhoodFinders/HopLimitNF.h"
31 //#include "MPLibrary/NeighborhoodFinders/OptimalNF.h"
33 //#include "MPLibrary/NeighborhoodFinders/RandomNF.h"
34 
35 //sampler includes
38 //#include "MPLibrary/Samplers/GridSampler.h"
39 //#include "MPLibrary/Samplers/MedialAxisSampler.h"
40 //#include "MPLibrary/Samplers/MixSampler.h"
42 //#include "MPLibrary/Samplers/SimilarStructureSampler.h"
43 //#include "MPLibrary/Samplers/UniformMedialAxisSampler.h"
44 //#include "MPLibrary/Samplers/UniformObstacleBasedSampler.h"
46 
47 //local planner includes
48 //#include "MPLibrary/LocalPlanners/AStar.h"
49 //#include "MPLibrary/LocalPlanners/HierarchicalLP.h"
50 //#include "MPLibrary/LocalPlanners/MedialAxisLP.h"
51 //#include "MPLibrary/LocalPlanners/RotateAtS.h"
53 //#include "MPLibrary/LocalPlanners/ToggleLP.h"
54 //#include "MPLibrary/LocalPlanners/TransformAtS.h"
55 //#include "MPLibrary/LocalPlanners/ApproxSpheres.h"
56 
57 //extenders includes
59 //#include "MPLibrary/Extenders/MixExtender.h"
60 //#include "MPLibrary/Extenders/RandomObstacleVector.h"
61 //#include "MPLibrary/Extenders/RotationThenTranslation.h"
62 //#include "MPLibrary/Extenders/TraceCSpaceObstacle.h"
63 //#include "MPLibrary/Extenders/TraceMAPush.h"
64 //#include "MPLibrary/Extenders/TraceObstacle.h"
65 
66 //path smoothing includes
67 //#include "MPLibrary/PathModifiers/CombinedPathModifier.h"
68 //#include "MPLibrary/PathModifiers/MedialAxisPathModifier.h"
69 //#include "MPLibrary/PathModifiers/ResamplePathModifier.h"
70 //#include "MPLibrary/PathModifiers/ShortcuttingPathModifier.h"
71 
72 //connector includes
73 //#include "MPLibrary/Connectors/AdaptiveConnector.h"
76 #include "MPLibrary/Connectors/RegionConnector.h"
77 #include "MPLibrary/Connectors/RegionRRTConnect.h"
79 #include "MPLibrary/Connectors/RRTConnect.h"
80 //#include "MPLibrary/Connectors/CCExpansion.h"
81 //#include "MPLibrary/Connectors/ClosestVE.h"
82 
83 //metric includes
84 //#include "MPLibrary/Metrics/CCDistanceMetric.h"
85 //#include "MPLibrary/Metrics/ConnectivityMetric.h"
86 //#include "MPLibrary/Metrics/CoverageDistanceMetric.h"
87 //#include "MPLibrary/Metrics/CoverageMetric.h"
88 //#include "MPLibrary/Metrics/DiameterMetric.h"
89 //#include "MPLibrary/Metrics/NumEdgesMetric.h"
91 //#include "MPLibrary/Metrics/RoadmapSet.h"
92 //#include "MPLibrary/Metrics/TimeMetric.h"
93 //#include "MPLibrary/Metrics/VectorSet.h"
94 
95 //map evaluator includes
96 //#include "MPLibrary/MapEvaluators/ComposeEvaluator.h"
98 //#include "MPLibrary/MapEvaluators/LazyQuery.h"
99 //#include "MPLibrary/MapEvaluators/LazyToggleQuery.h"
100 //#include "MPLibrary/MapEvaluators/NegateEvaluator.h"
101 //#include "MPLibrary/MapEvaluators/PrintMapEvaluation.h"
102 #include "MPLibrary/MapEvaluators/Query.h"
103 //#include "MPLibrary/MapEvaluators/ReplanningEvaluation.h"
104 //#include "MPLibrary/MapEvaluators/TrueEvaluation.h"
105 
106 
107 //mp strategies includes
108 //#include "MPLibrary/MPStrategies/AdaptiveRRT.h"
109 //#include "MPLibrary/MPStrategies/BasicPRM.h"
110 //#include "MPLibrary/MPStrategies/BasicRRTStrategy.h"
111 //#include "MPLibrary/MPStrategies/EvaluateMapStrategy.h"
112 //#include "MPLibrary/MPStrategies/MedialAxisRRT.h"
113 //#include "MPLibrary/MPStrategies/MultiStrategy.h"
114 //#include "MPLibrary/MPStrategies/SparkPRM.h"
115 //#include "MPLibrary/MPStrategies/SRTStrategy.h"
116 //#include "MPLibrary/MPStrategies/TogglePRMStrategy.h"
117 //#include "MPLibrary/MPStrategies/UnitTest/DMTestStrategy.h"
118 //#include "MPLibrary/MPStrategies/UtilityGuidedGenerator.h"
119 //#include "MPLibrary/MPStrategies/VisibilityBasedPRM.h"
120 #include "MPLibrary/MPStrategies/BlindRRT.h"
121 #include "MPLibrary/ParallelMethods/BasicParallelPRM.h"
122 #include "MPLibrary/ParallelMethods/BulkRRT.h"
123 #include "MPLibrary/ParallelMethods/RadialBlindRRT.h"
124 #include "MPLibrary/ParallelMethods/RadialSubdivisionRRT.h"
125 #include "MPLibrary/ParallelMethods/RegularSubdivisionMethod.h"
126 
143 template<class C, class W = DefaultWeight<C> >
144 struct MPTraits {
145  typedef C CfgType;
146  typedef W WeightType;
147  typedef C CfgRef;
148 
150 
151  //types of distance metrics available in our world
152  typedef boost::mpl::list<
153  //BinaryLPSweptDistance<MPTraits>,
154  //CenterOfMassDistance<MPTraits>,
156  //KnotTheoryDistance<MPTraits>,
157  //LPSweptDistance<MPTraits>,
158  //ManhattanDistance<MPTraits>,
159  //MinkowskiDistance<MPTraits>,
160  //RMSDDistance<MPTraits>,
164 
165  //types of validity checkers available in our world
166  typedef boost::mpl::list<
169  //ComposeValidity<MPTraits>,
170  //MedialAxisClearanceValidity<MPTraits>,
171  //NegateValidity<MPTraits>,
172  //NodeClearanceValidity<MPTraits>,
173  //ObstacleClearanceValidity<MPTraits>
175 
176  //types of neighborhood finders available in our world
177  typedef boost::mpl::list<
178  //BandsNF<MPTraits>,
180  //CGALNF<MPTraits>,
181  //DPESNF<MPTraits>,
182  //HierarchicalNF<MPTraits>,
183  //HopLimitNF<MPTraits>,
184  //MetricTreeNF<MPTraits>,
185  //MPNNNF<MPTraits>,
186  //OptimalNF<MPTraits>,
188  //RandomNF<MPTraits>//,
189  //SpillTreeNF<MPTraits>
191 
192  //types of samplers available in our world
193  typedef boost::mpl::list<
196  //GridSampler<MPTraits>,
197  //MedialAxisSampler<MPTraits>,
198  //MixSampler<MPTraits>,
200  //SimilarStructureSampler<MPTraits>,
201  //UniformMedialAxisSampler<MPTraits>,
202  //UniformObstacleBasedSampler<MPTraits>,
205 
206  //types of local planners available in our world
207  typedef boost::mpl::list<
208  //AStarClearance<MPTraits>,
209  //AStarDistance<MPTraits>,
210  //HierarchicalLP<MPTraits>,
211  //MedialAxisLP<MPTraits>,
212  //RotateAtS<MPTraits>,
214  //ToggleLP<MPTraits>,
215  //TransformAtS<MPTraits>,
216  //ApproxSpheres<MPTraits>
218 
219  //types of extenders avaible in our world
220  typedef boost::mpl::list<
222  //MixExtender<MPTraits>,
223  //RandomObstacleVector<MPTraits>,
224  //RotationThenTranslation<MPTraits>,
225  //TraceCSpaceObstacle<MPTraits>,
226  //TraceMAPush<MPTraits>,
227  //TraceObstacle<MPTraits>
229 
230  //types of path smoothing available in our world
231 
232  typedef boost::mpl::list<
233  //CombinedPathModifier<MPTraits>,
234  //MedialAxisPathModifier<MPTraits>,
235  //ResamplePathModifier<MPTraits>,
236  //ShortcuttingPathModifier<MPTraits>
238 
239 
240  //types of connectors available in our world
241  typedef boost::mpl::list<
242  //AdaptiveConnector<MPTraits>,
243  //CCExpansion<MPTraits>,
245  //ClosestVE<MPTraits>,
247  //PreferentialAttachment<MPTraits>,
248  RegionConnector<MPTraits>,
249  RegionRRTConnect<MPTraits>,
251  RRTConnect<MPTraits>
253 
254  //typedef ConnectivityMetric<MPTraits, RoadmapSet<MPTraits> > ConnectivityMetricRoadmapSet;
255  //typedef CoverageDistanceMetric<MPTraits, RoadmapSet<MPTraits> > CoverageDistanceMetricRoadmapSet;
256  //typedef CoverageMetric<MPTraits, RoadmapSet<MPTraits> > CoverageMetricRoadmapSet;
257 
258  //typedef ConnectivityMetric<MPTraits, VectorSet<MPTraits> > ConnectivityMetricVectorSet;
259  //typedef CoverageDistanceMetric<MPTraits, VectorSet<MPTraits> > CoverageDistanceMetricVectorSet;
260  //typedef CoverageMetric<MPTraits, VectorSet<MPTraits> > CoverageMetricVectorSet;
261 
262  //types of metrics available in our world
263  typedef boost::mpl::list<
264  //CCDistanceMetric<MPTraits>,
265  //ConnectivityMetricRoadmapSet,
266  //CoverageDistanceMetricRoadmapSet,
267  //CoverageMetricRoadmapSet,
268  //ConnectivityMetricVectorSet,
269  //CoverageDistanceMetricVectorSet,
270  //CoverageMetricVectorSet,
271  //DiameterMetric<MPTraits>,
272  //NumEdgesMetric<MPTraits>,
274  //TimeMetric<MPTraits>
276 
277 
278  //types of map evaluators available in our world
279  typedef boost::mpl::list<
280  //ComposeEvaluator<MPTraits>,
282  //LazyQuery<MPTraits>,
283  //LazyToggleQuery<MPTraits>,
284  //NegateEvaluator<MPTraits>,
285  //PrintMapEvaluation<MPTraits>,
286  //Query<MPTraits>,
287  //ReplanningEvaluation<MPTraits>,
288  //TrueEvaluation<MPTraits>
290 
291  //types of motion planning strategies available in our world
292  typedef boost::mpl::list<
293  //AdaptiveRRT<MPTraits>,
294  //BasicPRM<MPTraits>,
295  //BasicRRTStrategy<MPTraits>,
296  //DMTestStrategy<MPTraits>,
297  //EvaluateMapStrategy<MPTraits>,
298  //MedialAxisRRT<MPTraits>,
299  //MultiStrategy<MPTraits>,
300  //SparkPRM<MPTraits, BasicPRM>,
301  //SparkPRM<MPTraits, TogglePRMStrategy>,
302  //SRTStrategy<MPTraits>,
303  //TogglePRMStrategy<MPTraits>,
304  //UtilityGuidedGenerator<MPTraits>,
305  //VisibilityBasedPRM<MPTraits>
306 
307  BasicParallelPRM<MPTraits>,
308  BlindRRT<MPTraits>,
309  BulkRRT<MPTraits>,
310  RadialBlindRRT<MPTraits>,
311  RadialSubdivisionRRT<MPTraits>,
312  RegularSubdivisionMethod<MPTraits>
314 };
315 
316 #endif
Definition: AlwaysTrueValidity.h:11
Definition: BasicExtender.h:16
This sampler validity checks the input sample and accepts it iff it passes the bridge test - i....
Definition: BridgeTestSampler.h:13
Definition: BruteForceNF.h:17
Definition: CCsConnector.h:15
Definition: CollisionDetectionValidity.h:52
Definition: ConditionalEvaluator.h:10
Definition: EuclideanDistance.h:14
Gaussian-distribution based sampling.
Definition: GaussianSampler.h:17
Definition: MPProblem.h:34
Definition: NeighborhoodConnector.h:21
Definition: NumNodesMetric.h:10
Obstacle-based sampling.
Definition: ObstacleBasedSampler.h:15
Definition: RadiusNF.h:11
Definition: RewireConnector.h:17
Definition: ScaledEuclideanDistance.h:18
Definition: StraightLine.h:17
Definition: UniformRandomSampler.h:14
Definition: WorkspaceTranslationDistance.h:19
Defines available methods in the Motion Planning Universe for Cfg under parallel compile.
Definition: ParallelCfgTraits.h:144
boost::mpl::list< AlwaysTrueValidity< MPTraits >, CollisionDetectionValidity< MPTraits > > ValidityCheckerMethodList
Definition: ParallelCfgTraits.h:174
C CfgType
Definition: ParallelCfgTraits.h:145
boost::mpl::list< ConditionalEvaluator< MPTraits > > MapEvaluatorMethodList
Definition: ParallelCfgTraits.h:289
C CfgRef
Definition: ParallelCfgTraits.h:147
boost::mpl::list< CCsConnector< MPTraits >, NeighborhoodConnector< MPTraits >, RegionConnector< MPTraits >, RegionRRTConnect< MPTraits >, RewireConnector< MPTraits >, RRTConnect< MPTraits > > ConnectorMethodList
Definition: ParallelCfgTraits.h:252
boost::mpl::list< > PathModifierMethodList
Definition: ParallelCfgTraits.h:237
boost::mpl::list< EuclideanDistance< MPTraits >, ScaledEuclideanDistance< MPTraits >, WorkspaceTranslationDistance< MPTraits > > DistanceMetricMethodList
Definition: ParallelCfgTraits.h:163
boost::mpl::list< BridgeTestSampler< MPTraits >, GaussianSampler< MPTraits >, ObstacleBasedSampler< MPTraits >, UniformRandomSampler< MPTraits > > SamplerMethodList
Definition: ParallelCfgTraits.h:204
boost::mpl::list< BasicExtender< MPTraits > > ExtenderMethodList
Definition: ParallelCfgTraits.h:228
MPProblem< MPTraits > MPProblemType
Definition: ParallelCfgTraits.h:149
boost::mpl::list< NumNodesMetric< MPTraits > > MetricMethodList
Definition: ParallelCfgTraits.h:275
boost::mpl::list< BruteForceNF< MPTraits >, RadiusNF< MPTraits > > NeighborhoodFinderMethodList
Definition: ParallelCfgTraits.h:190
boost::mpl::list< StraightLine< MPTraits > > LocalPlannerMethodList
Definition: ParallelCfgTraits.h:217
W WeightType
Definition: ParallelCfgTraits.h:146
boost::mpl::list< BasicParallelPRM< MPTraits >, BlindRRT< MPTraits >, BulkRRT< MPTraits >, RadialBlindRRT< MPTraits >, RadialSubdivisionRRT< MPTraits >, RegularSubdivisionMethod< MPTraits > > MPStrategyMethodList
Definition: ParallelCfgTraits.h:313