ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Ikfast computation time

asked 2015-09-05 18:01:32 -0500

vinjk gravatar image

The average time calculation in Says milliseconds but it seems to me it should be microseconds.

Shouldn't it be microseconds? Can anyone clarify this for me?

edit retag flag offensive close merge delete


As this is purely an OpenRave/IKFast question, I think you'd better ask this on openrave-users (which I believe you already found).

As to your code: it is really old (2012), so it might be that in newer versions it has changed.

gvdhoorn gravatar image gvdhoorn  ( 2015-09-06 00:59:32 -0500 )edit

Hi gvdhoorn, I posted the question here because this code was given in ROS wiki

Do you know where I can find the latest version?

vinjk gravatar image vinjk  ( 2015-09-06 04:35:42 -0500 )edit

That still doesn't make it a ROS problem. All that code was generated by OpenRave scripts, not ROS.

Do you know where I can find the latest version?

In more recent OpenRave distributions, I'd guess.

gvdhoorn gravatar image gvdhoorn  ( 2015-09-06 05:14:33 -0500 )edit


vinjk gravatar image vinjk  ( 2015-09-06 06:07:21 -0500 )edit

2 Answers

Sort by ยป oldest newest most voted

answered 2015-09-07 01:45:57 -0500

Note OpenRAVE still is maintained and actively developed, but moved to github some time ago ( ). What is true is that there hasn't been a official release for some time, however.

How much time ikfast computation takes is highly dependent on the kinematics of your manipulator. There are cases where computation takes few microseconds (typically 6DOF arm, nicely intersecting axes) and cases where it takes a few milliseconds (dealing with complicated kinematics, more or less than exactly 6DOF). In the "hard" cases, the success rate often is lower, too (or the ikfast generator fails to generate a solution at all). These are rules of thumb however, you really have to test this for the kinematics you're looking at to be sure.

edit flag offensive delete link more

answered 2015-09-06 09:45:41 -0500

updated 2015-09-12 18:16:30 -0500

OpenRave is not being actively developed anymore, as far as I know. The latest release is 0.8.2 which is 3 years old. Nevertheless, official Wiki on IKFast states:

The closed-form code generated by ikfast can produce solutions on the order of ~4 microseconds! As a comparison, most numerical solutions are on the order of 10 milliseconds (assuming good convergence).

Also, I have done some tests about a year ago both on x86 (Intel i7, 4 cores + HT) and on ARM (Xilinx Zynq 7000, 2 cores). Kinematics model is a typical 6-DOF KUKA and IKFast solver is Transform6D. So the figures were as follows:


-- Forward kinematics
Overall time: 54570 us
Samples: 300000
Min: 0 us
Max: 72 us
Avg: 0 us

-- Inverse kinematics
Overall time: 3146303 us
Samples: 300000
Min: 2 us
Max: 78 us
Avg: 10 us

Xilinx Zynq:

-- Forward kinematics
Overall time: 1152121 us
Samples: 300000
Min: 3 us
Max: 93 us
Avg: 3 us

-- Inverse kinematics
Overall time: 24644975 us
Samples: 300000
Min: 40 us
Max: 831 us
Avg: 82 us

The zeros in results for x86 are due to rounding.

These test were done to get a rough idea on timing/latencies distribution for real-time control. I also have somewhere the data for Xilinx Zynq with Xenomai patched kernel, so if you are interested I will try to find it.

Here is also timing distribution for IK on Zynq without Xenomai:

image description

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2015-09-05 18:01:32 -0500

Seen: 583 times

Last updated: Sep 12 '15