|
hpp-manipulation-corba 6.0.0
Corba server for manipulation planning
|
Public Member Functions | |
| __init__ (self, problemSolver, factory, robotsAndObjects) | |
| computeJoints (self) | |
| computeGrippers (self) | |
| computePossibleContacts (self) | |
| setSecurityMarginBetween (self, obj1, obj2, margin) | |
| getSecurityMarginBetween (self, obj1, obj2) | |
| getActiveConstraintsAlongEdge (self, edge) | |
| apply (self) | |
Public Attributes | |
| ps | |
| robot | |
| factory | |
| robotsAndObjects | |
| marginMatrix | |
| robotToJoints | |
| jointToRobot | |
| gripperToRobot | |
| gripperToJoints | |
| contactSurfaces | |
| possibleContacts | |
| defaultMargin | |
Static Public Attributes | |
| int | defaultMargin = 0 |
| list | separators = ["/"] |
Handles security margins between robots and objects in collision checking
This class sets the requested security margins in \\link
hpp::core::PathValidation PathValidation\\endlink instances of
constraints graph \\link hpp::manipulation::graph::Edges
edges\\endlink.
\\sa 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
\\c defaultMargin.
A given security margin can be set for a pair of robots or objects by calling
method \\link SecurityMargins.setSecurityMarginBetween
\\c setSecurityMarginBetween \\endlink.
Once appropriate margins have been set by the user, method
\\link SecurityMargins.apply \\c apply \\endlink 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
\\li between a pregrasp and grasp configuration the security margin is set to
0 between the gripper and the object to be grasped,
\\li 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.
| manipulation.security_margins.SecurityMargins.__init__ | ( | self, | |
| problemSolver, | |||
| factory, | |||
| robotsAndObjects | |||
| ) |
Constructor
\\param robotsAndObjects list of robots and objects. It is assumed that
joints names are prefixed by these name followed by "/"
| manipulation.security_margins.SecurityMargins.apply | ( | self | ) |
Set security margins between
\\li robot bodies and objects,
\\li robot bodies and environment,
\\li objects and environment,
For each edge, do the following:
\\li set requested security margin between each pair of robots or
objects,
\\li detect grasp and placement constraints that are active sometime along
the edge,
\\li for each active grasp constraint, set security margin to 0 between
joints of the gripper and object,
\\li for each active placement constraint, set security margin to 0
between the placed object and any object or robot that holds a
contact surface.
\\todo take into account environment.
| manipulation.security_margins.SecurityMargins.computeGrippers | ( | self | ) |
| manipulation.security_margins.SecurityMargins.computeJoints | ( | self | ) |
| manipulation.security_margins.SecurityMargins.computePossibleContacts | ( | self | ) |
| manipulation.security_margins.SecurityMargins.getActiveConstraintsAlongEdge | ( | self, | |
| edge | |||
| ) |
Get list of constraints that are active somewhere along the edge The result is a dictionary with - key "place" and value a list of objects, - key "grasp" and value a list of pairs (gripper, object).
| manipulation.security_margins.SecurityMargins.getSecurityMarginBetween | ( | self, | |
| obj1, | |||
| obj2 | |||
| ) |
Get security margin between two robots or objects \\param obj1 name of first robot or object, \\param obj2 name of second robot or object.
| manipulation.security_margins.SecurityMargins.setSecurityMarginBetween | ( | self, | |
| obj1, | |||
| obj2, | |||
| margin | |||
| ) |
Set security margin between two robots or objects \\param obj1 name of first robot or object, \\param obj2 name of second robot or object. \\param margin margin to set between those robots or objects.
| manipulation.security_margins.SecurityMargins.contactSurfaces |
|
static |
| manipulation.security_margins.SecurityMargins.defaultMargin |
| manipulation.security_margins.SecurityMargins.factory |
| manipulation.security_margins.SecurityMargins.gripperToJoints |
| manipulation.security_margins.SecurityMargins.gripperToRobot |
| manipulation.security_margins.SecurityMargins.jointToRobot |
| manipulation.security_margins.SecurityMargins.marginMatrix |
| manipulation.security_margins.SecurityMargins.possibleContacts |
| manipulation.security_margins.SecurityMargins.ps |
| manipulation.security_margins.SecurityMargins.robot |
| manipulation.security_margins.SecurityMargins.robotsAndObjects |
| manipulation.security_margins.SecurityMargins.robotToJoints |
|
static |