Running MoveIt! with ikfast and multiple chains [closed]
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 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.
Good question! If you don't get any answers here, try the moveit-users google group.
I posted the question in moveit-users google groups as per your suggestion.