<launch>
  
  <group if="1">
     <param name="group_if_pass" value="1" />
  </group>
  <group if="0">
     <param name="group_if_fail" value="1" />
  </group>
  <group unless="0">
     <param name="group_unless_pass" value="1" />
  </group>
  <group unless="1">
     <param name="group_unless_fail" value="1" />
  </group>

  <param name="param_if_pass" value="1" if="1" />
  <param name="param_if_fail" value="1" if="0" />  

  <param name="param_unless_pass" value="1" unless="0" />
  <param name="param_unless_fail" value="1" unless="1" />

  <remap from="from_if_pass" to="to_if_pass" if="1" />
  <remap from="from_if_fail" to="to_if_fail" if="0" />  

  <remap from="from_unless_pass" to="to_unless_pass" unless="0" />
  <remap from="from_unless_fail" to="to_unless_fail" unless="1" />  

  <!-- Test Python parsing -->
  <group if="$(eval 1 == 1)">
     <param name="py_group_if_pass" value="1" />
  </group>
  <group if="$(eval 0 == 1)">
     <param name="py_group_if_fail" value="1" />
  </group>
  <group unless="$(eval 0 == 1)">
     <param name="py_group_unless_pass" value="1" />
  </group>
  <group unless="$(eval 1 == 1)">
     <param name="py_group_unless_fail" value="1" />
  </group>

  <arg name="true_lower" value="true"/>
  <arg name="true_upper" value="True"/>
  <arg name="false_lower" value="false"/>
  <arg name="false_upper" value="False"/>

  <param name="py_param_if_pass" value="1" if="$(eval arg('true_lower') and (40+2) == 42)"/>
  <param name="py_param_if_fail" value="1" if="$(eval false_lower or (40-2) != 38)"/>

  <param name="py_param_unless_pass" value="1" unless="$(eval arg('false_upper') or 1 &lt; 1)"/>
  <param name="py_param_unless_fail" value="1" unless="$(eval true_upper and 1 &gt;= 1)"/>

  <remap from="py_from_if_pass" to="py_to_if_pass" if="$(eval arg('true_upper') == True)"/>
  <remap from="py_from_if_fail" to="py_to_if_fail" if="$(eval false_upper != False)"/>

  <remap from="py_from_unless_pass" to="py_to_unless_pass"
         unless="$(eval arg('false_lower') or false_upper or arg('false_upper') != False)"/>
  <remap from="py_from_unless_fail" to="py_to_unless_fail"
         unless="$(eval arg('true_lower') and true_upper and arg('true_upper') == True)"/>

  <node name="remap" pkg="rospy" type="talker.py" />

</launch>
