ikfast assertion error
Hi all,
I'm trying to set up my arm with Moveit, following this tutorial.
One of the step is to generate the inverse kinematics, which is landing me to this page.
Following the instruction, the command python /usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.py --robot=belt_robot.dae --iktype=transform6d --baselink=0 --eelink=0 --savefile=/robotarm_ws/src/robotarm_description/dae/ikfast61_belt_robot.cpp
is failing.
I have to say I'm a bit new with the inverse kinematics, so it might be I'm doing a dumb error.
root@3b2a99fa0757:/robotarm_ws/src/robotarm_description/dae# python /usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.py --robot=belt_robot.dae --iktype=transform6d --baselink=0 --eelink=0 --savefile=/robotarm_ws/src/robotarm_description/dae/ikfast61_belt_robot.cpp
2021-02-01 19:49:27,619 openrave [WARN] [colladareader.cpp:2440 ColladaReader::FillGeometryColor] transparecy is 1.000000, which means the item will be rendered invisible, this must be a mistake so setting to opaque (1)
2021-02-01 19:49:27,697 openrave [WARN] [kinbody.cpp:1855 KinBody::SetDOFValues] env=1, dof 1 value 0.000000e+00 is smaller than the lower limit 4.700000e+00
2021-02-01 19:49:27,697 openrave [WARN] [kinbody.cpp:1866 KinBody::SetDOFValues] env=1, dof 2 value 0.000000e+00 is greater than the upper limit -5.000000e-01
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.py", line 9619, 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 2180, in generateIkSolver
LinksRaw, jointvars = self.forwardKinematicsChain(chainlinks,chainjoints)
File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.py", line 1602, in forwardKinematicsChain
assert(len(chainjoints)+1==len(chainlinks))
AssertionError
Everything can be reproduced. The arm description with the urdf and the dae file I've generated are available at this repo.
I'm using melodic under ubuntu 18.04 lts.
Thanks for the advise!
is this correct? this basically means that you're robot has 0 links between its base and the end-effector (or in other words: the base link is the EEF).
OK First mistake spotted out. I amended the command to
python /usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.py --robot=belt_robot.dae --iktype=transform6d --baselink=0 --eelink=6 --savefile=/robotarm_ws/src/robotarm_description/dae/ikfast61_belt_robot.cpp
Please take a look here for the output, as is doesn't fit here.
I'm not quite sure about the eelink. Could you please check the urdf I have the impression I'm picking wrong points?
let me add also this info: