Release: 62
Inverse kinematics statistics using IKFast: The Robot Kinematics Compiler. All possible permutations of the supported inverse kinematics types and the robot manipulators are tested.
There are four different ways of calling the IK solver:
The following algorithm tests these four calls by:
For every end effector parameterization and a returned solution, set the returned solution on the robot and compute the error between the original end effector and the new end effector. If the error is greater than 0.001000, then the IK is wrong and the iteration is a failure. If no wrong solutions were returned and at least one correct IK solution is found within limits, then the iteration is a success. When the free values are not specified, the IK solver will discretize the range of the freevalues and test with all possible combinations [1].
The number of tests is determined by the number of free parameters: 0 free - 10000 tests, 1 free - 4000 tests, 2 free - 200 tests
Four values are extracted to measure the performance of a generated IK solver:
An IK is successful if the wrong rate is 0, success rate is > 0.400000, and the no solution rate is < 0.600000. The raw function call run-time is also recorded.
Degenerate configurations can frequently occur when the robot axes align, this produces a lot of divide by zero conditions inside the IK. In order to check all such code paths, the configuration sampler common tests angles 0, pi/2, pi, and -pi/2.
[1] | The discretization of the free joint values depends on the robot manipulator and is given in each individual manipulator page. |