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

Revision history [back]

click to hide/show revision 1
initial version

A nice example can also be found here:

<arg name="team" default="Red"/>
<arg name="type" default="painter"/>

<group if="$(eval team == 'Red')">
    <group if="$(eval type == 'painter')">
        <param name="robot_description" 
            command="$(find xacro)/xacro $(find robopaint)/urdf/red/paintbot_red_burger.urdf.xacro" />
    </group>
    <group if="$(eval type == 'attacker')">
        <param name="robot_description" 
            command="$(find xacro)/xacro $(find robopaint)/urdf/red/attackbot_red_burger.urdf.xacro" />
    </group>
</group>
<group if="$(eval team == 'Blue')">
    <group if="$(eval type == 'painter')">
        <param name="robot_description" 
            command="$(find xacro)/xacro $(find robopaint)/urdf/blue/paintbot_blue_burger.urdf.xacro" />
    </group>
    <group if="$(eval type == 'attacker')">
        <param name="robot_description" 
            command="$(find xacro)/xacro $(find robopaint)/urdf/blue/attackbot_blue_burger.urdf.xacro" />
    </group>
</group>

A nice example can also be found here:

<arg name="team" default="Red"/>
<arg name="type" default="painter"/>

<group if="$(eval team == 'Red')">
    <group if="$(eval type == 'painter')">
        <param name="robot_description" 
            command="$(find xacro)/xacro $(find robopaint)/urdf/red/paintbot_red_burger.urdf.xacro" robopaint)/urdf/red/paintbot_red.urdf.xacro" />
    </group>
    <group if="$(eval type == 'attacker')">
        <param name="robot_description" 
            command="$(find xacro)/xacro $(find robopaint)/urdf/red/attackbot_red_burger.urdf.xacro" robopaint)/urdf/red/attackbot_red.urdf.xacro" />
    </group>
</group>
<group if="$(eval team == 'Blue')">
    <group if="$(eval type == 'painter')">
        <param name="robot_description" 
            command="$(find xacro)/xacro $(find robopaint)/urdf/blue/paintbot_blue_burger.urdf.xacro" robopaint)/urdf/blue/paintbot_blue.urdf.xacro" />
    </group>
    <group if="$(eval type == 'attacker')">
        <param name="robot_description" 
            command="$(find xacro)/xacro $(find robopaint)/urdf/blue/attackbot_blue_burger.urdf.xacro" robopaint)/urdf/blue/attackbot_blue.urdf.xacro" />
    </group>
</group>

A nice example can also be found here:

<arg name="team" default="Red"/>
<arg name="type" default="painter"/>

<group if="$(eval team == 'Red')">
   <group if="$(eval type == 'painter')">
     <param name="robot_description" 
       command="$(find xacro)/xacro $(find robopaint)/urdf/red/paintbot_red.urdf.xacro" />
   </group>
   <group if="$(eval type == 'attacker')">
     <param name="robot_description" 
      command="$(find xacro)/xacro $(find robopaint)/urdf/red/attackbot_red.urdf.xacro" />
 </group>
</group>

<group if="$(eval team == 'Blue')">
<group if="$(eval type == 'painter')">
  <param name="robot_description" 
    command="$(find xacro)/xacro $(find robopaint)/urdf/red/attackbot_red.urdf.xacro" robopaint)/urdf/blue/paintbot_blue.urdf.xacro" />
   </group>
</group>
<group if="$(eval team == 'Blue')">
    <group if="$(eval type == 'painter')">
    'attacker')">
    <param name="robot_description" 
            command="$(find xacro)/xacro $(find robopaint)/urdf/blue/paintbot_blue.urdf.xacro" />
    </group>
    <group if="$(eval type == 'attacker')">
        <param name="robot_description" 
            command="$(find xacro)/xacro $(find robopaint)/urdf/blue/attackbot_blue.urdf.xacro" />
   </group>
</group>

A nice example can also be found here:

<arg name="team" default="Red"/>
<arg name="type" default="painter"/>

<group if="$(eval team == 'Red')">
  <group if="$(eval type == 'painter')">
    <param name="robot_description" 
      command="$(find xacro)/xacro $(find robopaint)/urdf/red/paintbot_red.urdf.xacro" />
  </group>
  <group if="$(eval type == 'attacker')">
    <param name="robot_description" 
      command="$(find xacro)/xacro $(find robopaint)/urdf/red/attackbot_red.urdf.xacro" />
  </group>
</group>

<group if="$(eval team == 'Blue')">
 <group if="$(eval type == 'painter')">
   <param name="robot_description" 
     command="$(find xacro)/xacro $(find robopaint)/urdf/blue/paintbot_blue.urdf.xacro" />
  </group>
  <group if="$(eval type == 'attacker')">
    <param name="robot_description" 
      command="$(find xacro)/xacro $(find robopaint)/urdf/blue/attackbot_blue.urdf.xacro" />
  </group>
</group>

A small addendum from 2021. Embedding the if ...eval statement in a group gives a nice structure. As an example can also be found (taken from here:):

<arg name="team" default="Red"/>
<arg name="type" default="painter"/>

<group if="$(eval team == 'Red')">
  <group if="$(eval type == 'painter')">
    <param name="robot_description" 
      command="$(find xacro)/xacro $(find robopaint)/urdf/red/paintbot_red.urdf.xacro" />
  </group>
  <group if="$(eval type == 'attacker')">
    <param name="robot_description" 
      command="$(find xacro)/xacro $(find robopaint)/urdf/red/attackbot_red.urdf.xacro" />
  </group>
</group>

<group if="$(eval team == 'Blue')">
  <group if="$(eval type == 'painter')">
    <param name="robot_description" 
      command="$(find xacro)/xacro $(find robopaint)/urdf/blue/paintbot_blue.urdf.xacro" />
  </group>
  <group if="$(eval type == 'attacker')">
    <param name="robot_description" 
      command="$(find xacro)/xacro $(find robopaint)/urdf/blue/attackbot_blue.urdf.xacro" />
  </group>
</group>