Robotics StackExchange | Archived questions

CannotSolveError: raghavan roth equations too complex (--iktype=translationdirection5d)

Hi, all

Meet a solve issue when generating IK solver with the manuel http://docs.ros.org/kinetic/api/moveit_tutorials/html/doc/ikfast/ikfast_tutorial.html.

Hardware: 5-dof innfos which was 6-dof but the wrist3 joint is broken, so I move the wrist3 joint and change the urdf to 5-dof robot...

Reference information: export MYROBOTNAME="innfox" export PLANNINGGROUP="bytedancearm" export BASELINK="0" export EEFLINK="5" export IKFASTOUTPUTPATH=pwd/ikfast61"$PLANNINGGROUP".cpp export IKFASTPRECISION="5"

$openrave-robot.py "$MYROBOT_NAME".dae --info links

name index parents
baselink 0
shoulder
link 1 baselink
elbow
link 2 shoulderlink elbow2link 3 elbowlink
wrist
link 4 elbow2link wrist2link 5 wrist_link
name index parents

Generate command: $python openrave-config --python-dir/openravepy/openravepy/ikfast.py --robot="$MYROBOTNAME".dae --iktype=translationdirection5d --baselink="$BASELINK" --eelink="$EEFLINK" --savefile="$IKFASTOUTPUT_PATH"

======================error log ======================= INFO: not unique: (Poly(-r00cj0 - r01sj0, cj0, sj0, cj2, sj2, htj1, domain='ZZ[r00,r01]'), Poly(sj4, cj3, sj3, cj4, sj4, htj1, domain='ZZ')) INFO: not unique: [Poly(-pxcj0 - pysj0, cj0, sj0, cj2, sj2, htj1, domain='QQ[px,py]'), Poly(-2031/25000, cj3, sj3, cj4, sj4, htj1, domain='QQ')] INFO: assuming equation htj1 is non-zero, dividing by Poly(pxcj0htj1 + pysj0htj1 - 2031/25000htj1, cj0, sj0, cj2, sj2, cj3, sj3, cj4, sj4, htj1, domain='QQ[px,py]') INFO: not unique: (Poly(-pxcj0 - py*sj0, cj0, sj0, cj2, sj2, htj1, domain='ZZ[px,py]'), Poly(-2031/25000, cj3, sj3, cj4, sj4, htj1, domain='QQ')) WARNING: CannotSolveError: reduced equations are zero INFO: attempting kohli/osvatic general ik method INFO: solving for all pairwise variables in (cj0, sj0, cj1, sj1), number of symbol coeffs are 15 INFO: solving for all pairwise variables in (cj0, sj0, cj1, sj1), number of symbol coeffs are 22 WARNING: CannotSolveError: KohliOsvatic method: could not reduce the equations INFO: attempting kohli/osvatic general ik method WARNING: CannotSolveError: need 8 or less equations of one variable, currently have 12 Traceback (most recent call last): File "/usr/local/lib/python2.7/dist-packages/openravepy/openravepy/ikfast.py", line 9521, in chaintree = solver.generateIkSolver(options.baselink,options.eelink,options.freeindices,solvefn=solvefn) File "/usr/local/lib/python2.7/dist-packages/openravepy/openravepy/ikfast.py", line 2281, in generateIkSolver chaintree = solvefn(self, LinksRaw, jointvars, isolvejointvars) File "/usr/local/lib/python2.7/dist-packages/openravepy/openravepy/ikfast.py", line 2803, in solveFullIKTranslationDirection5D raise self.CannotSolveError('raghavan roth equations too complex') _main__.CannotSolveError: CannotSolveError: raghavan roth equations too complex

Pls see the URDF file in the attachment. Could anyone tell where the issue is?

BR Thx.

Asked by onlooker on 2020-07-08 06:39:32 UTC

Comments

just solved this problem after 3 days' crazy seaching... the key point is that the z axis of the eef should be normal to the gripper surface. see these links for details: link1, link2

Asked by xibeisiber on 2020-07-08 21:30:19 UTC

The disappointing thing for me is that the ikfast plugin can't solve for all the 10 preset reachable poses of eef in my case..."no motion plan found"..

Asked by xibeisiber on 2020-07-08 22:59:54 UTC

Hi, Xibeisiber

Thanks for reply.

My robot arm just does place moving, so doesn't have the gripper device.

I just followed the tutorial to generate the ikfast cpp file, didn't see the robot.xml(katana6m90a.robot.xml in the given link).

How should I do? Can I just modify the urdf file to correct the eef pose?

Below is the EEF joint configure in my urdf file:

BR

Thx.

Asked by onlooker on 2020-07-09 01:31:55 UTC

try to change the axis of the eef_link by modifying the RPY in your or modifying the intrinsic axis of the mesh file of the eef_link. then generate the cpp again. both ways work for me .

Asked by xibeisiber on 2020-07-10 07:11:23 UTC

Answers

Upload the urdf file.

Asked by onlooker on 2020-07-08 22:25:34 UTC

Comments