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 /ikfast.py --robot=nao.rounded.dae --iktype=translationdirection5d --baselink=1 --eelink=36 --savefile=ikfast61_arm_hand_left.cpp
python /ikfast.py --robot=nao.dae --iktype=transform6d --baselink=1 --eelink=31 --savefile=ikfast61_leg_left.cpp
And I followed the [tutorial](http://docs.ros.org/hydro/api/moveit_ikfast/html/doc/ikfast_tutorial.html) 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 arm_hand_left 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.
↧