Robotics StackExchange | Archived questions

Running MoveIt! with ikfast and multiple chains

I am working with the Nao and I am trying to solve IK for both arm and leg chains. However, the arm chain is 5 DOF and the leg chain is 6DOF.

I created the ikfast cpp files with:

python <path.to.openrave>/ikfast.py --robot=nao.rounded.dae --iktype=translationdirection5d --baselink=1 --eelink=36 --savefile=ikfast61_arm_hand_left.cpp

python <path.to.openrave>/ikfast.py --robot=nao.dae --iktype=transform6d --baselink=1 --eelink=31 --savefile=ikfast61_leg_left.cpp

And I followed the tutorial to create packages for each of these files.

Following the tutorial I then updated the kinematics.yaml file to use the appropriate IK solver. Unfortunately, I am getting the following error:

[FATAL] [1424148885.652745676]: Joint numbers mismatch: URDF has 5 and IKFast has 6
[ERROR] [1424148885.653162764]: Kinematics solver of type 'nao_arm_hand_left_kinematics/IKFastKinematicsPlugin' could not be initialized for group 'arm_hand_left'
[ERROR] [1424148885.653337514]: Kinematics solver could not be instantiated for joint group arm_hand_left.

However, I do not get this error if I am ONLY using the ikfast solver for the armhandleft group and use the default KDL solver for the leg (without having to recompile the solution).

So the problem seems to be with mixing iktype translationdirection5d and transform6d within the same URDF during runtime. But it doesn't really make sense to me.

Has by any chance anybody else seen this issue and knows how to fix it? Or maybe know of a workaround? Any help would be appreciated.

Asked by evenmarbles on 2015-02-17 00:14:13 UTC

Comments

Good question! If you don't get any answers here, try the moveit-users google group.

Asked by Martin Günther on 2015-02-17 04:59:20 UTC

I posted the question in moveit-users google groups as per your suggestion.

Asked by evenmarbles on 2015-02-17 23:33:53 UTC

Answers