ikfast assertion error

asked 2021-02-01 13:53:48 -0500

Batstru gravatar image

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!

edit retag flag offensive close merge delete

Comments

--baselink=0 --eelink=0

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).

gvdhoorn gravatar image gvdhoorn  ( 2021-02-01 15:09:15 -0500 )edit

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?

Batstru gravatar image Batstru  ( 2021-02-02 13:41:29 -0500 )edit

let me add also this info:

root@3b2a99fa0757:/robotarm_ws/src/robotarm_description/dae# openrave-robot.py belt_robot.dae --info links
name          index parents     
--------------------------------
base          0                 
body          1     base        
lower         2     body        
virtualupper  3     lower       
upper         4     virtualupper
manipulator   5     upper       
gripper_left  6     manipulator 
gripper_right 7     manipulator 
--------------------------------
Batstru gravatar image Batstru  ( 2021-02-02 14:02:34 -0500 )edit