Skip to content
This repository was archived by the owner on Aug 9, 2023. It is now read-only.
This repository was archived by the owner on Aug 9, 2023. It is now read-only.

RBDL IK Interface seg fault #8

Description

@cmower

The RBDL IK interface seg faults when running the example. The bug has been difficult to find since the output of RBDL is not being passed to stdout. I have worked out that RBDL is failing on rbdl.loadModel at this line. See below for a re-creation of the issue.

$ ipython
Python 3.8.10 (default, Mar 15 2022, 12:22:08) 
Type 'copyright', 'credits' or 'license' for more information
IPython 7.23.1 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import rbdl

In [2]: filename = '/home/chris/catkin_ws/src/ik_ros/ik_ros_examples/robots/lwr.urdf'

In [3]: m = rbdl.loadModel(filename, verbose=True, floating_base=True)
joint 'base_joint' child link 'lwr_arm_0_link' type = 6
  joint 'lwr_arm_0_joint' child link 'lwr_arm_1_link' type = 1
    joint 'lwr_arm_1_joint' child link 'lwr_arm_2_link' type = 1
      joint 'lwr_arm_2_joint' child link 'lwr_arm_3_link' type = 1
        joint 'lwr_arm_3_joint' child link 'lwr_arm_4_link' type = 1
          joint 'lwr_arm_4_joint' child link 'lwr_arm_5_link' type = 1
            joint 'lwr_arm_5_joint' child link 'lwr_arm_6_link' type = 1
              joint 'lwr_arm_6_joint' child link 'lwr_arm_7_link' type = 1
Error while processing joint 'base_joint': parent link 'base' could not be found.
+ Adding Body: lwr_arm_0_link
  parent_id  : 4294967295
  joint frame: X.E = 
          -1 -2.06624e-13            0
 2.06624e-13           -1            0
           0            0            1
X.r =    0    0 0.02
  joint dofs : 0
  body inertia: 
0.00381667          0          0
         0     0.0036          0
         0          0 0.00381667
  body mass   : 2
  body name   : lwr_arm_0_link
Segmentation fault (core dumped)

The error says that the base parent link could not be found, but it is there - see the following.

<link name="base">
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<box size="1 1 0.04"/>
</geometry>
<material name="DarkGrey"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<box size="1 1 0.04"/>
</geometry>
</collision>
</link>

@stoutheo do you have any insights to why this might be happening? Could it be that the URDF is missing something that most other parsers don't need but RBDL requires?

This issue needs to be resolved before #7 can be merged. @stoutheo is it possible for you to provide a fix? I've tried to keep your RBDL node the same as it was in the ros_pybullet_interface - so the code should be fairly familiar.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions