Struggling to get ikfast to work

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view

Struggling to get ikfast to work

Sietse Achterop
 Dear List,
I am trying to get ikfast to work, but I really am struggling to get it to work.
I have a 5DOF arm that does not seem to work with ikfast,
I tried several versions of openrave but it never works.
And the error messages are different each time.
The dae files can be found at
The command I use is
   python `openrave-config --python-dir`/openravepy/_openravepy_/ --robot=smart_arm_robot_rounded.dae --iktype=translationdirection5d --baselink=2 --eelink=7 --savefile=ikfast_test.c

The my_robot.* files are a simplified version of the smart_arm version

The question is:what version of openrave on what platform should I use.
In some situations I get it to work with 3DOF transformations with a part of the chain.
And in all situations I can see a visualisation using
   openrave smart_arm_robot_rounded.dae
So I assume that my dae file is ok. Is that a correct assumption?

I tried the following scenarios:
  - on (virtual) ubuntu 12.04 with openrave from the repository
  -     the same, but with openrave from source using both latest_stable and master
  - on ubuntu 14.04 with openrave from source using both versions.
  -     the same but now with updated versions of numpy and friends
  - on current Debian testing, from source in both versions

Hopefully someone can tell me where to focus my efforts, I really have to get this working!

  Thanks in advance,

PS: I want to use the generated code in Moveit!

Reply | Threaded
Open this post in threaded view

Re: Struggling to get ikfast to work

Shawn Schaerer
Hi Sietse,

I am having the same issues as you and cannot generate an IKFast solution for my 5DOF robot.
I took my URDF and converted it to collada, then ran  no matter what I do I cannot generate a solution.

Right now I am looking at doing two things,
1.) building my robot directly in openrave and then generating the IKFast solution for it
2.  Changing the kinematics of my robot to see if it helps (changing joint offsets,etc)

It would be great to get feedback from this group on 5DOF robots.
Reply | Threaded
Open this post in threaded view

Re: Struggling to get ikfast to work

Sietse Achterop
In reply to this post by Sietse Achterop
After half a year I'm trying again to get ikfast to work with my 5DOF arm.
I again installed all from scratch, but still get errors with the .dae file mentione.
The output now ends in:

INFO: not unique: (Poly((31961259*px/40000087709 + 40000074940*py/40000087709)*cj1*cj2 + (40000074940*px/40000087709 - 31961259*py/40000087709)*cj1*sj2 + (-40000074940*px/40000087709 + 31961259*py/40000087709)*sj1*cj2 + (31961259*px/40000087709 + 40000074940*py/40000087709)*sj1*sj2 - 145200316432109841/800001754180000000*cj2 + 947787912373/2000004385450000000*sj2, cj1, sj1, cj2, sj2, htj3, domain='QQ[px,py]'), Poly(83/2000*cj4 - 7/400*sj4 + 7/50, cj4, sj4, htj3, domain='QQ'))
INFO: reducing 3 equations
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/", line 9521, in <module>
    chaintree = solver.generateIkSolver(options.baselink,options.eelink,options.freeindices,solvefn=solvefn)
  File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/", line 2281, in generateIkSolver
    chaintree = solvefn(self, LinksRaw, jointvars, isolvejointvars)
  File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/", line 2796, in solveFullIK_TranslationDirection5D
    coupledsolutions,usedvars = solvemethod(rawpolyeqs2[index],newsolvejointvars,endbranchtree=[AST.SolverSequence([endbranchtree2])], AllEquationsExtra=AllEquations)
  File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/", line 5226, in solveLiWoernleHiller
    hassinglevariable |= any([all([__builtin__.sum(monom)==monom[i] for monom in newpeq.monoms()]) for i in range(3)])
IndexError: tuple index out of range

I would appreciate it VERY much if someone could give me a pointer or try my dae-file  on

Reply | Threaded
Open this post in threaded view

Re: Struggling to get ikfast to work


Did you manage to find any solution? I am having trouble with the 5 dof system as well.

One thing that worked for me was to modify the URDF file to remove the STL or the meshes in the visual and collision tags, though keeping the joints origin and axes same. This is just a work around, but i would still like to solve the entire thing.

Please let me know if you find something.