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
shoulderlink 1 baselink
elbowlink 2 shoulderlink
elbow2link 3 elbowlink
wristlink 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
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