Skip to content

Suppress ros2_control overrun warnings in simulation configs#713

Open
davetcoleman wants to merge 1 commit into
mainfrom
chore/suppress-sim-overrun-warnings
Open

Suppress ros2_control overrun warnings in simulation configs#713
davetcoleman wants to merge 1 commit into
mainfrom
chore/suppress-sim-overrun-warnings

Conversation

@davetcoleman

@davetcoleman davetcoleman commented Jun 14, 2026

Copy link
Copy Markdown
Member

Problem

On non-realtime machines (Parallels/Docker VMs, dev boxes), running any simulation floods the console with ros2_control overrun warnings:

[ros2_control_node] [WARN] Overrun detected! The controller manager missed its desired rate of 600 Hz. The loop took 2.84 ms (missed cycles : 2).
[ros2_control_node] [WARN] Overrun might occur, Total time : 2412 us (Expected < 1666.667 us) --> Read time : 1308 us, Update time : 64 us, Write time : 1039 us

These are new in Jazzy — the controller_manager version Jazzy ships (4.44.0) added an overruns reporting feature that Humble's older controller_manager did not have. The overruns themselves are harmless in simulation (a control cycle running late in sim has no physical consequence, and MuJoCo's own sim-health reporter confirms physics keeps up), but the WARN spam drowns out useful log output.

Fix

Set overruns.print_warnings: false in the controller_manager block of every simulation config. This silences both warnings (they read the same flag). The sibling overruns.manage parameter is left untouched, so overrun handling behavior is unchanged — only the logging is suppressed.

Scope

Applied to the 9 first-party simulation configs: lab_sim, hangar_sim, factory_sim, grinding_sim, dual_arm_sim, kitchen_sim, mock_sim, multi_arm_sim, kinova_sim.

  • space_satellite_sim is covered transitively (based_on_package: kinova_sim).
  • Real-hardware base/site configs are intentionally excluded — overrun warnings are meaningful on a physical robot.
  • phoebe_sim is excluded: it lives in the phoebe_ws git submodule (separate repo).

CI

example_ws CI is Jazzy-only (humble is disabled per ci.yaml), and overruns.print_warnings is a declared parameter in the Jazzy controller_manager 4.44.0, so the integration tests that launch lab_sim/hangar_sim load it without error.

Loading these configs under an older (Humble-era) controller_manager that predates the overruns parameter group is out of scope and unverified — this workspace targets Jazzy. A customer who copies a sim config into a Humble workspace should confirm load behavior there.

@davetcoleman davetcoleman added this to the 9.5.0 milestone Jun 14, 2026
@coderabbitai

coderabbitai Bot commented Jun 14, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@davetcoleman, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 45 minutes and 32 seconds. Learn how PR review limits work.

Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file).

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 445cb827-86c6-4651-9f77-9e89e9632cab

📥 Commits

Reviewing files that changed from the base of the PR and between 0c6dd67 and 2cae6ba.

📒 Files selected for processing (9)
  • src/dual_arm_sim/config/control/franka_ros2_control.yaml
  • src/factory_sim/config/control/picknik_fanuc.ros2_control.yaml
  • src/grinding_sim/config/control/ur20.ros2_control.yaml
  • src/hangar_sim/config/control/picknik_ur.ros2_control.yaml
  • src/kitchen_sim/config/control/franka_ros2_control.yaml
  • src/lab_sim/config/control/picknik_ur.ros2_control.yaml
  • src/moveit_pro_kinova_configs/kinova_sim/config/control/picknik_kinova_gen3.ros2_control.yaml
  • src/moveit_pro_ur_configs/mock_sim/config/control/picknik_ur.ros2_control.yaml
  • src/moveit_pro_ur_configs/multi_arm_sim/config/control/picknik_multi_ur.ros2_control.yaml

Comment @coderabbitai help to get the list of available commands and usage tips.

@davetcoleman

Copy link
Copy Markdown
Member Author

@davetcoleman davetcoleman requested a review from fdavulcu June 14, 2026 04:58
@davetcoleman davetcoleman marked this pull request as ready for review June 14, 2026 04:58
Set controller_manager overruns.print_warnings: false in every simulation config so the non-realtime overrun WARN spam (new in the Jazzy controller_manager 4.44) no longer floods the console. Sim-only; real-hardware base/site configs are intentionally left untouched.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
@davetcoleman davetcoleman force-pushed the chore/suppress-sim-overrun-warnings branch from 352bd65 to 2cae6ba Compare June 14, 2026 05:07
@github-actions

Copy link
Copy Markdown

MoveIt Pro Example WS - Objectives Integration Test Report

@github-actions

Copy link
Copy Markdown

MoveIt Pro Example WS - Objectives Integration Test Report

@fdavulcu fdavulcu left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fix

Set overruns.print_warnings: false in the controller_manager block of every simulation config. This silences both warnings (they read the same flag). The sibling overruns.manage parameter is left untouched, so overrun handling behavior is unchanged — only the logging is suppressed.

This is not correct, they do not read the same flag. This PR will only get rid of one of the warnings ("Overrun might occur, ...") which is in the controller_manager.cpp. The other warning ("Overrun detected! ... ") is based on the overruns.manage flag in the ros2_control_node.cpp file.

If you're fine with suppressing only the "Overrun might occur" warning, the changes LGTM. However, setting the overruns.manage as false would require more thinking and testing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants