2 Robots / URDF / MoveIt

Hi !!

I’m new on ROS and I need to control two robots :

  • Staubli TX2-90L
  • Staubli TX2-60L

The URDF of the Staubli robots come from the package staubli_experimental.

So I’ve made an URDF/XACRO file with two robots and my workcell STL file.
After this, I’ve made a MoveIt package with two “groups” and two kinematic chains.

I’m not sure about the method, if it’s good or not. Could you please help me ?
It works fine until I try to plan motion with Python and MoveIt.

Here my URDF file :

<?xml version="1.0" ?>
<xacro:include filename="$(find staubli_tx2_90_support)/urdf/tx2_90l_macro.xacro" />
<xacro:staubli_tx2_90l prefix="90"/>

<xacro:include filename="$(find staubli_tx2_60_support)/urdf/tx2_60l_macro.xacro" />
<xacro:staubli_tx2_60l prefix="60"/>

<link name="world"/>

<link name="table">
    <visual>
        <geometry>
            <box size="0.3 0.3 0.5"/>
        </geometry>
    </visual>
    <collision>
        <geometry>
            <box size="0.3 0.3 0.5"/>
        </geometry>
    </collision>
</link>

<link name="table2">
    <visual>
        <geometry>
            <box size="0.2 0.2 0.5"/>
        </geometry>
    </visual>
    <collision>
        <geometry>
            <box size="0.2 0.2 0.5"/>
        </geometry>
    </collision>
</link>

<link name="workcell">
    <visual>
        <origin rpy="0.0 0 0" xyz="0 0 0"/>
        <geometry>
            <mesh filename="package://isiss_workcell_description/meshes/poc.stl" scale="0.001 0.001 0.001"/>
        </geometry>
    </visual>
    <collision>
        <geometry>
            <mesh filename="package://isiss_workcell_description/meshes/poc.stl" scale="0.001 0.001 0.001"/>
        </geometry>
    </collision>
</link>

<joint name="world_to_table" type="fixed">
    <parent link="world"/>
    <child link="table"/>
    <origin xyz="0 0 0.25" rpy="0 0 0"/>
</joint>

<joint name="world_to_workcell" type="fixed">
    <parent link="world"/>
    <child link="workcell"/>
    <origin xyz="0 0 0" rpy="0 0 0"/>
</joint>

<joint name="world_to_table2" type="fixed">
    <parent link="world"/>
    <child link="table2"/>
    <origin xyz="2 0 0.25" rpy="0 0 0"/>
</joint>

<joint name="table_to_robot" type="fixed">
    <parent link="table"/>
    <child link="90base_link"/>
    <origin xyz="0 0 0.25" rpy="0 0 0"/>
</joint>

<joint name="table2_to_robot" type="fixed">
    <parent link="table2"/>
    <child link="60base_link"/>
    <origin xyz="0 0 0.25" rpy="0 0 0"/>
</joint>

Hi,

So itdepends on what you wat to do.

  1. If what you want is treat both robots as one, then add hem in the same XACRO.
  2. If you dont need to controle them as one, put them in separate XACRO/ URDFs.