IKFast for Romeo robot

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

IKFast for Romeo robot

This post was updated on .

I'm working with the robot Romeo from Aldebaran, and I'm trying to get the IKFast solver to use it with MoveIt. Now I'm using the package romeo_description with romeo_moveit_config to do the movement with Moveit, but with the KDL solver it's very slow and most of the time it gets the solution only with a big tolerance. For that reason I want to use IKFast.

The problem is that I can't get the .cpp. I tried with two differents ways:

1) Using the command:
python `openrave-config --python-dir`/openravepy/_openravepy_/ikfast.py --robot=romeo.dae --iktype=transform6d --baselink=1 --eelink=7 –savefile=ikfast61_left_arm.cpp

or the command:
python `openrave-config --python-dir`/openravepy/_openravepy_/ikfast.py --robot=romeo.dae --iktype=transform6d --baselink=1 –eelink=8 --freelink=6 –savefile=ikfast61_left_arm.cpp

2)Using the command:
openrave.py --database inversekinematics --robot=romeo_left.xml --iktype=transform6d --iktests=100 --freejoint=LWristRoll --freeinc=0.01 --maxcasedepth=1

But with that after a while of saying:
matrix has 104 symbols
 I get this error:
File "/usr/local/lib/python2.7/dist-packages/sympy/polys/densebasic.py", line 1038, in dmp_to_dict
    h = dmp_to_dict(f[n-k], v)
  File "/usr/local/lib/python2.7/dist-packages/sympy/polys/densebasic.py", line 1030, in dmp_to_dict
    return dup_to_dict(f, K, zero=zero)
  File "/usr/local/lib/python2.7/dist-packages/sympy/polys/densebasic.py", line 982, in dup_to_dict
    n, result = dup_degree(f), {}
RuntimeError: maximum recursion depth exceeded

With all the cases it lasts like 2 hours and giving messages like the method it tries is not solving the equation and with a lot of very very big numbers in the screen(like 1E70 or something like this). And sometimes finally my computer was frezze and I had to shutdown.

The romeo.dae was made by me using:
rosrun collada_urdf urdf_to_collada romeo.urdf
 and the urdf file (provided in directly in the romeo_description package) is created from the file romeo.xacro (I think provided by Aldebaran). I have tried to reduce the decimals used in the romeo.dae with this script . Then I tried again both ways and I got the same result.

I tryied with another robot that I found in that forum and it worked and it lasted one hour. So I think that the problem is not in the installation.

Here I attach the models of Romeo (normal, rounded, xml, urdf and xacros).

Thank you so much!