PPL API Reference |
|
---|
Public Member Functions | |
Construction | |
CollisionDetectionValidity () | |
CollisionDetectionValidity (XMLNode &_node) | |
virtual | ~CollisionDetectionValidity () |
CollisionDetection Interface | |
virtual CollisionDetectionMethod * | GetCDMethod () const noexcept override |
virtual bool | IsInsideObstacle (const Point3d &_p) override |
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 |
Validity Accessors | |
bool | GetValidity () const |
Get the current meaning of "valid" (true is default). | |
void | ToggleValidity () |
Switches the meaning of "valid" to "invalid" and vice versa. | |
Individual Configuration Validity | |
bool | IsValid (CfgType &_cfg, CDInfo &_cdInfo, const std::string &_caller) |
bool | IsValid (CfgType &_cfg, const std::string &_caller) |
Group Configuration Validity | |
bool | IsValid (GroupCfgType &_cfg, CDInfo &_cdInfo, const std::string &_caller) |
bool | IsValid (GroupCfgType &_cfg, const std::string &_caller) |
I/O | |
virtual void | Print (std::ostream &_os) const |
Initialization | |
virtual void | Initialize () |
Name and Label Accessors | |
const std::string & | GetName () const |
Get the class name for this object. | |
const std::string & | GetLabel () const |
Get the unique label for this object. | |
std::string | GetNameAndLabel () const |
Get the unique string identifier for this object "m_name::m_label". | |
void | SetLabel (const std::string &) |
Set the unique label for this object. | |
MPLibrary Accessors | |
void | SetMPLibrary (MPLibrary *) noexcept |
Set the owning MPLibrary. | |
MPLibrary * | GetMPLibrary () const noexcept |
Get the owning MPLibrary. | |
bool | IsRunning () const noexcept |
Check the library's running flag. | |
DistanceMetricPointer | GetDistanceMetric (const std::string &) const noexcept |
Get a distance metric by label from the owning MPLibrary. | |
ValidityCheckerPointer | GetValidityChecker (const std::string &) const noexcept |
Get a validity checker by label from the owning MPLibrary. | |
NeighborhoodFinderPointer | GetNeighborhoodFinder (const std::string &) const noexcept |
Get a neighborhood finder by label from the owning MPLibrary. | |
SamplerPointer | GetSampler (const std::string &) const noexcept |
Get a sampler by label from the owning MPLibrary. | |
LocalPlannerPointer | GetLocalPlanner (const std::string &) const noexcept |
Get a local planner by label from the owning MPLibrary. | |
ExtenderPointer | GetExtender (const std::string &) const noexcept |
Get an extender by label from the owning MPLibrary. | |
PathModifierPointer | GetPathModifier (const std::string &) const noexcept |
Get a path modifier by label from the owning MPLibrary. | |
ConnectorPointer | GetConnector (const std::string &) const noexcept |
Get a connector by label from the owning MPLibrary. | |
MetricPointer | GetMetric (const std::string &) const noexcept |
Get a metric by label from the owning MPLibrary. | |
MapEvaluatorPointer | GetMapEvaluator (const std::string &) const noexcept |
Get a map evaluator by label from the owning MPLibrary. | |
MPStrategyPointer | GetMPStrategy (const std::string &) const noexcept |
Get a strategy by label from the owning MPLibrary. | |
MPTraits::MPTools * | GetMPTools () const noexcept |
Get the MPTools container from the owning MPLibrary. | |
Problem Accessors | |
MPProblem * | GetMPProblem () const noexcept |
Get the library's current MPProblem. | |
Environment * | GetEnvironment () const noexcept |
Get the current environment. | |
MPTask * | GetTask () const noexcept |
Get the current task. | |
GroupTask * | GetGroupTask () const noexcept |
Get the current group task. | |
Solution Accessors | |
MPSolution * | GetMPSolution () const noexcept |
RoadmapType * | GetRoadmap (Robot *const _r=nullptr) const noexcept |
Get the current free-space roadmap. | |
GroupRoadmapType * | GetGroupRoadmap (RobotGroup *const _g=nullptr) const noexcept |
Get the current free-space group roadmap. | |
RoadmapType * | GetBlockRoadmap (Robot *const _r=nullptr) const noexcept |
Get the current obstacle-space roadmap. | |
Path * | GetPath (Robot *const _r=nullptr) const noexcept |
Get the current best path. | |
GroupPath * | GetGroupPath (RobotGroup *const _g=nullptr) const noexcept |
Get the current best group path. | |
StatClass * | GetStatClass () const noexcept |
Get the current StatClass. | |
LocalObstacleMap * | GetLocalObstacleMap () const noexcept |
Get the local obstacle map. | |
GoalTracker * | GetGoalTracker () const noexcept |
Get the goal tracker. | |
Public Types | |
Local Types | |
typedef MPTraits::CfgType | CfgType |
typedef MPTraits::GroupCfgType | GroupCfg |
typedef GroupCfg::Formation | Formation |
Motion Planning Types | |
typedef MPTraits::GroupCfgType | GroupCfgType |
Local Types | |
typedef MPTraits::RoadmapType | RoadmapType |
typedef MPTraits::GroupRoadmapType | GroupRoadmapType |
typedef MPTraits::LocalObstacleMap | LocalObstacleMap |
typedef MPTraits::Path | Path |
typedef MPTraits::GroupPathType | GroupPath |
typedef MPTraits::MPLibrary | MPLibrary |
typedef MPTraits::MPSolution | MPSolution |
typedef MPTraits::GoalTracker | GoalTracker |
typedef MPLibrary::SamplerPointer | SamplerPointer |
typedef MPLibrary::LocalPlannerPointer | LocalPlannerPointer |
typedef MPLibrary::ExtenderPointer | ExtenderPointer |
typedef MPLibrary::PathModifierPointer | PathModifierPointer |
typedef MPLibrary::ConnectorPointer | ConnectorPointer |
typedef MPLibrary::MetricPointer | MetricPointer |
typedef MPLibrary::MapEvaluatorPointer | MapEvaluatorPointer |
typedef MPLibrary::MPStrategyPointer | MPStrategyPointer |
typedef MPLibrary::DistanceMetricPointer | DistanceMetricPointer |
typedef MPLibrary::ValidityCheckerPointer | ValidityCheckerPointer |
typedef MPLibrary::NeighborhoodFinderPointer | NeighborhoodFinderPointer |
Protected Member Functions | |
void | SetName (const std::string &_s) |
const std::string & | GetBaseFilename () const |
ValidityCheckerMethod Overrides | |
virtual bool | IsValidImpl (CfgType &_cfg, CDInfo &_cdInfo, const std::string &_caller) override |
virtual bool | IsValidImpl (GroupCfg &_cfg, CDInfo &_cdInfo, const std::string &_caller) override |
Helpers | |
virtual bool | IsInCollision (CDInfo &_cdInfo, const CfgType &_cfg, const std::string &_caller) |
virtual bool | IsInCollision (CDInfo &_cdInfo, const GroupCfg &_cfg, const std::string &_caller) |
virtual bool | IsInSelfCollision (CDInfo &_cdInfo, const MultiBody *const _multibody, const std::string &_caller) |
virtual bool | IsInBoundaryCollision (CDInfo &_cdInfo, const CfgType &_cfg) |
virtual bool | IsInObstacleCollision (CDInfo &_cdInfo, const MultiBody *const _multibody, const std::string &_caller) |
virtual bool | IsInInterRobotCollision (CDInfo &_cdInfo, Robot *const _robot, const std::vector< Robot * > &_robots, const std::string &_caller) |
Protected Attributes | |
bool | m_debug |
Print debug info? | |
Internal State | |
std::unique_ptr< CollisionDetectionMethod > | m_cdMethod |
< Underlying collision detection object. | |
bool | m_ignoreSelfCollision {false} |
Check self collisions. | |
bool | m_interRobotCollision {false} |
Check inter-robot collisions. | |
bool | m_ignoreAdjacentLinks {false} |
Ignore adj links in self collisions. | |
bool | m_ignoreSiblingCollisions {false} |
Ignore sibling links in self collisions. | |
Internal State | |
bool | m_validity {true} |
Use standard validity? False indicates negation. | |
Classifies validity based on collisions with other objects in the workspace.
There are three types of collision that can occur: 1. Self collision. Two or more pieces of the robot's geometry are overlapping in workspace. 2. Obstacle collision. The robot's geometry overlaps with some workspace obstacle. 3. Inter-robot collision. The robot's geometry overlaps with some other robot in its current configuration. For group configurations, collisions between robots within the group are considered as self-collisions, while collisions with robots not in the group are classified as inter-robot collisions. This distinction is made because considering self-collisions usually means that we want (group) configurations which are valid without considering the obstacles and other robots.
Any robot can be omitted from the collision checks by setting it as virtual. When collision checking a virtual robot, other robots are also ignored.
|
overridevirtualnoexcept |
Reimplemented from CollisionDetectionValidityMethod< MPTraits >.
|
overridevirtual |
Determine whether a workspace point lies inside of an obstacle.
_p | The workspace point. |
Implements CollisionDetectionValidityMethod< MPTraits >.
|
overridevirtual |
Check if two workspace points are mutually visible.
_a | The first point. |
_b | The second point. |
Implements CollisionDetectionValidityMethod< MPTraits >.
|
overridevirtual |
Check for collision between two multibodies.
_cdInfo | CDInfo |
_a | The first multibody. |
_b | The second multibody. |
_caller | Function calling validity checker. |
Implements CollisionDetectionValidityMethod< MPTraits >.
|
overrideprotectedvirtual |
Implementation of the classification of a configuration to either cfree or cobst.
_cfg | The individual configuration. |
_cdInfo | Output for extra computed information such as clearance. |
_caller | Name of the calling function. |
Implements ValidityCheckerMethod< MPTraits >.
|
overrideprotectedvirtual |
Implementation of group cfg classification.
_cfg | The group configuration. |
_cdInfo | Output for extra computed information such as clearance. |
_caller | Name of the calling function. |
Reimplemented from ValidityCheckerMethod< MPTraits >.
|
protectedvirtual |
Orchestrate collision computation between robot and environment multibodies
_cdInfo | Output for collision detection info. |
_cfg | Configuration of interest. |
_caller | Name of the calling function. |
|
protectedvirtual |
Orchestrate collision computation between robots in a group cfg and environment multibodies
_cdInfo | Output for collision detection info. |
_cfg | Group configuration of interest. |
_caller | Name of the calling function. |
|
protectedvirtual |
Check if any of the robot's bodies are in collision with each other.
_cdInfo | Output for collision detection info. It will only be updated if the detected collision is closer than the previous. |
_multibody | The robot's MultiBody. |
_caller | Name of the calling function. |
|
protectedvirtual |
Check if any of the robot's bodies are in collision with or outside the environment boundary.
_cdInfo | Output for collision detection info. It will only be updated if the detected collision is closer than the previous. |
_cfg | The robot configuration. |
|
protectedvirtual |
Check if any of the robot's bodies are in collision with an obstacle.
_cdInfo | Output for collision detection info. It will only be updated if the detected collision is closer than the previous. |
_multibody | The robot's MultiBody. |
_caller | Name of the calling function. |
|
protectedvirtual |
Check for a collision between a query robot and a specific set of other robots.
_robot | The query robot. |
_robots | The other robots. |
_caller | Name of the calling function. |
|
inherited |
Classify a configuration to either cfree or cobst.
_cfg | The individual configuration. |
_cdInfo | Output for extra computed information such as clearance. |
_caller | Name of the calling function. |
|
inherited |
This version does not return extra information. This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
inherited |
Classify a gropu configuration to either cfree or cobst.
_cfg | The group configuration. |
_cdInfo | Output for extra computed information such as clearance. |
_caller | Name of the calling function. |
|
inherited |
This version does not return extra information. This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
virtualinherited |
Print internal state of this object.
_os | The std::ostream to print to. |
Reimplemented in ConditionalEvaluator< MPTraits >, PrintMapEvaluation< MPTraits >, MinkowskiDistance< MPTraits >, AdaptiveRRT< MPTraits >, BasicRRTStrategy< MPTraits >, CCsConnector< MPTraits >, ConnectorMethod< MPTraits >, NeighborhoodConnector< MPTraits >, BasicExtender< MPTraits >, ExtenderMethod< MPTraits >, LocalPlannerMethod< MPTraits >, StraightLine< MPTraits >, ComposeEvaluator< MPTraits >, LazyQuery< MPTraits >, QueryMethod< MPTraits >, SIPPMethod< MPTraits >, BasicPRM< MPTraits >, GroupDecoupledStrategy< MPTraits >, MPStrategyMethod< MPTraits >, TogglePRMStrategy< MPTraits >, BruteForceNF< MPTraits >, NeighborhoodFinderMethod< MPTraits >, and UniformRandomSampler< MPTraits >.
|
virtualinherited |
Initialize this object for the current MPProblem. This should reset any internal state of the algorithms so that they are ready for execution. It is also the place to initialize any state that depends on the current problem.
Reimplemented in ConnectorMethod< MPTraits >, CBSQuery< MPTraits >, ComposeEvaluator< MPTraits >, LazyQuery< MPTraits >, QueryMethod< MPTraits >, SIPPMethod< MPTraits >, TimeEvaluator< MPTraits >, TimeMetric< MPTraits >, AdaptiveRRT< MPTraits >, BasicPRM< MPTraits >, BasicRRTStrategy< MPTraits >, TogglePRMStrategy< MPTraits >, ValidationStrategy< MPTraits >, LKHSearch< MPTraits >, ClearanceUtility< MPTraits >, ReachabilityUtil< MPTraits >, SafeIntervalTool< MPTraits >, and TopologicalMap< MPTraits >.
|
protectedinherited |
_s | Class name |
|
protectedinherited |