Skip to content
This repository was archived by the owner on Apr 25, 2026. It is now read-only.
This repository was archived by the owner on Apr 25, 2026. It is now read-only.

Inquiry regarding collision filtering between non-adjacent parent-child links in RaiSim #646

@heesungsung

Description

@heesungsung

Hello,

I have a question regarding collision detection between links in an articulated object while using RaiSim.

I am working with an xhand URDF and would like to disable collisions between right_hand_link and right_hand_index_rota_link1.

...
<link name="right_hand_link">
    <inertial>
      <origin xyz="-0.00713969600456059 0.00342243593256283 -0.0584806731230685" rpy="0 0 0" />
      <mass value="0.530025137189824" />
      <inertia ixx="0.000480675299127658" ixy="-5.70774350447044E-06" ixz="-3.94757992682007E-05" iyy="0.000677544052393642" iyz="4.84926198036181E-06" izz="0.000346610500441846" />
    </inertial>
    <visual>
      <origin xyz="0 0 0" rpy="0 0 0" />
      <geometry>
        <mesh filename="../xhand/meshes/right_hand_link.STL" />
      </geometry>
      <material name="">
        <color rgba="0.792156862745098 0.819607843137255 0.933333333333333 1" />
      </material>
    </visual>
    <collision>
      <origin xyz="0 0 0" rpy="0 0 0" />
      <geometry>
        <mesh filename="../xhand/meshes/right_hand_link_cvx_hull.obj" />
      </geometry>
    </collision>
  </link>

  <link name="right_hand_index_bend_link">
    <inertial>
      <origin xyz="8.08448802515592E-05 0.000675884062860609 0.00420851049166139" rpy="0 0 0" />
      <mass value="0.0677836037392839" />
      <inertia ixx="2.16567127431793E-05" ixy="9.29177767371407E-09" ixz="2.1345292815894E-07" iyy="2.09689353738481E-05" iyz="-6.68676922531782E-07" izz="3.39593434952634E-06" />
    </inertial>
    <visual>
      <origin xyz="0 0 0" rpy="0 0 0" />
      <geometry>
        <mesh filename="../xhand/meshes/right_hand_index_bend_link.STL" />
      </geometry>
      <material name="">
        <color rgba="0.43921568627451 0.43921568627451 0.43921568627451 1" />
      </material>
    </visual>
    <!-- <collision>
      <origin xyz="0 0 0" rpy="0 0 0" />
      <geometry>
        <mesh filename="../xhand/meshes/right_hand_index_bend_link_cvx_hull.obj" />
      </geometry>
    </collision> -->
  </link>

  <joint name="right_hand_index_bend_joint" type="revolute">
    <origin xyz="0.0265 0.0065 -0.0899" rpy="0 0 0" />
    <parent link="right_hand_link" />
    <child link="right_hand_index_bend_link" />
    <axis xyz="0 1 0" />
    <limit lower="-0.175" upper="0.175" effort="0.4" velocity="14.38" />
    <dynamics damping="1" friction="1" />
  </joint>

  <link name="right_hand_index_rota_link1">
    <inertial>
      <origin xyz="-0.000139769529292743 -0.0008005173406112 -0.0356038554391181" rpy="0 0 0" />
      <mass value="0.0630216027459696" />
      <inertia ixx="2.05187473304044E-05" ixy="7.80203520045171E-09" ixz="4.29054958401514E-07" iyy="1.92422623666435E-05" iyz="2.47028335879796E-07" izz="4.15027364465252E-06" />
    </inertial>
    <visual>
      <origin xyz="0 0 0" rpy="0 0 0" />
      <geometry>
        <mesh filename="../xhand/meshes/right_hand_index_rota_link1.STL" />
      </geometry>
      <material name="">
        <color rgba="1 1 1 1" />
      </material>
    </visual>
    <!-- <collision>
      <origin xyz="0 0 0" rpy="0 0 0" />
      <geometry>
        <mesh filename="../xhand/meshes/right_hand_index_rota_link1_cvx_hull.obj" />
      </geometry>
    </collision> -->
  </link>

  <joint name="right_hand_index_joint1" type="revolute">
    <origin xyz="0 0 -0.0178" rpy="0 0 0" />
    <parent link="right_hand_index_bend_link" />
    <child link="right_hand_index_rota_link1" />
    <axis xyz="1 0 0" />
    <limit lower="0" upper="1.92" effort="1.1" velocity="8.63" />
    <dynamics damping="1" friction="1" />
  </joint>
...

Currently, it seems that collision filtering options are primarily available for direct parent-child pairs. However, I need to prevent collisions between links that are two steps apart (i.e., between a "grandparent" link and a "grandchild" link).

Visual summary:

Image

Red connection is possible to neglect collision, but green connection is impossible (BUT I NEED).

As far as I can tell, this doesn't seem to be adjustable within the current scope of my access. Is there a way to handle this, or could you provide guidance on how to implement such a filter?

Thank you.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions