|
hpp-manipulation-corba
4.12.0
Corba server for manipulation planning
|
Definition of a manipulation planning problem. More...


Public Member Functions | |
| def | __init__ (self, robot) |
| def | selectProblem (self, name) |
| Select a problem by its name. More... | |
| def | getAvailable (self, type) |
| Return a list of available elements of type type. More... | |
| def | getSelected (self, type) |
| Return a list of selected elements of type type. More... | |
Contact surfaces | |
In placement states, objects are in contact with other objects or with the environment through contact surfaces. | |
| def | getEnvironmentContactNames (self) |
| def | getRobotContactNames (self) |
| def | getEnvironmentContact (self, name) |
| def | getRobotContact (self, name) |
Constraints | |
| def | createPlacementConstraints (self, placementName, shapeName, envContactName, width=0.05) |
| Create placement and pre-placement constraints. More... | |
| def | registerConstraints (self, args) |
| def | balanceConstraints (self) |
| Return balance constraints created by method ProblemSolver.createStaticStabilityConstraints. More... | |
| def | getConstantRightHandSide (self, constraintName) |
| Get whether right hand side of a numerical constraint is constant. More... | |
| def | lockFreeFlyerJoint (self, freeflyerBname, lockJointBname, values=(0, 0, 0, 0, 0, 0, 1)) |
| Lock degree of freedom of a FreeFlyer joint. More... | |
| def | lockPlanarJoint (self, jointName, lockJointName, values=(0, 0, 1, 0)) |
| Lock degree of freedom of a planar joint. More... | |
Solve problem and get paths | |
| def | setTargetState (self, stateId) |
| Set the problem target to stateId The planner will look for a path from the init configuration to a configuration in state stateId. More... | |
Definition of a manipulation planning problem.
This class wraps the Corba client to the server implemented by libhpp-manipulation-corba.so
Some method implemented by the server can be considered as private. The goal of this class is to hide them and to expose those that can be considered as public.
| def manipulation.problem_solver.ProblemSolver.__init__ | ( | self, | |
| robot | |||
| ) |
| def manipulation.problem_solver.ProblemSolver.balanceConstraints | ( | self | ) |
Return balance constraints created by method ProblemSolver.createStaticStabilityConstraints.
| def manipulation.problem_solver.ProblemSolver.createPlacementConstraints | ( | self, | |
| placementName, | |||
| shapeName, | |||
| envContactName, | |||
width = 0.05 |
|||
| ) |
Create placement and pre-placement constraints.
| width | set to None to skip creation of pre-placement constraint |
See hpp::corbaserver::manipulation::Problem::createPlacementConstraint and hpp::corbaserver::manipulation::Problem::createPrePlacementConstraint
| def manipulation.problem_solver.ProblemSolver.getAvailable | ( | self, | |
| type | |||
| ) |
Return a list of available elements of type type.
| type | enter "type" to know what types I know of. This is case insensitive. |
| def manipulation.problem_solver.ProblemSolver.getConstantRightHandSide | ( | self, | |
| constraintName | |||
| ) |
Get whether right hand side of a numerical constraint is constant.
| constraintName | Name of the numerical constraint, |
| def manipulation.problem_solver.ProblemSolver.getEnvironmentContact | ( | self, | |
| name | |||
| ) |
Get environment contact from name
A contact surface may be composed of several convex polygons. Let us denote by n the number of polygons.
| name | name of the contact surface |
| indices | sequence of n numbers of vertices one for each polygon, |
| points | sequence of vertices. The number should be the sum of the elements of indices. |
| def manipulation.problem_solver.ProblemSolver.getEnvironmentContactNames | ( | self | ) |
Get names of environment contact surfaces
| def manipulation.problem_solver.ProblemSolver.getRobotContact | ( | self, | |
| name | |||
| ) |
Get robot contact from name
A contact surface may be composed of several convex polygons. Let us denote by n the number of polygons.
| name | name of the contact surface |
| indices | sequence of n numbers of vertices one for each polygon, |
| points | sequence of vertices. The number should be the sum of the elements of indices. |
| def manipulation.problem_solver.ProblemSolver.getRobotContactNames | ( | self | ) |
Get names of environment contact surfaces on robot
| def manipulation.problem_solver.ProblemSolver.getSelected | ( | self, | |
| type | |||
| ) |
Return a list of selected elements of type type.
| type | enter "type" to know what types I know of. This is case insensitive. |
| def manipulation.problem_solver.ProblemSolver.lockFreeFlyerJoint | ( | self, | |
| freeflyerBname, | |||
| lockJointBname, | |||
values = (0,0,0,0,0,0,1) |
|||
| ) |
Lock degree of freedom of a FreeFlyer joint.
| freeflyerBname | base name of the joint (It will be completed by '_xyz' and '_SO3'), |
| lockJointBname | base name of the LockedJoint constraints (It will be completed by '_xyz' and '_SO3'), |
| values | config of the locked joints (7 float) |
| def manipulation.problem_solver.ProblemSolver.lockPlanarJoint | ( | self, | |
| jointName, | |||
| lockJointName, | |||
values = (0,0,1,0) |
|||
| ) |
Lock degree of freedom of a planar joint.
| jointName | name of the joint (It will be completed by '_xy' and '_rz'), |
| lockJointName | name of the LockedJoint constraint |
| values | config of the locked joints (4 float) |
| def manipulation.problem_solver.ProblemSolver.registerConstraints | ( | self, | |
| args | |||
| ) |
Register constraints
| constraint | a numerical constraint partially constraining the (relative) pose of an object or robot body (grasp, placement), |
| complement | the complement constraint, i.e. the constaint that combined with the previous one totally constrains the pose of the object or robot body. |
| both | a constraint (usually explicit) that is equivalent to the combination of the two first parameters. |
Registering constraints enables the numerical solvers to be more efficient. Instead of inserting "constraint" and "complement" in a solver, the graph will insert constraint "both", thus replacing two implicit constraints by an explicit one.
| def manipulation.problem_solver.ProblemSolver.selectProblem | ( | self, | |
| name | |||
| ) |
Select a problem by its name.
If no problem with this name exists, a new hpp::manipulation::ProblemSolver is created and selected.
| name | the problem name. |
| def manipulation.problem_solver.ProblemSolver.setTargetState | ( | self, | |
| stateId | |||
| ) |
Set the problem target to stateId The planner will look for a path from the init configuration to a configuration in state stateId.