orocos_kinematics_dynamics icon indicating copy to clipboard operation
orocos_kinematics_dynamics copied to clipboard

Question about the computational performance of KDL on redundant kinematic chains

Open zichunxx opened this issue 2 years ago • 1 comments
trafficstars

Hi!

I‘ve been learning to use KDL recently and have some confusion.

KDL is developed based on the jacobian pseudo-inverse and theoretically decreases computational efficiency as the degree of freedom (DOF) of the kinematic chain increases.

However, as the comparison results showed in trac-ik, the performance of KDL on a 15-DOF robot arm is better than that on a 7-DOF Kuka arm.

As I understand it, isn't the inverse of the Jacobian matrix more difficult to solve as the DOF increases?

Thanks! Answers would be appreciated!

zichunxx avatar Nov 22 '22 14:11 zichunxx

It says it in the text: "Note on timings: The timings provided include both successful and unsuccessful runs. When an IK solution is not found, the numerical IK solver implementations will run for the full timeout requested, searching for an answer; thus for robot chains where KDL fails much of the time (e.g., Jaco-2), the KDL times are skewed towards the user requested timeout value (here 5 ms)."

In other words: a test with a low success rate has many unsuccessful runs (at 5 ms) and not many successful ones (e.g. at 0,6ms) so the average will be high.

jrutgeer avatar Dec 13 '22 14:12 jrutgeer

@jrutgeer I certainly know what a low success rate means, but that is not the point of opening this issue.

It should be emphasized that my confusion is why the Jacobian-based method would let KDL present better success rates and faster times on long chains.

As I understood it, isn't the Jacobian matrix calculation in the high-dimensional space more computationally expensive?

Thanks!

zichunxx avatar Dec 14 '22 11:12 zichunxx

@QUIlToT I interpret the table as follows:

KUKA LBR iiwa 14 R820 7 DOF:

  • 38,09% successes at X ms
  • 61,91% misses at 5 ms
  • Average time 3,31ms

--> X = (3,31ms - 5ms * 61,91%) / 38,09% = 0,56 ms

KUKA LWR 4+ 7 DOF:

  • 68,22% successes at X ms
  • 31,78% misses at 5 ms
  • Average time 1,82ms

--> X = (1,82ms - 5ms * 31,78%) / 68,22% = 0,34 ms

NASA Robonaut2 'leg' + waist + arm 15 DOF:

  • 98,42% successes at X ms
  • 1,58% misses at 5 ms
  • Average time 3,31ms

--> X = (3,31ms - 5ms * 61,91%) / 38,09% = 0,60 ms

I don't know why the LBR has a higher avg calculation duration than the LWR (afaik they have similar kinematics) but in any case these results do not seem to contradict that 15DOF would take longer to calculate than 7DOF?

jrutgeer avatar Dec 14 '22 11:12 jrutgeer

@jrutgeer Thanks for your patient explanation.

I mistakenly thought that only successful solutions would be used to calculate the average time.

zichunxx avatar Dec 14 '22 12:12 zichunxx