ikfast free index setting

146 views
Skip to first unread message

amandlek

unread,
Jul 15, 2017, 4:48:25 PM7/15/17
to MoveIt! Users
My colleagues and I have been trying for quite some time to get IK Fast to build for the Sawyer Arms. We managed to generate the cpp file by writing an "arm only" version of the urdf file and generating a dae file and then rounding it, and then running the following command: 

$ python /usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_0_9/ikfast.py --robot=sawyer_arm_only_rounded.dae --iktype=transform6d --baselink=0 --eelink=11 --freeindex=6 --savefile=sawyer_arm_only_ikfast_solver.cpp 

We then generated an executable (sawyer_arm_only_ik) by compiling the generated cpp file and also used the ikfastdemo.cpp file from the clam_ik package to generate a more friendly version of the executable (demo_sawyer_arm_only_ik) that can do both forward kinematics and inverse kinematics. 

We tried using forward kinematics with all joint angles at 0 using the following command: 

$ ./demo_sawyer_arm_only_ik fk 0 0 0 0 0 0 0 

We then took the resulting translation and quaternion and fed it back into the ik using this command: 

$./demo_sawyer_arm_only_ik ik 1.060888 0.158851 0.315679 -0.453170 0.542325 -0.455611 0.541239 0 

where the last 0 is the value of the free parameter. The executable keeps returning "Failed to get ik solution" no matter what we set the free parameter to. 

When we generated the cpp file, we set the free index to 6 after trying all possible values (this is the only one that worked). We don't know what the free index exactly means - and what value for the free parameter to specify when running the ik executable. We suspect it's something to do with the fact that the Sawyer arm is 7 DOF and only 6 DOF is necessary for control. 

Does anyone have a good understand of the free parameter and how we can get ikfast to work with the Sawyer robot arm? 

Huang Yijiang

unread,
Feb 18, 2018, 11:35:04 AM2/18/18
to MoveIt! Users
A similar problem popped up for me when trying to generate ikfast cpp file for a 6-axis robot + 1 dof linear axis. I posted a more detailed description of the problem on Descartes' github issues [1].

Any comment or suggestion is welcomed!

Thanks,
Y.J.

Reply all
Reply to author
Forward
0 new messages