Provides IK solving methods from VirtualRobot (see Simox). More...

Classes

class  RobotIK
 Refer to RobotIK. More...
 

Detailed Description

Provides IK solving methods from VirtualRobot (see Simox).

RobotIK provides a set of functions that allow computing IKs for any kinematic chain in a robot. This component requires the following properties:

An exemplary IK task and its solution.

Furthermore, there are the following optional properties:

The robot model is required to solve the IK. Some of the provided functionalities require the current robot state, which is retrieved from the robot state component specified in the properties. These functions will only work properly, if the robot model used by the robot state component is identical to the robot model of this component.

The functionalities include:

A reachability space for a kinematic chain allows a fast check whether a TCP pose is reachable. Creating a reachability space, however, is a computational intensive process that should be done offline. You may create a reachability space by calling the respective function or by specifying a path to a folder, ReachabilitySpacesFolder, that contains a set of reachability spaces. If ReachabilitySpacesFolder is specified, each file in the folder is attempted to be loaded as reachability space during initialization.

While this implementation allows parallel access to its interface functions, it is not optimized towards maximizing parallelism. If you need to access this component from a large number of threads/processes and you care about performance, you should consider creating multiple instances of this component or using local instances of the IK solver from Simox instead.

Furthermore, at the beginning of an operation this component synchronizes its internal robot state with that provided by the robot state component. This can lead to invalid IK solutions if the robot state changes while computation is still in progress. For example, imagine you compute an IK solution just for the forearm and the wrist given a global eef pose. If during the computation the configuration of the elbow changes, the computed ik solution will no longer achieve the desired eef pose.

Also see Simox-Tutorial for more information of how to use Simox for IK solving.