hpp-manipulation-corba  4.9.0
Corba server for manipulation planning
manipulation.security_margins.SecurityMargins Class Reference

Handles security margins between robots and objects in collision checking. More...

Inheritance diagram for manipulation.security_margins.SecurityMargins:
Collaboration diagram for manipulation.security_margins.SecurityMargins:

Public Member Functions

def __init__ (self, problemSolver, factory, robotsAndObjects)
 Constructor. More...
 
def computeJoints (self)
 
def computeGrippers (self)
 
def computePossibleContacts (self)
 
def setSecurityMarginBetween (self, obj1, obj2, margin)
 Set security margin between two robots or objects. More...
 
def getSecurityMarginBetween (self, obj1, obj2)
 Get security margin between two robots or objects. More...
 
def getActiveConstraintsAlongEdge (self, edge)
 
def apply (self)
 Set security margins between. More...
 

Public Attributes

 ps
 
 robot
 
 factory
 
 robotsAndObjects
 
 marginMatrix
 
 robotToJoints
 
 jointToRobot
 
 gripperToRobot
 
 gripperToJoints
 
 contactSurfaces
 
 possibleContacts
 

Static Public Attributes

int defaultMargin = 0
 

Detailed Description

Handles security margins between robots and objects in collision checking.

This class sets the requested security margins in PathValidation instances of constraints graph edges.

See also
hpp::core::ObstacleUserInterface::setSecurityMargins

By default the security margin between objects or robots is set to 0 It can be modified by changing the value of the class member defaultMargin.

A given security margin can be set for a pair of robots or objects by calling method setSecurityMarginBetween .

Once appropriate margins have been set by the user, method apply computes and sets for each edge and each pair of bodies security margins as required. However, along edges where two objects are requested to be close to each other, the security margin is set to 0. For instance

  • between a pregrasp and grasp configuration the security margin is set to 0 between the gripper and the object to be grasped,
  • along an edge where an object lies in a stable position the security margin between this object and any object holding a surface over which it could be put is set to 0.

Constructor & Destructor Documentation

◆ __init__()

def manipulation.security_margins.SecurityMargins.__init__ (   self,
  problemSolver,
  factory,
  robotsAndObjects 
)

Constructor.

Parameters
robotsAndObjectslist of robots and objects. It is assumed that joints names are prefixed by these name followed by "/"

Member Function Documentation

◆ apply()

def manipulation.security_margins.SecurityMargins.apply (   self)

Set security margins between.

  • robot bodies and objects,
  • robot bodies and environment,
  • objects and environment,

For each edge, do the following:

  • set requested security margin between each pair of robots or objects,
  • detect grasp and placement constraints that are active sometime along the edge,
  • for each active grasp constraint, set security margin to 0 between joints of the gripper and object,
  • for each active placement constraint, set security margin to 0 between the placed object and any object or robot that holds a contact surface.

◆ computeGrippers()

def manipulation.security_margins.SecurityMargins.computeGrippers (   self)

◆ computeJoints()

def manipulation.security_margins.SecurityMargins.computeJoints (   self)

◆ computePossibleContacts()

def manipulation.security_margins.SecurityMargins.computePossibleContacts (   self)

◆ getActiveConstraintsAlongEdge()

def manipulation.security_margins.SecurityMargins.getActiveConstraintsAlongEdge (   self,
  edge 
)

◆ getSecurityMarginBetween()

def manipulation.security_margins.SecurityMargins.getSecurityMarginBetween (   self,
  obj1,
  obj2 
)

Get security margin between two robots or objects.

Parameters
obj1name of first robot or object,
obj2name of second robot or object.

◆ setSecurityMarginBetween()

def manipulation.security_margins.SecurityMargins.setSecurityMarginBetween (   self,
  obj1,
  obj2,
  margin 
)

Set security margin between two robots or objects.

Parameters
obj1name of first robot or object,
obj2name of second robot or object.
marginmargin to set between those robots or objects.

Member Data Documentation

◆ contactSurfaces

manipulation.security_margins.SecurityMargins.contactSurfaces

◆ defaultMargin

int manipulation.security_margins.SecurityMargins.defaultMargin = 0
static

◆ factory

manipulation.security_margins.SecurityMargins.factory

◆ gripperToJoints

manipulation.security_margins.SecurityMargins.gripperToJoints

◆ gripperToRobot

manipulation.security_margins.SecurityMargins.gripperToRobot

◆ jointToRobot

manipulation.security_margins.SecurityMargins.jointToRobot

◆ marginMatrix

manipulation.security_margins.SecurityMargins.marginMatrix

◆ possibleContacts

manipulation.security_margins.SecurityMargins.possibleContacts

◆ ps

manipulation.security_margins.SecurityMargins.ps

◆ robot

manipulation.security_margins.SecurityMargins.robot

◆ robotsAndObjects

manipulation.security_margins.SecurityMargins.robotsAndObjects

◆ robotToJoints

manipulation.security_margins.SecurityMargins.robotToJoints

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