Skip to content

Service server exposes by controller manager hangs the control loop #2808

@rafa-martin

Description

@rafa-martin

Describe the bug
I am using the UR library to control the arm: https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver.

rqt_joint_trajectory_controller calls the /controller_manager/list_controllers service every second, and this causes several adverse effects:

The following warning appears in the monitor:

Overrun might occur, Total time : 3198.487 us (Expected < 2000.000 us) --> Read time : 30.260 us, Update time : 3161.148 us, Write time : 7.079 us Overrun detected! The controller manager missed its desired rate of 500 Hz. The loop took 3.327106 ms (missed cycles : 2).

If it is called too frequently, UR’s internal buffer fills up and the following appears: Pipeline producer overflowed! <RTDE Data Pipeline>, and the arm drops the connection, etc.

To Reproduce
Steps to reproduce the behavior:

  1. Run the driver
  2. (Option 1) Open rqt_joint_trajectory controller
  3. (Option 2) Call manually /controller_manager/list_controllers

Expected behavior
Do not hang the control loop to calculate all these things

Environment (please complete the following information):

  • OS: Ubuntu 24.04 (6.8.1-1037-realtime 38-Ubuntu SMP PREEMPT_RT)
  • Version: jazzy debs (4.38.0-1)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions