Home | Tutorials | Wiki | Issues
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Include multiple robot description files in one sdf file

Hi everyone,

I got a robot description which consists of two sdf (model) files. A file for the robot base and a file for the robot arm. Right now I include the arm in the base file, if I want to spawn the complete robot in Gazebo. If I only need the base I have to comment out the arm include. This process is really annoying.

I would like to have two basic sdf model files which I can spawn/launch in Gazebo without commenting out includes or to change the code in two or more files, if I for example extend the base model.

One file (robot_base_only) should only have the include for the base, which works without problems.

<sdf version="1.3">

<!-- BASE MODEL INCLUDE incl. base plugins in the base sdf--> 
    <include>
      <!-- Folder name of the model -->
      <uri>model://scitos</uri>
      <pose>0 0 0   0 0 0</pose>
    </include>

</sdf>

And one file (robot_base_and_arm) with base and arm includes, which doesn't work. That is because the joint between the base and the arm, which originally used to be in the base, won't work under the SDF tag.

<sdf version="1.3">

<!-- BASE MODEL INCLUDE incl. base plugins in the base sdf--> 
    <include>
      <!-- Folder name of the model -->
      <uri>model://scitos</uri>
      <name>scitos</name>
      <pose>0 0 0   0 0 0</pose>
    </include>


   <joint name="base_to_arm_base_joint" type="revolute">
      <parent>scitos::base_link</parent>
      <!-- Namespace::name of the link where the arm will be connected -->
      <child>scitos_arm::arm_base_link</child>
      <axis>
        <xyz>0 0 1</xyz>
        <limit>
          <upper>0</upper>
          <lower>0</lower>
        </limit>
      </axis>
    </joint>



<!-- ARM MODEL INCLUDE incl. arm model plugins in the arm sdf--> 
    <include>
      <!-- Folder name of the model -->
      <uri>model://scitos_arm</uri>
      <name>scitos_arm</name>
      <pose>0 0 0.63 0 0 0</pose>
    </include>

</sdf>

Maybe you guys can help me.

Thanks in advance

Christoph

Include multiple robot description files in one sdf file

Hi everyone,

I got a robot description which consists of two sdf (model) files. A file for the robot base and a file for the robot arm. Right now I include the arm in the base file, if I want to spawn the complete robot in Gazebo. If I only need the base I have to comment out the arm include. This process is really annoying.

I would like to have two basic sdf model files which I can spawn/launch in Gazebo without commenting out includes or to change the code in two or more files, if I for example extend the base model.

One file (robot_base_only) should only have the include for the base, which works without problems.

<sdf version="1.3">

<?xml version="1.0" ?>
<sdf version="1.3">

    <!-- BASE MODEL INCLUDE incl. base plugins in the base sdf--> 
     <include>
       <!-- Folder name of the model -->
       <uri>model://scitos</uri>
       <pose>0 0 0   0 0 0</pose>
     </include>

</sdf>

</sdf>

And one file (robot_base_and_arm) with base and arm includes, which doesn't work. That is because the joint between the base and the arm, which originally used to be in the base, won't work under the SDF tag.

<sdf version="1.3">

<?xml version="1.0" ?>
<sdf version="1.3">

    <!-- BASE MODEL INCLUDE incl. base plugins in the base sdf--> 
     <include>
       <!-- Folder name of the model -->
       <uri>model://scitos</uri>
       <name>scitos</name>
       <pose>0 0 0   0 0 0</pose>
     </include>


    <joint name="base_to_arm_base_joint" type="revolute">
       <parent>scitos::base_link</parent>
       <!-- Namespace::name of the link where the arm will be connected -->
       <child>scitos_arm::arm_base_link</child>
       <axis>
         <xyz>0 0 1</xyz>
         <limit>
           <upper>0</upper>
           <lower>0</lower>
         </limit>
       </axis>
     </joint>



 <!-- ARM MODEL INCLUDE incl. arm model plugins in the arm sdf--> 
     <include>
       <!-- Folder name of the model -->
       <uri>model://scitos_arm</uri>
       <name>scitos_arm</name>
       <pose>0 0 0.63 0 0 0</pose>
     </include>

</sdf>

</sdf>

Maybe you guys can help me.

Thanks in advance

Christoph