Generation of IKfast plugin for a 6DoF arm
Hello, I am currently trying to generate a ikfast moveit plugin for a custom 6DoF arm. I was following the tutorial: http://docs.ros.org/indigo/api/moveit...
As suggested in other questions, I wanted to start off with a well designed URDF-file to test my tool chain. I tried the abb repo from ros industrial ( https://github.com/ros-industrial/abb ).
With these files, I tried to generate the IK solver - and this is where I am stuck at the moment.
Here are the steps up to the error:
Installed everything
Checked the urdf with check_urdf irb2400.urdf
robot name is: abb_irb2400
---------- Successfully Parsed XML ---------------
root Link: base_link has 2 child(ren)
child(1): base
child(2): link_1
child(1): link_2
child(1): link_3
child(1): link_4
child(1): link_5
child(1): link_6
child(1): tool0
Converted the urdf to dae with:
rosrun collada_urdf urdf_to_collada irb2400.urdf irb2400.dae
Checked the structure:
openrave-robot.py irb2400.dae --info links
name index parents
base_link 0
base 1 base_link
link_1 2 base_link
link_2 3 link_1
link_3 4 link_2
link_4 5 link_3
link_5 6 link_4
link_6 7 link_5
tool0 8 link_6
name index parents
Tried to generate the IK solver
python `openrave-config --python-dir`/openravepy/_openravepy_/ikfast.py --robot=irb2400.dae --iktype=transform6d --baselink=1 --eelink=8 --savefile=result.h
It fails with:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.py", line 9535, in <module>
chaintree = solver.generateIkSolver(options.baselink,options.eelink,options.freeindices,solvefn=solvefn)
File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.py", line 2287, in generateIkSolver
chaintree = solvefn(self, LinksRaw, jointvars, isolvejointvars)
File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.py", line 2882, in solveFullIK_6D
tree = self.TestIntersectingAxes(solvejointvars,Links, LinksInv,endbranchtree)
File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.py", line 2970, in TestIntersectingAxes
return self.solve6DIntersectingAxes(T0links,T1links,transvars,rotvars,solveRotationFirst=solveRotationFirst, endbranchtree=enbranchtree)
File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.py", line 3143, in solve6DIntersectingAxes
transtree = self.SolveAllEquations(AllEquations,curvars=curvars,othersolvedvars=othersolvedvars[:],solsubs=solsubs,endbranchtee=newendbranchtree)
File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.py", line 6861, in SolveAllEquations
return self.AddSolution(solutions,AllEquations,curvars,othersolvedvars,solsubs,endbranchtree,currentcases=currentcases, curretcasesubs=currentcasesubs, unknownvars=unknownvars)
File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.py", line 7525, in AddSolution
newtree = self.SolveAllEquations(NewEquationsClean,curvars,othersolvedvars,solsubs,endbranchtree,currentcases=newcases, curretcasesubs=newcasesubs, unknownvars=unknownvars)
File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.py", line 6861, in SolveAllEquations
return self.AddSolution(solutions,AllEquations,curvars,othersolvedvars,solsubs,endbranchtree,currentcases=currentcases, curretcasesubs=currentcasesubs, unknownvars=unknownvars)
File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.py", line 6961, in AddSolution
return [solution[0].subs(solsubs)]+self.SolveAllEquations(AllEquations,curvars=newvars,othersolvedvars=othersolvedvars+[var],olsubs=solsubs+self.Variable(var).subs,endbranchtree=endbranchtree,currentcases=currentcases, currentcasesubs=currentcasesubs, unnownvars=unknownvars)
File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.py", line 6721, in SolveAllEquations
return self.AddSolution(solutions,AllEquations,curvars,othersolvedvars,solsubs,endbranchtree ...
Did you solve this?