1 #ifndef PPL_DYNAMIC_REGION_RRT_H_
2 #define PPL_DYNAMIC_REGION_RRT_H_
76 return (*edgeIterator).property()[
edgeIndex];
81 return edgeIndex == (*edgeIterator).property().size() - 1;
91 if(
this != &_region) {
106 return eit and idx and att and succ;
125 virtual void Print(std::ostream& _os)
const override;
146 virtual std::pair<VID, bool>
AddNode(
const Cfg& _newCfg)
override;
212 std::vector<SamplingRegion*>
249 std::unordered_map<WorkspaceSkeleton::VD, bool>
m_visited;
Definition: BasicRRTStrategy.h:48
Definition: Boundary.h:30
An n-dimensional bounding sphere in c-space.
Definition: CSpaceBoundingSphere.h:10
Definition: DynamicRegionRRT.h:21
const size_t SelectSamplingRegion()
Definition: DynamicRegionRRT.cpp:528
virtual void Initialize() override
Definition: DynamicRegionRRT.cpp:77
std::pair< Point3d, Point3d > m_queryPair
Pair of points we use to direct the skeleton.
Definition: DynamicRegionRRT.h:243
std::string m_scuLabel
The skeleton clearance utility label.
Definition: DynamicRegionRRT.h:235
std::string m_decompositionLabel
The workspace decomposition label.
Definition: DynamicRegionRRT.h:234
const Vector3d GetVelocityBias(SamplingRegion *_region)
Definition: DynamicRegionRRT.cpp:255
WorkspaceSkeleton::ED SkeletonEdgeDescriptor
Definition: DynamicRegionRRT.h:34
virtual ~DynamicRegionRRT()=default
double m_explore
Definition: DynamicRegionRRT.h:260
MPBaseObject::WeightType WeightType
Definition: DynamicRegionRRT.h:26
void CheckRegionProximity(const Point3d &_p)
Definition: DynamicRegionRRT.cpp:621
WorkspaceSkeleton::adj_edge_iterator SkeletonEdgeIterator
Definition: DynamicRegionRRT.h:35
virtual Cfg SelectTarget() override
Get a random configuration to grow towards.
Definition: DynamicRegionRRT.cpp:119
std::vector< SamplingRegion * > CreateRegions(const WorkspaceSkeleton::vertex_iterator _iter)
Definition: DynamicRegionRRT.cpp:637
WorkspaceSkeleton::vertex_descriptor SkeletonVertexDescriptor
Definition: DynamicRegionRRT.h:36
Cfg Sample(SamplingRegion *_region)
Definition: DynamicRegionRRT.cpp:200
CSpaceBoundingSphere MakeBoundary(const Vector3d &_v)
Definition: DynamicRegionRRT.cpp:351
DynamicRegionRRT()
Definition: DynamicRegionRRT.cpp:11
std::string m_skeletonType
Type of skeleton to build.
Definition: DynamicRegionRRT.h:233
bool AdvanceRegionToCompletion(const Cfg &_cfg, SamplingRegion &_region)
Definition: DynamicRegionRRT.cpp:725
MPBaseObject::RoadmapType RoadmapType
Definition: DynamicRegionRRT.h:27
bool IsTouching(const Cfg &_cfg, SamplingRegion &_region)
Definition: DynamicRegionRRT.cpp:317
void AdvanceRegions(const Cfg &_cfg)
Definition: DynamicRegionRRT.cpp:667
std::unordered_map< WorkspaceSkeleton::VD, bool > m_visited
Keep track of which skeleton vertices we've visited.
Definition: DynamicRegionRRT.h:249
double m_regionFactor
Definition: DynamicRegionRRT.h:253
RoadmapType::VID VID
Definition: DynamicRegionRRT.h:28
double m_velocityAlignment
Strength of velocity biasing.
Definition: DynamicRegionRRT.h:238
void BuildSkeleton()
Build topological skeleton.
Definition: DynamicRegionRRT.cpp:372
WorkspaceSkeleton::vertex_iterator SkeletonVertexIterator
Definition: DynamicRegionRRT.h:37
void BiasVelocity(Cfg &_cfg, SamplingRegion *_region)
Definition: DynamicRegionRRT.cpp:595
WorkspaceSkeleton m_skeleton
The directed/pruned workspace skeleton.
Definition: DynamicRegionRRT.h:231
virtual std::pair< VID, bool > AddNode(const Cfg &_newCfg) override
Definition: DynamicRegionRRT.cpp:171
std::vector< double > ComputeProbabilities()
Definition: DynamicRegionRRT.cpp:566
std::vector< SamplingRegion > m_regions
The set of active dynamic sampling regions and associated metadata.
Definition: DynamicRegionRRT.h:246
WorkspaceSkeleton m_originalSkeleton
The original workspace skeleton.
Definition: DynamicRegionRRT.h:230
double m_penetrationFactor
Definition: DynamicRegionRRT.h:264
void DirectSkeleton()
Construct the pruned and directed query skeleton.
Definition: DynamicRegionRRT.cpp:438
bool m_initialized
Have auxiliary structures been initialized?
Definition: DynamicRegionRRT.h:240
virtual void Print(std::ostream &_os) const override
Definition: DynamicRegionRRT.cpp:54
double m_regionRadius
The region radius.
Definition: DynamicRegionRRT.h:255
bool m_velocityBiasing
Use velocity biasing?
Definition: DynamicRegionRRT.h:237
Definition: GenericStateGraph.h:67
STAPLGraph::vertex_descriptor VID
Definition: GenericStateGraph.h:83
Geometric skeleton of the workspace.
Definition: WorkspaceSkeleton.h:22
BaseType::EID ED
Definition: WorkspaceSkeleton.h:32
BaseType::VID vertex_descriptor
Definition: WorkspaceSkeleton.h:34
BaseType::VI vertex_iterator
Definition: WorkspaceSkeleton.h:33
BaseType::EI adj_edge_iterator
Definition: WorkspaceSkeleton.h:35
Representation of a sampling region.
Definition: DynamicRegionRRT.h:46
bool LastPoint() const noexcept
Check if this region is at the last point on its skeleton edge.
Definition: DynamicRegionRRT.h:80
double GetWeight() const noexcept
Compute the weight for this region (i.e. success rate).
Definition: DynamicRegionRRT.h:70
const Vector3d & GetCenter() const noexcept
Get the center of this region.
Definition: DynamicRegionRRT.h:75
double successes
Number of successful attempts.
Definition: DynamicRegionRRT.h:54
SamplingRegion & operator=(const SamplingRegion &_region)
Assignment operator.
Definition: DynamicRegionRRT.h:90
double attempts
Number of attempts to extend into this region.
Definition: DynamicRegionRRT.h:53
size_t edgeIndex
Which edge point are we at?
Definition: DynamicRegionRRT.h:52
void TrackSuccess(const size_t _success, const size_t _attempts)
Track the success rate of extending into this region.
Definition: DynamicRegionRRT.h:62
SamplingRegion(const SkeletonEdgeIterator &_eit)
Definition: DynamicRegionRRT.h:58
bool operator==(const SamplingRegion &_region) const
Equality operator.
Definition: DynamicRegionRRT.h:101
void Advance() noexcept
Advance this region to the next skeleton edge point.
Definition: DynamicRegionRRT.h:85
SkeletonEdgeIterator edgeIterator
Iterator to region's edge.
Definition: DynamicRegionRRT.h:51