Running ikfast on robot "test3dof.robot.xml"

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Running ikfast on robot "test3dof.robot.xml"

lixdhitrobot
Hi, everyone.

I am just studying to use ikfast plugin to compute inverse kinematics of the robot.

there is no problem to execute the following command

openrave.py --database inversekinematics --robot=test3dof.robot.xml --iktype=Translation3D

But the the following command does not work, and it indicates some errors

openrave.py --database inversekinematics --robot=tridof.robot.xml --iktype=Translation3D

I don't know why? two robot files are same more or less.

the errors outputting from the second command is:

lixd@DELL:~/main_folder/openrave-0.8/ikfasttest$ openrave.py --database inversekinematics --robot=tridof.robot.xml --iktype=Translation3D
openravepy.databases.inversekinematics: generate, Generating inverse kinematics for manip arm: Translation3D [0, 1, 2] (this might take up to 10 min)
openravepy.databases.inversekinematics: generate, creating ik file /home/lixd/.openrave/kinematics.25106211e00d8b4ed1669bdd1c290e4d/ikfast61.Translation3D.0_1_2.cpp
/usr/lib/python2.7/dist-packages/openravepy/_openravepy_0_8/ikfast.py:1122: RuntimeWarning: invalid value encountered in divide
  axisangle /= angle
openravepy.ikfast: forwardKinematicsChain, moved translation [0, 0, 1/100] to right end
openravepy.ikfast: forwardKinematicsChain, moved translation [0, 0, 1/100] to left end
openravepy.ikfast: generateIkSolver, [[1, 0, 0, 0],[0, 1, 0, 0],[0, 0, 1, 3/200]]
openravepy.ikfast: generateIkSolver, [[cos(j0), -sin(j0), 0, 0],[sin(j0), cos(j0), 0, 0],[0, 0, 1, 0]]
openravepy.ikfast: generateIkSolver, [[1, 0, 0, 7/50],[0, 1, 0, 0],[0, 0, 1, 0]]
openravepy.ikfast: generateIkSolver, [[cos(j1), -sin(j1), 0, 0],[sin(j1), cos(j1), 0, 0],[0, 0, 1, 0]]
openravepy.ikfast: generateIkSolver, [[1, 0, 0, 7/50],[0, 1, 0, 0],[0, 0, 1, 0]]
openravepy.ikfast: generateIkSolver, [[cos(j2), -sin(j2), 0, 0],[sin(j2), cos(j2), 0, 0],[0, 0, 1, 0]]
openravepy.ikfast: generateIkSolver, [[1, 0, 0, 0],[0, 1, 0, 0],[0, 0, 1, 1/100]]
openravepy.ikfast: _solveFullIK_Translation3D, ikfast translation3d: [j0, j1, j2]
openravepy.ikfast: solveAllEquations, [] [j0, j1, j2]
Traceback (most recent call last):
  File "/usr/bin/openrave.py", line 126, in <module>
    database.run(args=args)
  File "/usr/lib/python2.7/dist-packages/openravepy/_openravepy_0_8/databases/inversekinematics.py", line 934, in run
    InverseKinematicsModel.RunFromParser(*args,**kwargs)
  File "/usr/lib/python2.7/dist-packages/openravepy/_openravepy_0_8/databases/inversekinematics.py", line 906, in RunFromParser
    model = DatabaseGenerator.RunFromParser(Model=Model,parser=parser,robotatts=robotatts,args=args,**kwargs)
  File "/usr/lib/python2.7/dist-packages/openravepy/_openravepy_0_8/databases/__init__.py", line 248, in RunFromParser
    model.autogenerate(options=options)
  File "/usr/lib/python2.7/dist-packages/openravepy/_openravepy_0_8/databases/inversekinematics.py", line 510, in autogenerate
    self.generate(iktype=iktype,freejoints=freejoints,precision=precision,forceikbuild=forceikbuild,outputlang=outputlang,ipython=ipython)
  File "/usr/lib/python2.7/dist-packages/openravepy/_openravepy_0_8/databases/inversekinematics.py", line 717, in generate
    chaintree = solver.generateIkSolver(baselink=baselink,eelink=eelink,freeindices=self.freeindices,solvefn=solvefn)
  File "/usr/lib/python2.7/dist-packages/openravepy/_openravepy_0_8/ikfast.py", line 1639, in generateIkSolver
    chaintree = solvefn(self, LinksRaw, jointvars, isolvejointvars)
  File "/usr/lib/python2.7/dist-packages/openravepy/_openravepy_0_8/databases/inversekinematics.py", line 566, in solveFullIK_Translation3D
    return self.ikfast.IKFastSolver.solveFullIK_Translation3D(*args,**kwargs)
  File "/usr/lib/python2.7/dist-packages/openravepy/_openravepy_0_8/ikfast.py", line 1816, in solveFullIK_Translation3D
    return self._solveFullIK_Translation3D(LinksRaw,jointvars,isolvejointvars,basepos)
  File "/usr/lib/python2.7/dist-packages/openravepy/_openravepy_0_8/ikfast.py", line 1836, in _solveFullIK_Translation3D
    transtree = self.solveAllEquations(AllEquations,curvars=solvejointvars[:],othersolvedvars=self.freejointvars,solsubs = self.freevarsubs[:],endbranchtree=endbranchtree)
  File "/usr/lib/python2.7/dist-packages/openravepy/_openravepy_0_8/ikfast.py", line 4321, in solveAllEquations
    raise self.CannotSolveError('failed to find a variable to solve')
openravepy.ikfast.CannotSolveError: 'failed to find a variable to solve'
test3dof.robot.xmltridof.robot.xmlLClaw.ivRClaw.iv