ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

openrave fails to generate IK solver

asked 2014-06-16 14:21:13 -0500

airplanesrule gravatar image

I have been following the instructions here: http://moveit.ros.org/wiki/Kinematics... for generating an ikfast moveit plugin for a ur5. I had to use a pre-made collada file from here: https://github.com/rdiankov/collada_r... and renamed it to the appropriate filename. I got to the step where i attempt to use this command:

python `openrave0.9-config --python-dir`/openravepy/_openravepy_0_9/ikfast.py --robot=ur5round.dae --iktype=transform6d --baselink=1 --eelink=6 --savefile=ikfast61_manipulator.cpp

it appears as though it begins to work, but it fails shortly after. Here is the terminal output:

INFO: moved translation Matrix([[0, 0, 19/400]]) to right end
INFO: moved translation Matrix([[0, 0, 1197/10000]]) to left end
INFO: moved translation on intersecting axis Matrix([[0, 0, 0]]) to left
INFO: [[1, 0, 0, 0],[0, 0, 1, -2/125],[0, -1, 0, 0]]
INFO: [[cos(j1), -sin(j1), 0, 0],[sin(j1), cos(j1), 0, 0],[0, 0, 1, 0]]
INFO: [[-1, 0, 0, 0],[0, -1, 0, 17/40],[0, 0, 1, 0]]
INFO: [[cos(j2), -sin(j2), 0, 0],[sin(j2), cos(j2), 0, 0],[0, 0, 1, 0]]
INFO: [[0, -1, 0, 0],[1, 0, 0, -39243/100000],[0, 0, 1, -93/1000]]
INFO: [[cos(j3), -sin(j3), 0, 0],[sin(j3), cos(j3), 0, 0],[0, 0, 1, 0]]
INFO: [[0, -1, 0, 0],[0, 0, -1, 93/1000],[1, 0, 0, 0]]
INFO: [[cos(j4), -sin(j4), 0, 0],[sin(j4), cos(j4), 0, 0],[0, 0, 1, 0]]
INFO: [[0, 0, -1, 0],[0, 1, 0, 0],[1, 0, 0, 0]]
INFO: [[cos(j5), -sin(j5), 0, 0],[sin(j5), cos(j5), 0, 0],[0, 0, 1, 0]]
INFO: [[0, -1, 0, 0],[0, 0, -1, 0],[1, 0, 0, 19/400]]
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/openravepy/_openravepy_0_9/ikfast.py", line 7478, in <module>
    chaintree = solver.generateIkSolver(options.baselink,options.eelink,options.freeindices,solvefn=solvefn)
  File "/usr/lib/python2.7/dist-packages/openravepy/_openravepy_0_9/ikfast.py", line 1836, in generateIkSolver
    chaintree = solvefn(self, LinksRaw, jointvars, isolvejointvars)
  File "/usr/lib/python2.7/dist-packages/openravepy/_openravepy_0_9/ikfast.py", line 2306, in solveFullIK_6D
    self.testconsistentvalues = self.ComputeConsistentValues(jointvars,self.Tfinal,numsolutions=4)
  File "/usr/lib/python2.7/dist-packages/openravepy/_openravepy_0_9/ikfast.py", line 1885, in ComputeConsistentValues
    psubs.append((s,v.subs(psubs)))
  File "/usr/local/lib/python2.7/dist-packages/sympy/core/basic.py", line 976, in subs
    rv = rv._subs(old, new, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/sympy/core/cache.py", line 93, in wrapper
    r = func(*args, **kw_args)
  File "/usr/local/lib/python2.7/dist-packages/sympy/core/basic.py", line 1090, in _subs
    rv = fallback(self, old, new)
  File "/usr/local/lib/python2.7/dist-packages/sympy/core/basic.py", line 1062, in fallback
    arg = arg._subs(old, new, **hints)
  File "/usr/local/lib/python2.7/dist-packages/sympy/core/cache.py", line 93, in wrapper
    r = func(*args, **kw_args)
  File "/usr/local/lib/python2.7/dist-packages/sympy/core/basic ...
(more)
edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
0

answered 2014-06-19 15:38:52 -0500

airplanesrule gravatar image

I retried the same command with --baselink=0 instead of --baselink=1 after re-installing openrave0.9 from source instead of the 13.04 beta repository and it now functions properly.

edit flag offensive delete link more
1

answered 2014-06-17 03:50:47 -0500

gvdhoorn gravatar image

I've not seen this particular error come up when generating plugins for my own urdfs, but thought I'd might describe how I got openrave (0.8 in my case) to cooperate.

I first embedded the model in a manipulator element in a robot. I used this post to the OpenRave mailing list for inspiration, in combination with the OpenRave XML specification.

As we now have a proper robot (instead of just a dae), we can now use the following command line (change to your specific version of openrave.py):

openrave0.8.py --database inversekinematics --robot=/path/to/collada_file_with_manipulator.xml --iktype=YOUR-IK-TYPE --iktests=100

I'm in no way an expert on IKFast or OpenRave, but in almost all cases where the direct invocation of ikfast.py failed, this worked for me.

PS: you might have more success asking this on the OpenRave mailing list.

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2014-06-16 14:21:13 -0500

Seen: 1,004 times

Last updated: Jun 19 '14