Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
jonarriza96 opened this issue Oct 26, 2019 · 4 comments
Open

Comments

@jonarriza96
Copy link

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

@mohdwaseem27
Copy link

I've got the same problem
did it solved?

@Varun221
Copy link

hey I've got the same problem, did you find the solution? @mohdwaseem27

@mohdwaseem27
Copy link

mohdwaseem27 commented Aug 14, 2020

@Varun221 try this it gave segfault but it did generate the cpp code

@ChildofUngolianth
Copy link

ChildofUngolianth commented Feb 18, 2021

I am having the same problem. The posted solution did not change a thing for me, still no cpp.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants