Skip to content

ur_robot_driver xacro macro in rox_description should not be included if gz_sim is set to true #105

@akruzliak4

Description

@akruzliak4

Dear Neobotix devs,

in your rox_description/urdf/xacros/ur_arm.urdf.xacro you begin the code by forcing the inclusion of ur_robot_driver/urdf/ur.ros2_control.xacro which requires the installation of whole ur_robot_driver package which is meant for real-world control of the Universal Robots arm.
Then you follow and use this macro only if use_gz is set to false.

Your choice led me to fork and patch your repo locally, because I don't want to install ur_robot_driver into my docker just to simulate it in gazebo. See below:

<?xml version="1.0"?>
<!--
Author: Pradheep Padmanabhan
Contributor: Adarsh Karan K P
-->
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="ur">

  <!-- create arm from macro-->
  <xacro:include filename="$(find ur_description)/urdf/ur_macro.xacro"/>
  <xacro:include filename="$(find ur_robot_driver)/urdf/ur.ros2_control.xacro"/>    <----------- HERE
  <xacro:include filename="$(find ur_description)/urdf/inc/ur_transmissions.xacro"/>

  <!-- Set use_gz = true for simulation -->
  <xacro:arg name="use_gz" default="false"/>
  <xacro:arg name="include_arm_ros2_control" default="false"/>

... etc ...

Please consider demanding the ur_robot_driver only when use_gz is not true:

...
  <xacro:arg name="include_arm_ros2_control" default="false"/>

  <!-- Only include ur_robot_driver when NOT using simulation AND when ros2_control is needed -->
  <xacro:unless value="$(arg use_gz)">
    <xacro:if value="$(arg include_arm_ros2_control)">
      <xacro:include filename="$(find ur_robot_driver)/urdf/ur.ros2_control.xacro"/>
    </xacro:if>
  </xacro:unless>
...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions