Robotics StackExchange | Archived questions

Ik fast moveIt

Hi

I am creating Ikfast plugin for my robotic manupulator. I am following this tutorial http://docs.ros.org/indigo/api/moveit_ikfast/html/doc/ikfast_tutorial.html . Here is my moveit demo launch everything should be correct. moveit.jpg KDL work fine but I needed to setup smaller resolutions and I am not satisfied with it I used collada to change urdf to dae file. Collada generated dae file without any errors or warnings but wen I openrave name.dae The model looks horrible dae.jpg But it was not problem for me because i wanted just IK c++ file created so I typed

openrave-robot.py kv01.dae --info links

and it wrote correctly

base_link       0                  
wheel_frame_l   1     base_link    
wheel_lp        2     wheel_frame_l
wheel_lz        3     wheel_frame_l
wheel_frame_r   4     base_link    
wheel_pp        5     wheel_frame_r
wheel_pz        6     wheel_frame_r
scan            7     base_link    
veza            8     scan         
camera_l        9     veza         
camera_r        10    veza         
camera          11    camera_r     
model_klb1      12    base_link    
model_klb2      13    model_klb1   
model_klb3      14    model_klb2   
model_klb4      15    model_klb3   
model_klb5      16    model_klb4   
model_klb6      17    model_klb5   
uchopenie_lavo  18    model_klb6   
uchopenie_pravo 19    model_klb6   
menic5_6        20    model_klb5   
link_4_5        21    model_klb4   
link_4_5x       22    model_klb4   
link_3_4        23    model_klb3   
link_2_3        24    model_klb2   
menic2_3        25    model_klb2   

The informations are correct and my arm is made from Baselink -> modelklb1- modelklb6 so I typed to create cpp file:

python `openrave-config --python-dir`/openravepy/_openravepy_/ikfast.py --robot=kv01.dae --iktype=transform6d --baselink=0 --eelink=17 --savefile=ikfast64_kv01.cpp

I got this error

    [plugindatabase.h:929 _SysLoadLibrary] /usr/local/share/openrave-0.9/plugins/openravepy_configurationcache.so: libconfigurationcache.so: cannot open shared object file: No such file or directory
[plugindatabase.h:857 _LoadPlugin] failed to load: /usr/local/share/openrave-0.9/plugins/openravepy_configurationcache.so
[colladareader.cpp:2130 FillGeometryColor] transparecy is 1.000000, which means the item will be rendered invisible, this must be a mistake so setting to opaque (1)
[colladareader.cpp:2130 FillGeometryColor] transparecy is 1.000000, which means the item will be rendered invisible, this must be a mistake so setting to opaque (1)
[colladareader.cpp:2130 FillGeometryColor] transparecy is 1.000000, which means the item will be rendered invisible, this must be a mistake so setting to opaque (1)
/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.py:1437: RuntimeWarning: invalid value encountered in divide
  axisangle /= angle
INFO: moved translation Matrix([[0, 0, 19/100]]) to right end
INFO: moved translation Matrix([[0, 0, -129/500]]) to left end
INFO: moved translation on intersecting axis Matrix([[0, 0, -31/200]]) to left
INFO: [[1, 0, 0, 0],[0, -1, 0, 0],[0, 0, -1, 169/500]]
INFO: [[cos(j6), -sin(j6), 0, 0],[sin(j6), cos(j6), 0, 0],[0, 0, 1, 0]]
INFO: [[1, 0, 0, 0],[0, 0, -1, 0],[0, 1, 0, 0]]
INFO: [[cos(j7), -sin(j7), 0, 0],[sin(j7), cos(j7), 0, 0],[0, 0, 1, 0]]
INFO: [[1, 0, 0, 0],[0, -1, 0, -97/200],[0, 0, -1, 0]]
INFO: [[cos(j8), -sin(j8), 0, 0],[sin(j8), cos(j8), 0, 0],[0, 0, 1, 0]]
INFO: [[1, 0, 0, 0],[0, 0, -1, 101/200],[0, 1, 0, -1/25]]
INFO: [[cos(j9), -sin(j9), 0, 0],[sin(j9), cos(j9), 0, 0],[0, 0, 1, 0]]
INFO: [[1, 0, 0, 0],[0, 0, 1, -9/250],[0, -1, 0, 0]]
INFO: [[cos(j10), -sin(j10), 0, 0],[sin(j10), cos(j10), 0, 0],[0, 0, 1, 0]]
INFO: [[1, 0, 0, 0],[0, 0, 1, 0],[0, -1, 0, 1/40]]
INFO: [[cos(j11), -sin(j11), 0, 0],[sin(j11), cos(j11), 0, 0],[0, 0, 1, 0]]
INFO: [[1, 0, 0, 0],[0, 1, 0, 0],[0, 0, 1, 19/100]]
INFO: ikfast 6d: [j6, j7, j8, j9, j10, j11]
INFO: found 3 consecutive non-intersecting axes links[2:7], vars=[j7, j8, j9]
INFO: found 3 consecutive non-intersecting axes links[4:9], vars=[j8, j9, j10]
INFO: found 3 consecutive non-intersecting axes links[0:5], vars=[j6, j7, j8]
INFO: found 3 consecutive non-intersecting axes links[6:11], vars=[j9, j10, j11]
INFO: try group 0/4
INFO: computed in 1.605267s
INFO: computed in 1.254980s
INFO: attempting li/woernle/hiller general ik method
INFO: allowed indices: [0]
INFO: assuming equation htj7 is non-zero
INFO: not unique: (Poly(-cj9, cj8, sj8, cj9, sj9, htj7, domain='ZZ'), Poly(r11*cj6*cj11 + r10*cj6*sj11 - r01*sj6*cj11 - r00*sj6*sj11, cj6, sj6, cj11, sj11, htj7, domain='ZZ[r00,r01,r10,r11]'))
INFO: assuming equation htj7 is non-zero
INFO: factors 1 reduced not unique: -11*cj11*cj6*r11/1000 + 11*cj11*r01*sj6/1000 + cj6*py - 11*cj6*r10*sj11/1000 - px*sj6 + 11*r00*sj11*sj6/1000 + 1/25
INFO: assuming equation htj7 is non-zero
INFO: assuming equation htj7 is non-zero
INFO: factors 1 reduced not unique: -cj10*cj6*r12 + cj10*r02*sj6 - cj11*cj6*r10*sj10 + cj11*r00*sj10*sj6 + cj6*r11*sj10*sj11 - r01*sj10*sj11*sj6
INFO: assuming equation htj7 is non-zero
INFO: not unique: (Poly(-sj9, cj8, sj8, cj9, sj9, htj7, domain='ZZ'), Poly(-cj10*r10*cj6*cj11 + cj10*r11*cj6*sj11 + r12*sj10*cj6 + cj10*r00*sj6*cj11 - cj10*r01*sj6*sj11 - r02*sj10*sj6, cj6, sj6, cj11, sj11, htj7, domain='ZZ[r00,r01,r02,r10,r11,r12,cj10,sj10]'))
INFO: factors 0 reduced not unique: 0
INFO: factors 1 reduced not unique: -11*cj11*cj6*r11/1000 + 11*cj11*r01*sj6/1000 + cj6*py - 11*cj6*r10*sj11/1000 - px*sj6 + 11*r00*sj11*sj6/1000 + 1/25
INFO: assuming equation htj7 is non-zero
INFO: factors 1 reduced not unique: -11*cj11*cj6*r11/1000 + 11*cj11*r01*sj6/1000 + cj6*py - 11*cj6*r10*sj11/1000 - px*sj6 + 11*r00*sj11*sj6/1000 + 1/25
INFO: assuming equation htj7 is non-zero
INFO: not unique: (Poly(-97/200*cj8*sj9, cj8, sj8, cj9, sj9, htj7, domain='QQ'), Poly((101*cj10*r10/200 - rxp1_1)*cj6*cj11 + (-101*cj10*r11/200 - rxp0_1)*cj6*sj11 - 101*r12*sj10/200*cj6 + (-101*cj10*r00/200 + rxp1_0)*sj6*cj11 + (101*cj10*r01/200 + rxp0_0)*sj6*sj11 + 101*r02*sj10/200*sj6, cj6, sj6, cj11, sj11, htj7, domain='QQ[r00,r01,r02,r10,r11,r12,cj10,rxp0_0,rxp0_1,rxp1_0,rxp1_1,sj10]'))
INFO: assuming equation htj7 is non-zero
INFO: not unique: (Poly(950309/160000*cj8, cj8, sj8, cj9, sj9, htj7, domain='QQ'), Poly(-1067*npy/4000*cj11 - 1067*npx/4000*sj11 + 97*pp/8 - 47697713/8000000, cj6, sj6, cj11, sj11, htj7, domain='QQ[npx,npy,pp]'))
INFO: assuming equation htj7 is non-zero
INFO: not unique: (Poly(-97/8*sj8*sj9, cj8, sj8, cj9, sj9, htj7, domain='QQ'), Poly(-r11*cj6*cj11 - r10*cj6*sj11 + r01*sj6*cj11 + r00*sj6*sj11 - 25*npy*cj11 - 25*npx*sj11 + 11/40, cj6, sj6, cj11, sj11, htj7, domain='QQ[r00,r01,r10,r11,npx,npy]'))
INFO: assuming equation htj7 is non-zero
INFO: not unique: (Poly(-950309/160000*cj8*cj9, cj8, sj8, cj9, sj9, htj7, domain='QQ'), Poly((-97*npy*py/4 + 97*pp*r11/8 - 47644363*r11/8000000)*cj6*cj11 + (-97*npx*py/4 + 97*pp*r10/8 - 47644363*r10/8000000)*cj6*sj11 - 97*py/160*cj6 + (97*npy*px/4 - 97*pp*r01/8 + 47644363*r01/8000000)*sj6*cj11 + (97*npx*px/4 - 97*pp*r00/8 + 47644363*r00/8000000)*sj6*sj11 + 97*px/160*sj6 - 97*npy/100*cj11 - 97*npx/100*sj11 - 97/4000, cj6, sj6, cj11, sj11, htj7, domain='QQ[r00,r01,r10,r11,npx,npy,pp,px,py]'))
INFO: matrix has 0 symbols
INFO: skipping dependent index 9
INFO: skipping dependent index 14
INFO: computed non-singular AU matrix
INFO: special structure in equations detected, try to solve through elimination
INFO: depth=0 c=1, [] [j6]: cases=None
INFO: CannotSolveError: SolveAllEquations failed to find a variable to solve
INFO: depth=0 c=2, [] [j11]: cases=None
INFO: CannotSolveError: SolveAllEquations failed to find a variable to solve
INFO: try to solve first two variables pairwise
WARNING: converting polyeq "Poly(0, htj6, htj11, domain='ZZ')" to "Poly(0, htj6, htj11, domain='ZZ')"
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.py", line 9206, 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 2257, in generateIkSolver
    chaintree = solvefn(self, LinksRaw, jointvars, isolvejointvars)
  File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.py", line 2911, in solveFullIK_6D
    tree = self.solveFullIK_6DGeneral(T0links, T1links, solvejointvars, endbranchtree, usesolvers=1)
  File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.py", line 3213, in solveFullIK_6DGeneral
    coupledsolutions,usedvars = solvemethod(rawpolyeqs,solvejointvars,endbranchtree=endbranchtree,AllEquationsExtra=AllEquationsExtra)
  File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.py", line 5023, in solveLiWoernleHiller
    halfanglesolution = self.SolvePairVariablesHalfAngle(raweqns=raweqns,var0=usedvars[0],var1=usedvars[1],othersolvedvars=self.freejointvars)[0]
  File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.py", line 7417, in SolvePairVariablesHalfAngle
    for degree in range(mindegree,maxdegree+1):
  File "/usr/lib/python2.7/dist-packages/sympy/core/expr.py", line 178, in __int__
    r = self.round(2)
  File "/usr/lib/python2.7/dist-packages/sympy/core/expr.py", line 3051, in round
    mag_first_dig = _mag(x)
  File "/usr/lib/python2.7/dist-packages/sympy/core/expr.py", line 3123, in _mag
    mag_first_dig = int(ceil(C.Float(mpf_log(xpos._mpf_, 53))/log(10)))
OverflowError: cannot convert float infinity to integer

is there problem with my openrave or with dae file. Can anyone please help I cannot find anything about this. I am using ubuntu 14.04 with ros Indigo and I followed this tutorial to install Openrave from source https://scaron.info/teaching/installing-openrave-on-ubuntu-14.04.html

Update: I tried updated python-sympy

Actual version is Name: sympy Version: 0.7.6.1 Location: /usr/local/lib/python2.7/dist-packages

Now I am getting new error

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.py", line 9206, 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 2257, in generateIkSolver
    chaintree = solvefn(self, LinksRaw, jointvars, isolvejointvars)
  File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.py", line 2911, in solveFullIK_6D
    tree = self.solveFullIK_6DGeneral(T0links, T1links, solvejointvars, endbranchtree, usesolvers=1)
  File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.py", line 3213, in solveFullIK_6DGeneral
    coupledsolutions,usedvars = solvemethod(rawpolyeqs,solvejointvars,endbranchtree=endbranchtree,AllEquationsExtra=AllEquationsExtra)
  File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_/ikfast.py", line 4667, in solveLiWoernleHiller
    A = zeros((len(neweqs_test),len(allmonoms)))
  File "/usr/local/lib/python2.7/dist-packages/sympy/matrices/dense.py", line 1229, in zeros
    return cls.zeros(r, c)
  File "/usr/local/lib/python2.7/dist-packages/sympy/matrices/dense.py", line 513, in zeros
    r = as_int(r)
  File "/usr/local/lib/python2.7/dist-packages/sympy/core/compatibility.py", line 389, in as_int
    raise ValueError('%s is not an integer' % n)
TypeError: not all arguments converted during string formatting

And here is generated dae file http://hostcode.sourceforge.net/view/4370

Thank you for your time and help.

Asked by Chickenman on 2016-01-04 05:54:45 UTC

Comments

Please add your python-sympy version, also can you link your dae-file (also on the openrave ml)

Asked by Humpelstilzchen on 2016-01-04 13:34:09 UTC

Just a wild guess: You start with baselink=0 which includes all the wheels in the tree, I don't know how openrave handles this. Try to add a link, e.g. armbase and start from there.

Also openrave is very picky about the openrave version. Try to use the recommended version (0.7.1 for me).

Asked by Humpelstilzchen on 2016-01-06 03:11:51 UTC

Thanks for answer I already tried to put another link and fixed joint after all wheels and create another fake base but it did not help.

Asked by Chickenman on 2016-01-06 03:22:58 UTC

Answers

This question is very specific to OpenRAVE and it is recommended you post it to the OpenRAVE users mailing list: http://openrave-users-list.185357.n3.nabble.com/

Asked by Stefan Kohlbrecher on 2016-01-04 06:28:04 UTC

Comments

Thank you for your advice. Here is the post maybe it could help someone too http://openrave-users-list.185357.n3.nabble.com/Ik-fast-moveIt-transformation6D-td4027719.html

Asked by Chickenman on 2016-01-04 13:00:40 UTC