hpp-manipulation-corba
4.14.0
Corba server for manipulation planning
|
Public Member Functions | |
def | __init__ (self, problemSolver, factory, robotsAndObjects) |
def | computeJoints (self) |
def | computeGrippers (self) |
def | computePossibleContacts (self) |
def | setSecurityMarginBetween (self, obj1, obj2, margin) |
def | getSecurityMarginBetween (self, obj1, obj2) |
def | getActiveConstraintsAlongEdge (self, edge) |
def | apply (self) |
Public Attributes | |
ps | |
robot | |
factory | |
robotsAndObjects | |
marginMatrix | |
robotToJoints | |
jointToRobot | |
gripperToRobot | |
gripperToJoints | |
contactSurfaces | |
possibleContacts | |
Static Public Attributes | |
int | defaultMargin = 0 |
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.
def 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 "/"
def 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.
def manipulation.security_margins.SecurityMargins.computeGrippers | ( | self | ) |
def manipulation.security_margins.SecurityMargins.computeJoints | ( | self | ) |
def manipulation.security_margins.SecurityMargins.computePossibleContacts | ( | self | ) |
def 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).
def 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.
def 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.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 |