Skip to content

Segmentation fault (core dumped) when creating cpp file with IKFast  #11

Description

@jonarriza96

Hello!

I am trying to get an analytical inverse kinematics solution for my robot. To do so, I followed this tutorial (http://docs.ros.org/melodic/api/moveit_tutorials/html/doc/ikfast/ikfast_tutorial.html). It is worth to highlight that I installed OpenRave following the instructions given in https://github.com/crigroup/openrave-installation. I am using Melodic and my robot (I attach the urdf file) has got 3DOF.

As a starting point, in order to choose the baselink and eelink I run:


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


and I get:


name index parents

base_link 0
Shoulder_Link 1 base_link
Elbow_Link 2 Shoulder_Link
Wrist_Link 3 Elbow_Link
EE_Link 4 Wrist_Link


In order to generate the cpp file with the analytical solution, I chose "Translation3D" as the inverse kinematic type. .

To do so, I run this command:


python openrave-config --python-dir/openravepy/openravepy/ikfast.py --robot=jurp1.dae --iktype=translation3d --baselink=0 --eelink=3 --freeindex=4 --savefile=~/Desktop/ikfast61_jurp_arm.cpp


I get the following:


INFO: moved translation [0, 0, 0] to right end
INFO: moved translation [0, 0, 133/1000] to left end
INFO: [[0, 0, 1, 11367/50000],[0, 1, 0, 0],[-1, 0, 0, 13/10]]
INFO: [[cos(j0), -sin(j0), 0, 0],[sin(j0), cos(j0), 0, 0],[0, 0, 1, 0]]
INFO: [[0, 0, 1, 0],[1, 0, 0, 0],[0, 1, 0, 0]]
INFO: [[cos(j1), -sin(j1), 0, 0],[sin(j1), cos(j1), 0, 0],[0, 0, 1, 0]]
INFO: [[0, 0, -1, 0],[-1, 0, 0, 0],[0, 1, 0, 227/1000]]
INFO: [[cos(j2), -sin(j2), 0, 0],[sin(j2), cos(j2), 0, 0],[0, 0, 1, 0]]
INFO: [[0, 0, 1, 0],[1, 0, 0, 0],[0, 1, 0, 0]]
INFO: ikfast translation3d: [j0, j1, j2]
INFO: depth=0 c=1, [] [j0, j1, j2]: cases=None
INFO: j0 solution: equations used for atan2: [pxsin(j0) - pycos(j0), -pxcos(j0) - pysin(j0) + 227/1000]
INFO: adding atan2(227py, 227px) = 227Abs(px) + 227Abs(py) all zeros check
INFO: adding atan2(227py, 227px) = 227Abs(px) + 227Abs(py) all zeros check
INFO: depth=0 c=3, [j0] [j1, j2]: cases=set([])
INFO: adding atan2(pz, -cj0py + pxsj0) = Abs(pz) + Abs(-cj0py + pxsj0) all zeros check
INFO: adding atan2(pz, -cj0py + pxsj0) = Abs(pz) + Abs(-cj0py + pxsj0) all zeros check
INFO: adding atan2(cj0py - pxsj0, pz) = Abs(pz) + Abs(cj0py - pxsj0) all zeros check
INFO: adding atan2(cj0py - pxsj0, pz) = Abs(pz) + Abs(cj0py - pxsj0) all zeros check
INFO: adding atan2(pz, -cj0py + pxsj0) = Abs(pz) + Abs(-cj0py + pxsj0) all zeros check
INFO: adding atan2(pz, -cj0py + pxsj0) = Abs(pz) + Abs(-cj0py + pxsj0) all zeros check
INFO: adding atan2(cj0py - pxsj0, pz) = Abs(pz) + Abs(cj0py - pxsj0) all zeros check
INFO: adding atan2(cj0py - pxsj0, pz) = Abs(pz) + Abs(cj0py - pxsj0) all zeros check
INFO: depth=0 c=5, [j0, j1] [j2]: cases=set([])
INFO: trying to guess variable from [j2]
INFO: have only one variable left j2 and most likely it is not in equations [-pz, pxsin(j0) - pycos(j0), -pxcos(j0) - pysin(j0) + 227/1000, -px2 - py2 - pz**2 + 51529/1000000, pxsin(j0)sin(j1) - pysin(j1)cos(j0) + pzcos(j1), -pxsin(j0)cos(j1) + pycos(j0)cos(j1) + pzsin(j1)]
INFO: depth=0, c=2, iter=0/2, starting newcases: set([py, px])
INFO: depth=2 c=6, [] [j0, j1, j2]: cases=set([py, px])
INFO: depth=0, c=2, iter=1/2, starting newcases: set([Abs(px) + Abs(py)])
INFO: depth=1 c=7, [] [j0, j1, j2]: cases=set([Abs(px) + Abs(py)])
INFO: generating cpp code...
INFO: c=1 var=j0
INFO: c=2 var=j1
INFO: c=3 var=j2
INFO: c=4, store solution
INFO: c=5 var=j1
INFO: c=6 var=j2
INFO: c=7, store solution
Segmentation fault (core dumped)


Even if it says "INFO: generating cpp code...". The cpp file is never generated. Firstly, I have decrease the amount of decimals in the dae file, so that it would be easier for IKfast to solve. Unfortunately, it did not work. Trying to solve this issue I have played around with the inverse kinematics type and baselink/eelink/freeindex numbers (also with no freeindex at all), but I always end up with "Segmentation fault (core dumped)" message.

If someone could help me, I will be grateful.

Jon
jurp1.zip

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions