hpp-core  6.0.0
Implement basic classes for canonical path planning for kinematic chains.
hpp::core::ObstacleUserInterface Class Referenceabstract

#include <hpp/core/obstacle-user.hh>

Inheritance diagram for hpp::core::ObstacleUserInterface:

Public Member Functions

virtual ~ObstacleUserInterface ()=default
 
virtual void addObstacle (const CollisionObjectConstPtr_t &object)=0
 
virtual void removeObstacleFromJoint (const JointPtr_t &joint, const CollisionObjectConstPtr_t &object)=0
 
virtual void filterCollisionPairs (const RelativeMotion::matrix_type &relMotion)=0
 
virtual void setSecurityMargins (const matrix_t &securityMatrix)=0
 
virtual void setSecurityMarginBetweenBodies (const std::string &body_a, const std::string &body_b, const value_type &margin)=0
 

Detailed Description

Abstract class for handling obstacles

Several classes perform collision detection between the bodies of a robot and a set of rigid-body obstacles of the environment.

This class defines a common abstract interface for those classes.

Constructor & Destructor Documentation

◆ ~ObstacleUserInterface()

virtual hpp::core::ObstacleUserInterface::~ObstacleUserInterface ( )
virtualdefault

Member Function Documentation

◆ addObstacle()

virtual void hpp::core::ObstacleUserInterface::addObstacle ( const CollisionObjectConstPtr_t object)
pure virtual

◆ filterCollisionPairs()

virtual void hpp::core::ObstacleUserInterface::filterCollisionPairs ( const RelativeMotion::matrix_type relMotion)
pure virtual

Filter collision pairs.

Remove pairs of object that cannot be in collision. This effectively disables collision detection between objects that have no possible relative motion due to the constraints.

Parameters
relMotionsquare symmetric matrix of RelativeMotionType of size numberDof x numberDof

Implemented in hpp::core::ObstacleUser, hpp::core::ObstacleUserVector< Derived >, hpp::core::ObstacleUserVector< ConfigValidationPtr_t >, hpp::core::ObstacleUserVector< PathValidationPtr_t >, and hpp::core::ContinuousValidation.

◆ removeObstacleFromJoint()

virtual void hpp::core::ObstacleUserInterface::removeObstacleFromJoint ( const JointPtr_t joint,
const CollisionObjectConstPtr_t object 
)
pure virtual

Remove a collision pair between a joint and an obstacle

Parameters
jointthat holds the inner objects,
obstacleto remove.

Implemented in hpp::core::ContinuousValidation, hpp::core::ObstacleUser, hpp::core::ObstacleUserVector< Derived >, hpp::core::ObstacleUserVector< ConfigValidationPtr_t >, and hpp::core::ObstacleUserVector< PathValidationPtr_t >.

◆ setSecurityMarginBetweenBodies()

virtual void hpp::core::ObstacleUserInterface::setSecurityMarginBetweenBodies ( const std::string &  body_a,
const std::string &  body_b,
const value_type margin 
)
pure virtual

Set security margin for collision pair between the two bodies.

See also
coal::CollisionRequest::security_margin.

Implemented in hpp::core::ObstacleUser, hpp::core::ObstacleUserVector< Derived >, hpp::core::ObstacleUserVector< ConfigValidationPtr_t >, hpp::core::ObstacleUserVector< PathValidationPtr_t >, and hpp::core::ContinuousValidation.

◆ setSecurityMargins()

virtual void hpp::core::ObstacleUserInterface::setSecurityMargins ( const matrix_t securityMatrix)
pure virtual

Set different security margins for collision pairs

This function works joint-wise. If you need a finer control, use setSecurityMarginBetweenBodies

This method enables users to choose different security margins for each pair of robot joint or each pair robot joint - obstacle.

See also
coal::CollisionRequest::security_margin.

Implemented in hpp::core::ObstacleUser, hpp::core::ObstacleUserVector< Derived >, hpp::core::ObstacleUserVector< ConfigValidationPtr_t >, hpp::core::ObstacleUserVector< PathValidationPtr_t >, and hpp::core::ContinuousValidation.


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