URDF - IKfast joint mismatch
Hello,
I am trying to setup IKfast on my robot, it all seems to go well until attempting to run demo.launch from the moveit_config package. When moveit! loads the IKfast kinematics solver there is a fatal error:
[FATAL] Joint numbers mismatch: URDF has 7 and IKFast has 6
My URDF has a mimic joint in it, I think this is the root of the problem. I am wondering if there is a work around? I have tried several variations of including the mimic joint in the moveit! planning group or not:
Here is what my IKfast set-up was :
~/harvester_7_axis/src/harvester_description/urdf$ openrave-robot.py
name index parents
---------------------------------------
world 0
base_link 1 world
bed_link0 2 base_link
carrage_link0 3 bed_link0
gantry_link0 4 carrage_link0
gantry_link1 5 gantry_link0
arm_link0 6 gantry_link1
arm_link1 7 arm_link0
arm_link2 8 arm_link1
arm_link3 9 arm_link2
arm_link4 10 arm_link3
aa_tool_flange_link 11 arm_link4
---------------------------------------
~/harvester_7_axis/src/harvester_description/urdf$ export BASE_LINK="0"
~/harvester_7_axis/src/harvester_description/urdf$ export EEF_LINK="10"
Here is the .dae joint info incase you want it:
~/harvester_7_axis/src/harvester_description/urdf$ openrave-robot.py "$MYROBOT_NAME".dae --info joints
name joint_index dof_index parent_link child_link mimic
----------------------------------------------------------------------------------------
gantry_joint_0 0 0 carrage_link0 gantry_link0
gantry_joint_1 1 1 gantry_link0 gantry_link1
arm_joint_0 2 2 gantry_link1 arm_link0
arm_joint_2 3 3 arm_link1 arm_link2
arm_joint_3 4 4 arm_link2 arm_link3
arm_joint_4 5 5 arm_link3 arm_link4
fixed -1 -1 world base_link
bed_joint_0 -1 -1 base_link bed_link0
carrage_joint_0 -1 -1 bed_link0 carrage_link0
arm_joint_1 -1 -1 arm_link0 arm_link1 arm_joint_0
aa_tool_flange_joint -1 -1 arm_link4 aa_tool_flange_link
----------------------------------------------------------------------------------------
name joint_index dof_index parent_link child_link mimic
I used the following code to create the IKfast.cpp file:
export IKFAST_OUTPUT_PATH=`pwd`/ikfast61_"$PLANNING_GROUP".cpp
python `openrave-config --python-dir`/openravepy/_openravepy_/ikfast.py --robot="$MYROBOT_NAME".dae --iktype=transform6d --baselink="$BASE_LINK" --eelink="$EEF_LINK" --savefile="$IKFAST_OUTPUT_PATH"
Any help with how to solve my issue would be much appreciated, thanks for your help in advance.
P.S. if you need anymore information that can help just ask :D
Just to satisfy my own curiousity: a picture of your robot :). Its name is "harvester" and from the output of
--info joints
it appears to be a regular 6 axis mounted on a gantry.What is this harvesting ? :)
Thanks for the fast reply, but that's not really the information I meant...
...
In any case: rdiankov/openrave#154 from 2012 appears to have not been resolved. Might want to ask what the status of mimic joints is there.
Probably supported, as evidenced by this github search.
Yes, IKfast does support mimic joints. But the problem is that moveit! thinks the URDF is 7 joints (so its including the mimic joint in its joint count) and IKfast solution is 6 joints (so does not include its mimic joint in the joint count). but im not sure how to bypass this fatal error :S