Parasol Planning Library (PPL)
ComposeCollision Class Reference

#include <ComposeCollision.h>

Inheritance diagram for ComposeCollision:
Inheritance graph
[legend]
Collaboration diagram for ComposeCollision:
Collaboration graph
[legend]

Public Types

Local Types
enum  LogicalOperator { AND , OR }
 
typedef MPBaseObject::GroupCfgType GroupCfg
 
- Public Types inherited from CollisionDetectionValidityMethod
typedef ValidityCheckerMethod::GroupCfgType GroupCfg
 
- Public Types inherited from ValidityCheckerMethod
typedef MPBaseObject::GroupCfgType GroupCfgType
 
typedef GroupCfgType::Formation Formation
 
- Public Types inherited from MPBaseObject
typedef DefaultWeight< CfgWeightType
 
typedef GenericStateGraph< Cfg, WeightTypeRoadmapType
 
typedef GroupCfg< RoadmapTypeGroupCfgType
 
typedef GroupLocalPlan< RoadmapTypeGroupWeightType
 
typedef GroupRoadmap< GroupCfgType, GroupWeightTypeGroupRoadmapType
 

Public Member Functions

Construction
 ComposeCollision ()
 
 ComposeCollision (XMLNode &_node)
 
virtual ~ComposeCollision ()=default
 
CollisionDetection Interface
virtual bool IsInsideObstacle (const Point3d &_p) override
 
virtual bool IsInsideObstacle (const Point3d &_p, vector< size_t > *_obstIdxs)
 
virtual bool WorkspaceVisibility (const Point3d &_a, const Point3d &_b) override
 
virtual bool IsMultiBodyCollision (CDInfo &_cdInfo, const MultiBody *const _a, const MultiBody *const _b, const std::string &_caller) override
 
- Public Member Functions inherited from CollisionDetectionValidityMethod
 CollisionDetectionValidityMethod ()=default
 
 CollisionDetectionValidityMethod (XMLNode &_node)
 
virtual ~CollisionDetectionValidityMethod ()=default
 
virtual CollisionDetectionMethodGetCDMethod () const noexcept
 
- Public Member Functions inherited from ValidityCheckerMethod
 ValidityCheckerMethod ()=default
 
 ValidityCheckerMethod (XMLNode &_node)
 
virtual ~ValidityCheckerMethod ()=default
 
bool GetValidity () const
 Get the current meaning of "valid" (true is default). More...
 
void ToggleValidity ()
 Switches the meaning of "valid" to "invalid" and vice versa. More...
 
bool IsValid (Cfg &_cfg, CDInfo &_cdInfo, const std::string &_caller)
 
bool IsValid (Cfg &_cfg, const std::string &_caller)
 
bool IsValid (GroupCfgType &_cfg, CDInfo &_cdInfo, const std::string &_caller)
 
bool IsValid (GroupCfgType &_cfg, const std::string &_caller)
 
- Public Member Functions inherited from MPBaseObject
 MPBaseObject (const std::string &_label="", const std::string &_name="", bool _debug=false)
 
 MPBaseObject (XMLNode &_node)
 
virtual ~MPBaseObject ()
 
virtual void Print (std::ostream &_os) const
 
virtual void Initialize ()
 
const std::string & GetName () const
 Get the class name for this object. More...
 
const std::string & GetLabel () const
 Get the unique label for this object. More...
 
std::string GetNameAndLabel () const
 Get the unique string identifier for this object "m_name::m_label". More...
 
void SetLabel (const std::string &)
 Set the unique label for this object. More...
 
void SetMPLibrary (MPLibrary *) noexcept
 Set the owning MPLibrary. More...
 
MPLibraryGetMPLibrary () const noexcept
 Get the owning MPLibrary. More...
 
bool IsRunning () const noexcept
 Check the library's running flag. More...
 
MPProblemGetMPProblem () const noexcept
 Get the library's current MPProblem. More...
 
EnvironmentGetEnvironment () const noexcept
 Get the current environment. More...
 
MPTaskGetTask () const noexcept
 Get the current task. More...
 
GroupTaskGetGroupTask () const noexcept
 Get the current group task. More...
 
MPSolutionTypeGetMPSolution () const noexcept
 
RoadmapTypeGetRoadmap (Robot *const _r=nullptr) const noexcept
 Get the current free-space roadmap. More...
 
GroupRoadmapTypeGetGroupRoadmap (RobotGroup *const _g=nullptr) const noexcept
 Get the current free-space group roadmap. More...
 
RoadmapTypeGetBlockRoadmap (Robot *const _r=nullptr) const noexcept
 Get the current obstacle-space roadmap. More...
 
PathGetPath (Robot *const _r=nullptr) const noexcept
 
GroupPathGetGroupPath (RobotGroup *const _g=nullptr) const noexcept
 Get the current best group path. More...
 
StatClassGetStatClass () const noexcept
 Get the current StatClass. More...
 
LocalObstacleMapGetLocalObstacleMap () const noexcept
 Get the local obstacle map. More...
 

Protected Member Functions

ValidityCheckerMethod Overrides
virtual bool IsValidImpl (Cfg &_cfg, CDInfo &_cdInfo, const std::string &_caller) override
 
virtual bool IsValidImpl (GroupCfg &_cfg, CDInfo &_cdInfo, const std::string &_caller) override
 
Helpers
- Protected Member Functions inherited from MPBaseObject
void SetName (const std::string &_s)
 
const std::string & GetBaseFilename () const
 

Protected Attributes

Internal State
LogicalOperator m_operator
 The logical operator joining CD's. More...
 
std::vector< std::string > m_cdLabels
 The CD labels to combine. More...
 
- Protected Attributes inherited from ValidityCheckerMethod
bool m_validity {true}
 Use standard validity? False indicates negation. More...
 
- Protected Attributes inherited from MPBaseObject
bool m_debug
 Print debug info? More...
 

Detailed Description

Composed collision detector which applies two or more detection conditions.

Member Typedef Documentation

◆ GroupCfg

Member Enumeration Documentation

◆ LogicalOperator

Enumerator
AND 
OR 

Constructor & Destructor Documentation

◆ ComposeCollision() [1/2]

ComposeCollision::ComposeCollision ( )

◆ ComposeCollision() [2/2]

ComposeCollision::ComposeCollision ( XMLNode _node)

◆ ~ComposeCollision()

virtual ComposeCollision::~ComposeCollision ( )
virtualdefault

Member Function Documentation

◆ IsInsideObstacle() [1/2]

bool ComposeCollision::IsInsideObstacle ( const Point3d &  _p)
overridevirtual

Determine whether a workspace point lies inside of an obstacle.

Parameters
_pThe workspace point.
Returns
True if _p is inside an obstacle.

Implements CollisionDetectionValidityMethod.

◆ IsInsideObstacle() [2/2]

bool ComposeCollision::IsInsideObstacle ( const Point3d &  _p,
std::vector< size_t > *  _obstIdxs 
)
virtual

Determine whether a workspace point lies inside of an obstacle from a specific subset of obstacles

Parameters
_pThe workspace point.
_obstIdxsThe indices of the subset of obstacles
Returns
True if _p is inside an obstacle.

Implements CollisionDetectionValidityMethod.

◆ IsMultiBodyCollision()

bool ComposeCollision::IsMultiBodyCollision ( CDInfo _cdInfo,
const MultiBody *const  _a,
const MultiBody *const  _b,
const std::string &  _caller 
)
overridevirtual

Check for collision between two multibodies.

Parameters
_cdInfoCDInfo
_aThe first multibody.
_bThe second multibody.
_callerFunction calling validity checker.
Returns
True if _a and _b collide in their present configurations.

Implements CollisionDetectionValidityMethod.

◆ IsValidImpl() [1/2]

bool ComposeCollision::IsValidImpl ( Cfg _cfg,
CDInfo _cdInfo,
const std::string &  _caller 
)
overrideprotectedvirtual

Implementation of the classification of a configuration to either cfree or cobst.

Parameters
_cfgThe individual configuration.
_cdInfoOutput for extra computed information such as clearance.
_callerName of the calling function.
Returns
True if _cfg is in cfree.

Implements ValidityCheckerMethod.

◆ IsValidImpl() [2/2]

bool ComposeCollision::IsValidImpl ( GroupCfg _cfg,
CDInfo _cdInfo,
const std::string &  _caller 
)
overrideprotectedvirtual

Implementation of group cfg classification.

Parameters
_cfgThe group configuration.
_cdInfoOutput for extra computed information such as clearance.
_callerName of the calling function.
Returns
True if _cfg is in cfree.

Reimplemented from ValidityCheckerMethod.

◆ WorkspaceVisibility()

bool ComposeCollision::WorkspaceVisibility ( const Point3d &  _a,
const Point3d &  _b 
)
overridevirtual

Check if two workspace points are mutually visible.

Parameters
_aThe first point.
_bThe second point.
Returns
True if _a is visible from _b and vice versa.

Implements CollisionDetectionValidityMethod.

Field Documentation

◆ m_cdLabels

std::vector<std::string> ComposeCollision::m_cdLabels
protected

The CD labels to combine.

◆ m_operator

LogicalOperator ComposeCollision::m_operator
protected

The logical operator joining CD's.


The documentation for this class was generated from the following files: