Skip to content

UR and Robotiq hardware interface RTDE collision #1611

@KrzysztofDubel

Description

@KrzysztofDubel

Affected ROS2 Driver version(s)

humble

Used ROS distribution.

Humble

Which combination of platform is the ROS driver running on.

Ubuntu Linux with standard kernel

How is the UR ROS2 Driver installed.

Build both the ROS driver and UR Client Library from source

Which robot platform is the driver connected to.

Real robot

Robot SW / URSim version(s)

Polyscope X - 10.11.0

How is the ROS driver used.

Headless without using the teach pendant

Issue details

Summary

Configuring Robotiq Hardware Interface causes Pipeline producer overflowed! <RTDE Data Pipeline>

Issue details

I am launching a ROS2 Control Controller Manager node that starts two Hardware Interfaces (UR and Robotiq).

  • The UR hardware interface starts the socat server and client and sets the tool voltage properly.
  • The UR hardware interface is configured and activated properly.
  • Then the Robotiq hardware interface tries sending deactivate/activate commands through the serial interface.

This is when I get flooded with the overflow errors:

Pipeline producer overflowed! <RTDE Data Pipeline>

and the RTDE with the whole reverse port connection drops.

My ur_robot (and hw interface) parameters are as follows:

        <xacro:ur_robot
            name="${name}"
            tf_prefix="${tf_prefix}"
            parent="${parent}"
            robot_ip="${robot_ip}"
            use_fake_hardware="${use_fake_hardware}"
            fake_sensor_commands="${use_fake_hardware}"
            headless_mode="true"
            initial_positions="${xacro.load_yaml(initial_positions_file)}"
            joint_limits_parameters_file="${joint_limits_file}"
            kinematics_parameters_file="${kinematics_file}"
            physical_parameters_file="$(find ur_description)/config/${robot}/physical_parameters.yaml"
            visual_parameters_file="$(find ur_description)/config/${robot}/visual_parameters.yaml"
            use_tool_communication="true"
            tool_voltage="24"
            tool_baud_rate="115200"
            tool_parity="0"
            tool_stop_bits="1"
            tool_rx_idle_chars="1.5"
            tool_tx_idle_chars="3.5"
            tool_device_name="${tool_device_name}"
            script_filename="$(find ur_client_library)/resources/external_control.urscript"
            input_recipe_filename="$(find ur_robot_driver)/resources/rtde_input_recipe.txt"
            output_recipe_filename="$(find ur_robot_driver)/resources/rtde_output_recipe.txt">
            <xacro:insert_block name="origin" />
        </xacro:ur_robot>

Steps to Reproduce

  1. Create a URDF that starts the UR hardware interface and the Robotiq hardware interface (use ur_robot macro and the robotiq_gripper macro)
  2. Use the proper parameters to establish the link
  3. Launch the controller manager
  4. Activate the UR hardware interface first
  5. Activate the Robotiq hardware interface secondSwitching the order of the hardware interfaces does not work because at that point there is no COM port socat link.

Expected Behavior

Both hardware interfaces working properly.

Actual Behavior

Pipeline producer overflowed! <RTDE Data Pipeline>

and Reverse Port connection dropping.

Workaround Suggestion

The only way I have been able to solve the issue with is to:

  1. Configure and Activate the UR hardware interface
  2. Deactivate and Unconfigure the UR hardware interface
  3. Configure and Activate the Robotiq hardware interface
  4. Configure and Activate the UR hardware interface

Relevant log output

[ur_ros2_control_node-6] [INFO] [1765816332.545433707] [resource_manager]: 'configure' hardware 'manipulator' 
[ur_ros2_control_node-6] [INFO] [1765816332.545499330] [URPositionHardwareInterface]: Starting ...please wait...
[ur_ros2_control_node-6] [INFO] [1765816332.545561375] [URPositionHardwareInterface]: Initializing driver...
[ur_ros2_control_node-6] [INFO] [1765816332.546643045] [UR_Client_Library:]: SCHED_FIFO OK, priority 99
[ur_ros2_control_node-6] [INFO] [1765816332.548147317] [UR_Client_Library:]: Negotiated RTDE protocol version to 2.
[ur_ros2_control_node-6] [INFO] [1765816332.548520047] [UR_Client_Library:]: Setting up RTDE communication with frequency 500.000000
[ur_ros2_control_node-6] [INFO] [1765816333.596684573] [UR_Client_Library:]: Starting primary client pipeline
[ur_ros2_control_node-6] [INFO] [1765816333.720104004] [URPositionHardwareInterface]: Calibration checksum: 'calib_221927923814618764'.
[ur_ros2_control_node-6] [INFO] [1765816333.720141647] [URPositionHardwareInterface]: Calibration checked successfully.
[ur_ros2_control_node-6] [INFO] [1765816333.720190490] [URPositionHardwareInterface]: System successfully started!
[ur_ros2_control_node-6] [INFO] [1765816333.720205108] [resource_manager]: Successful 'configure' of hardware 'manipulator'
[ur_ros2_control_node-6] [INFO] [1765816333.720240091] [resource_manager]: 'activate' hardware 'manipulator' 
[ur_ros2_control_node-6] [INFO] [1765816333.720244563] [URPositionHardwareInterface]: Activating HW interface
[ur_ros2_control_node-6] [INFO] [1765816333.720247497] [resource_manager]: Successful 'activate' of hardware 'manipulator'
[ur_ros2_control_node-6] [INFO] [1765816333.720577863] [UR_Client_Library:]: SCHED_FIFO OK, priority 99
[ros2-7] Successfully set manipulator to state lifecycle_msgs.msg.State(id=3, label='active')
[ur_ros2_control_node-6] [INFO] [1765816333.747962165] [UR_Client_Library:]: Robot connected to reverse interface. Ready to receive control commands.
[INFO] [ros2-7]: process has finished cleanly [pid 363074]
[INFO] [ros2-8]: process started with pid [363242]
[ur_ros2_control_node-6] [INFO] [1765816334.628838694] [resource_manager]: 'configure' hardware 'tool' 
[ur_ros2_control_node-6] [INFO] [1765816334.628964913] [resource_manager]: Successful 'configure' of hardware 'tool'
[ur_ros2_control_node-6] [INFO] [1765816334.628984121] [resource_manager]: 'activate' hardware 'tool' 
[ur_ros2_control_node-6] [INFO] [1765816334.628995477] [DefaultDriver]: Deactivate...
[ur_ros2_control_node-6] [ERROR] [1765816334.755522722] [UR_Client_Library:]: Pipeline producer overflowed! <RTDE Data Pipeline>
(...)
[ur_ros2_control_node-6] [ERROR] [1765816335.631499571] [UR_Client_Library:]: Pipeline producer overflowed! <RTDE Data Pipeline>
[ur_ros2_control_node-6] [INFO] [1765816335.631633299] [UR_Client_Library:]: Connection to reverse interface dropped.
[ur_ros2_control_node-6] [ERROR] [1765816335.633496646] [UR_Client_Library:]: Pipeline producer overflowed! <RTDE Data Pipeline>
(...)
[ur_ros2_control_node-6] [ERROR] [1765816336.855409299] [UR_Client_Library:]: Pipeline producer overflowed! <RTDE Data Pipeline>
[ur_ros2_control_node-6] [INFO] [1765816336.855539967] [RobotiqGripperHardwareInterface]: Robotiq Gripper successfully activated!
[ur_ros2_control_node-6] [INFO] [1765816336.855584517] [resource_manager]: Successful 'activate' of hardware 'tool'

Accept Public visibility

  • I agree to make this context public

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