1 #ifndef PMPL_CLEARANCE_UTILITY_H_
2 #define PMPL_CLEARANCE_UTILITY_H_
34 template<
class CfgType>
76 string _vcLabel =
"",
string _dmLabel =
"",
77 bool _exactClearance =
false,
bool _exactPenetration =
false,
78 size_t _clearanceRays = 10,
size_t _penetrationRays = 10,
79 double _approxStepSize =
MAX_DBL,
double _approxResolution =
MAX_DBL,
80 bool _useBBX =
true,
bool _positionalDofsOnly =
true,
bool _debug =
false);
94 virtual void Print(ostream& _os)
const override;
146 const bool& _useOppValidityWitness =
true);
160 const bool _useOppValidityWitness =
true);
175 const bool& _useOppValidityWitness =
true);
195 std::vector<
Ray<Cfg> >& _rays,
const Cfg& _sampledCfg,
196 const bool& _initValidity,
const Boundary*
const _b,
197 std::pair<size_t, Cfg>& _candidate,
198 const bool& _useOppValidityWitness =
true);
208 void MakeRays(
const Cfg& _sampledCfg,
const std::size_t& _numRays,
224 const std::vector<
Ray<Cfg> >& _rays,
225 const Boundary*
const _b,
const bool& _useOppValidityWitness =
true);
327 const Cfg& _cfg,
const bool _initValidity,
329 const bool _useOppValidityWitness =
true);
#define MAX_DBL
Definition: MPUtils.h:33
Definition: Boundary.h:30
Definition: ClearanceUtilities.h:48
bool ApproxCollisionInfo(Cfg &_cfg, Cfg &_clrCfg, const Boundary *const _b, CDInfo &_cdInfo, const bool &_useOppValidityWitness=true)
Definition: ClearanceUtilities.cpp:337
const string & GetDistanceMetricLabel() const
Definition: ClearanceUtilities.h:104
const bool GetNearestVertexWitness(Cfg &_cfg, CDInfo &_cdInfo, const Boundary *const _b)
Definition: ClearanceUtilities.cpp:215
int abcd
Definition: ClearanceUtilities.h:331
bool ValidateCandidate(const std::pair< size_t, Cfg > &_cand, const std::vector< Ray< Cfg > > &_rays, const Boundary *const _b, const bool &_useOppValidityWitness=true)
Definition: ClearanceUtilities.cpp:674
bool IsInitialized() const
Definition: ClearanceUtilities.h:128
bool m_initialized
Definition: ClearanceUtilities.h:308
bool ExactCollisionInfo(Cfg &_cfg, Cfg &_clrCfg, const Boundary *const _b, CDInfo &_cdInfo, const bool _useOppValidityWitness=true)
Definition: ClearanceUtilities.cpp:157
bool FindApproximateWitness(const std::size_t &_numRays, std::vector< Ray< Cfg > > &_rays, const Cfg &_sampledCfg, const bool &_initValidity, const Boundary *const _b, std::pair< size_t, Cfg > &_candidate, const bool &_useOppValidityWitness=true)
Definition: ClearanceUtilities.cpp:416
void SetValidityCheckerLabel(const string &_s)
Definition: ClearanceUtilities.h:112
bool CollisionInfo(Cfg &_cfg, Cfg &_clrCfg, const Boundary *const _b, CDInfo &_cdInfo, const bool &_useOppValidityWitness=true)
Definition: ClearanceUtilities.cpp:146
string m_dmLabel
Distance metric method label.
Definition: ClearanceUtilities.h:272
Robot * m_robot
Definition: ClearanceUtilities.h:310
const string & GetValidityCheckerLabel() const
Definition: ClearanceUtilities.h:108
double m_maSearchResolutionFactor
The search resolution factor.
Definition: ClearanceUtilities.h:303
MPBaseObject::RoadmapType RoadmapType
Definition: ClearanceUtilities.h:56
void MakeRays(const Cfg &_sampledCfg, const std::size_t &_numRays, std::vector< Ray< Cfg > > &_rays)
Definition: ClearanceUtilities.cpp:588
double GetPositionResolution() const
Definition: ClearanceUtilities.h:120
double m_orientationResFactor
The orientation resolution factor.
Definition: ClearanceUtilities.h:301
vector< double > EdgeClearance(const Cfg &_c1, const Cfg &_c2, const WeightType &_weight)
Definition: ClearanceUtilities.cpp:892
bool m_exactClearance
Use exact clearance calculations?
Definition: ClearanceUtilities.h:278
virtual void Print(ostream &_os) const override
Definition: ClearanceUtilities.cpp:95
ClearanceStats PathClearance(vector< VID > &_path)
Definition: ClearanceUtilities.cpp:777
size_t m_maxRayIterations
The maximum number of ray iterations.
Definition: ClearanceUtilities.h:296
double m_maxRayMagnitude
How far out a ray will be attempted.
Definition: ClearanceUtilities.h:294
RoadmapType::VID VID
Definition: ClearanceUtilities.h:57
double GetOrientationResolution() const
Definition: ClearanceUtilities.h:124
size_t m_penetrationRays
Number of rays for approximate penetration.
Definition: ClearanceUtilities.h:282
double m_positionalResFactor
The position resoluiton factor.
Definition: ClearanceUtilities.h:302
ClearanceStats RoadmapClearance()
Definition: ClearanceUtilities.cpp:738
double m_orientationResolution
The orientation resolution.
Definition: ClearanceUtilities.h:289
bool m_positionalDofsOnly
Use only positional dofs?
Definition: ClearanceUtilities.h:276
size_t m_clearanceRays
Number of rays for approximate clearance.
Definition: ClearanceUtilities.h:281
string m_vcLabel
Validity checker method label.
Definition: ClearanceUtilities.h:271
virtual ~ClearanceUtility()=default
double m_rayTickResolution
The resolution for rayTicks.
Definition: ClearanceUtilities.h:287
virtual void Initialize() override
Definition: ClearanceUtilities.cpp:115
bool GetExactClearance() const
Definition: ClearanceUtilities.h:116
bool AdjustWitnessToEnsureValidity(const Cfg &_cfg, const bool _initValidity, Cfg &_witnessCfg, const Boundary *const _b, const bool _useOppValidityWitness=true)
Definition: ClearanceUtilities.cpp:264
bool m_useBBX
Use bounding box as obstacle?
Definition: ClearanceUtilities.h:274
bool m_exactPenetration
Use exact penetration calculations?
Definition: ClearanceUtilities.h:279
MPBaseObject::WeightType WeightType
Definition: ClearanceUtilities.h:55
void SetRobot(Robot *_robot)
Definition: ClearanceUtilities.cpp:941
ClearanceUtility(string _vcLabel="", string _dmLabel="", bool _exactClearance=false, bool _exactPenetration=false, size_t _clearanceRays=10, size_t _penetrationRays=10, double _approxStepSize=MAX_DBL, double _approxResolution=MAX_DBL, bool _useBBX=true, bool _positionalDofsOnly=true, bool _debug=false)
Definition: ClearanceUtilities.cpp:11
Definition: GenericStateGraph.h:67
STAPLGraph::vertex_descriptor VID
Definition: GenericStateGraph.h:83
Definition: MPBaseObject.h:46
Definition: ClearanceUtilities.h:20
double m_pathLength
Definition: ClearanceUtilities.h:26
double m_avg
Definition: ClearanceUtilities.h:21
std::vector< double > m_clearanceAlongPath
Definition: ClearanceUtilities.h:25
double m_var
Definition: ClearanceUtilities.h:24
double m_max
Definition: ClearanceUtilities.h:23
double m_min
Definition: ClearanceUtilities.h:22
Definition: ClearanceUtilities.h:35
CfgType m_tick
Definition: ClearanceUtilities.h:37
Ray(const CfgType &_i, const CfgType &_t)
Definition: ClearanceUtilities.h:39
CfgType m_incr
Definition: ClearanceUtilities.h:36