ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

Ikfast fails to generate solution file for 3dof arm using .dae(genereated from .wrl)

asked 2015-08-10 06:09:22 -0500

Naohiro gravatar image

Hi all

I've tried to use ikfast module(iktype=translation3d) for 3DoF simple arm. I have been following the instructions here: http://moveit.ros.org/wiki/Kinematics... and http://answers.ros.org/question/20504...

My openrave-version is 0.9.0 on ubuntu 12.04.

First, I generated .dae from .wrl. Here is terminal output.

export-collada  -i GR001d_mod0810.wrl -o test0810.dae
omniORB: Warning: the local loop back interface (127.0.0.1)
is the only address available for this server.
Humanoid node
Joint nodeCHEST_P
  Segment node CHEST_P_LINK
  Joint nodeR_SHOULDER_P
    Segment node R_SHOULDER_P_LINK
    Joint nodeR_SHOULDER_R
      Segment node R_SHOULDER_R_LINK
      Joint nodeR_ELBOW_P
        Segment node R_ELBOW_P_LINK
Collada Info: init COLLADA writer version: 1.5.0, namespace: http://www.collada.org/2008/03/COLLADASchema
export-collada GR001d_mod0810.wrl was successfully exported to test0810.dae

Following is the joints and links information of the .dae.

~/openrave-0.9.0-src/python$ openrave-robot.py test0810.dae --info links
name              index parents          
-----------------------------------------
CHEST_P_LINK      0                      
R_SHOULDER_P_LINK 1     CHEST_P_LINK     
R_SHOULDER_R_LINK 2     R_SHOULDER_P_LINK
R_ELBOW_P_LINK    3     R_SHOULDER_R_LINK
-----------------------------------------
name              index parents

~/openrave-0.9.0-src/python$ openrave-robot.py test0810.dae --info joints
name         joint_index dof_index parent_link       child_link        mimic
----------------------------------------------------------------------------
R_SHOULDER_P 0           0         CHEST_P_LINK      R_SHOULDER_P_LINK      
R_SHOULDER_R 1           1         R_SHOULDER_P_LINK R_SHOULDER_R_LINK      
R_ELBOW_P    2           2         R_SHOULDER_R_LINK R_ELBOW_P_LINK         
----------------------------------------------------------------------------
name         joint_index dof_index parent_link       child_link        mimic

Next, I've tried to generate solution file using this .dae file.

However, terminal output 'failed to find a variable to solve'.

python ikfast.py --robot=test0810.dae --baselink=0 --eelink=3 --savefile=iktest.cpp --iktype=translation3d

~/openrave-0.9.0-src/python$ python ikfast.py --robot=test0810.dae --baselink=0 --eelink=3 --savefile=iktest.cpp --iktype=translation3d
[colladareader.cpp:3240] Target Node 'visual1/node_joint0_axis0' not found
[colladareader.cpp:3560] failed to find joint target 'kmodel1/jointsid1000' in _mapJointSids
[colladareader.cpp:3565] could not find openrave joint 'CHEST_P'!
[colladareader.cpp:2618] failed to find joint kmodel1/jointsid1000 in actuator CHEST_P
INFO: moved translation [0, 0, 1/100000] to right end
INFO: moved translation [0, 0, 1/40] to left end
INFO: [[1, 0, 0, -1/100],[0, 0, -1, -33/500],[0, 1, 0, 21/500]]
INFO: [[cos(j0), -sin(j0), 0, 0],[sin(j0), cos(j0), 0, 0],[0, 0, 1, 0]]
INFO: [[0, 0, 1, 1/100000],[-1, 0, 0, -1/125],[0, -1, 0, 0]]
INFO: [[cos(j1), -sin(j1), 0, 0],[sin(j1), cos(j1), 0, 0],[0, 0, 1, 0]]
INFO: [[0, 1, 0, 47/1000],[0, 0, 1, 0],[1, 0, 0, 9/1000]]
INFO: [[cos(j2), -sin(j2), 0, 0],[sin(j2), cos(j2), 0, 0],[0, 0, 1, 0]]
INFO: [[1, 0, 0, 0],[0, 0, -1, 0],[0, 1, 0, 1/100000]]
INFO: ikfast translation3d: [j0, j1, j2]
INFO: [] [j0, j1, j2]
INFO: j0 solution: equations used for atan2: [-px*cos(j0) - py*sin(j0) + 901/100000, -pp + 2*px*sin(j0)/125 - 2*py*cos(j0)/125 + 11130901/5000000000]
INFO: [j1] [j0, j2]
INFO: j0 solution: equations used for atan2: [-px*cos(j0) - py*sin(j0) + 901/100000, -pp + 2*px*sin(j0)/125 - 2*py*cos(j0)/125 ...
(more)
edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2015-08-10 06:14:37 -0500

Naohiro gravatar image

Aditionaly, a part of definitation codes of arm link in .wrl is following.

DEF GR001 Humanoid{
  humanoidBody [
    DEF CHEST_P Joint {
     jointType "fixed"
     translation 0.044 0.0 0.02
     rotation 0 0 1 0
     children[
       DEF CHEST_P_LINK Segment{
         mass 0.02905 
       }
       DEF R_SHOULDER_P Joint {
         jointType "rotate"
         jointAxis 0 1 0
         translation -0.01 -0.041 0.042
        rotation 0 0 1 0
         children[
           DEF R_SHOULDER_P_LINK Segment{
            mass 0.02905 
           }
           DEF R_SHOULDER_R Joint {
               jointType "rotate"
               jointAxis 1 0 0
               translation 0.00001 -0.025 -0.008
             rotation 0 0 1 0
               children[
                 DEF R_SHOULDER_R_LINK Segment{
                mass 0.02905 
                 }
                 DEF R_ELBOW_P Joint {
                   jointType "rotate"
                   jointAxis 0 1 0
                   translation 0.009 0.00001 -0.047  # by Hara
                 rotation 0 0 1 0
                   children[
                     DEF R_ELBOW_P_LINK Segment{
                     mass 0.02905 
                     }
                   ]
                 }
               ]
           }
         ]
       }
     ]
    }
  ]
  joints [
   USE CHEST_P,
   USE R_SHOULDER_P,
   USE R_SHOULDER_R,
   USE R_ELBOW_P,
  ]
  segments [
   USE CHEST_P_LINK,
   USE R_SHOULDER_P_LINK,
   USE R_SHOULDER_R_LINK,
   USE R_ELBOW_P_LINK,
  ]
}

Many thanks.

edit flag offensive delete link more

Comments

I was able to generate ik solution file using the openrave master branch on github. https://github.com/rdiankov/openrave

Thank you

Naohiro gravatar image Naohiro  ( 2015-09-10 09:18:36 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2015-08-10 06:06:52 -0500

Seen: 504 times

Last updated: Aug 10 '15