Simox
2.3.74.0
|
Public Member Functions | |
AdvancedIKSolver (RobotNodeSetPtr rns) | |
Initialize a IK solver without collision detection. More... | |
virtual void | collisionDetection (SceneObjectPtr avoidCollisionsWith) |
virtual void | collisionDetection (ObstaclePtr avoidCollisionsWith) |
virtual void | collisionDetection (SceneObjectSetPtr avoidCollisionsWith) |
virtual void | collisionDetection (CDManagerPtr avoidCollision) |
virtual void | setMaximumError (float maxErrorPositionMM=1.0f, float maxErrorOrientationRad=0.02) |
virtual void | setReachabilityCheck (ReachabilityPtr reachabilitySpace) |
virtual bool | solve (const Eigen::Matrix4f &globalPose, CartesianSelection selection=All, int maxLoops=1)=0 |
virtual std::vector< float > | solveNoRNSUpdate (const Eigen::Matrix4f &globalPose, CartesianSelection selection=All) |
virtual bool | solve (const Eigen::Vector3f &globalPosition) |
virtual GraspPtr | solve (ManipulationObjectPtr object, CartesianSelection selection=All, int maxLoops=1) |
virtual bool | solve (ManipulationObjectPtr object, GraspPtr grasp, CartesianSelection selection=All, int maxLoops=1) |
virtual GraspPtr | sampleSolution (ManipulationObjectPtr object, GraspSetPtr graspSet, CartesianSelection selection=All, bool removeGraspFromSet=false, int maxLoops=1) |
virtual bool | checkReachable (const Eigen::Matrix4f &globalPose) |
RobotNodeSetPtr | getRobotNodeSet () |
RobotNodePtr | getTcp () |
void | setVerbose (bool enable) |
Public Member Functions inherited from VirtualRobot::IKSolver | |
IKSolver () | |
Protected Member Functions | |
virtual bool | _sampleSolution (const Eigen::Matrix4f &globalPose, CartesianSelection selection, int maxLoops=1) |
This method should deliver solution sample out of the set of possible solutions. More... | |
Protected Attributes | |
RobotNodeSetPtr | rns |
RobotNodePtr | tcp |
CDManagerPtr | cdm |
float | maxErrorPositionMM |
float | maxErrorOrientationRad |
ReachabilityPtr | reachabilitySpace |
bool | verbose |
Additional Inherited Members | |
Public Types inherited from VirtualRobot::IKSolver | |
enum | CartesianSelection { X = 1, Y = 2, Z = 4, Position = 7, Orientation = 8, All = 15 } |
Flags for the selection of the target components. More... | |
An advanced IK solver: Can reject configurations that are in collision. Can consider reachability information. Can handle ManipulationObjects and associated grasping information.
VirtualRobot::AdvancedIKSolver::AdvancedIKSolver | ( | RobotNodeSetPtr | rns | ) |
Initialize a IK solver without collision detection.
rns | The robotNodes (i.e., joints) for which the Jacobians should be calculated. |
|
inlineprotectedvirtual |
This method should deliver solution sample out of the set of possible solutions.
Reimplemented in VirtualRobot::GenericIKSolver.
|
virtual |
This method returns true, when no reachability data is specified for this IK solver. If there is an reachability space defined, it is queried weather the pose is within the reachability or not and the result is returned.
|
virtual |
Setup collision detection
avoidCollisionsWith | The IK solver will consider collision checks between rns and avoidCollisionsWith |
|
virtual |
Setup collision detection
avoidCollisionsWith | The IK solver will consider collision checks between rns and avoidCollisionsWith |
|
virtual |
Setup collision detection
avoidCollisionsWith | The IK solver will consider collision checks between rns and avoidCollisionsWith |
|
virtual |
Setup collision detection
avoidCollision | The IK solver will consider collision checks, defined in this CDManager instance. |
VirtualRobot::RobotNodeSetPtr VirtualRobot::AdvancedIKSolver::getRobotNodeSet | ( | ) |
VirtualRobot::RobotNodePtr VirtualRobot::AdvancedIKSolver::getTcp | ( | ) |
|
virtual |
Try to find a solution for grasping the object with the given GraspSet.
|
virtual |
Here, the default values of the maximum allowed error in translation and orientation can be changed.
maxErrorPositionMM | The maximum position error that is allowed, given in millimeter. |
maxErrorOrientationRad | The maximum orientation error that is allowed, given in radian (0.02 is approx 1 degree). |
|
virtual |
When set, the reachability data is used to quickly decide if a given pose or grasp is reachable or not. This option can be enabled by setting the reachability space and it can be disabled by setting an empty ReachabilityPtr.
void VirtualRobot::AdvancedIKSolver::setVerbose | ( | bool | enable | ) |
|
pure virtual |
This method solves the IK up to the specified max error. On success, the joints of the the corresponding RobotNodeSet are set to the IK solution.
globalPose | The target pose given in global coordinate system. |
selection | Select the parts of the global pose that should be used for IK solving. (e.g. you can just consider the position and ignore the target orientation) |
maxLoops | An optional parameter, if multiple tries should be made |
Implemented in VirtualRobot::GenericIKSolver.
|
virtual |
Convenient method to solve IK queries without considering orientations.
|
virtual |
This method solves the IK up to the specified max error. On success, the joints of the the corresponding RobotNodeSet are set to the IK solution.
object | The object. |
selection | Select the parts of the global pose that should be used for IK solving. (e.g. you can just consider the position and ignore the target orientation) |
maxLoops | How many tries. |
Reimplemented in VirtualRobot::GenericIKSolver.
|
virtual |
Reimplemented in VirtualRobot::GenericIKSolver.
|
virtual |
This method solves the IK up to the specified max error. The joints of the robot node set are not updated.
globalPose | The target pose given in global coordinate system. |
selection | Select the parts of the global pose that should be used for IK solving. (e.g. you can just consider the position and ignore the target orientation) |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |