Skip to content

Document panda_simulated_config.yaml's loading contract (ParameterBuilder namespace + update_period) - #3834

Open
easyrider11 wants to merge 1 commit into
moveit:mainfrom
easyrider11:doc-panda-simulated-config-loading
Open

Document panda_simulated_config.yaml's loading contract (ParameterBuilder namespace + update_period)#3834
easyrider11 wants to merge 1 commit into
moveit:mainfrom
easyrider11:doc-panda-simulated-config-loading

Conversation

@easyrider11

@easyrider11 easyrider11 commented Aug 26, 2026

Copy link
Copy Markdown

Description

Closes #3830.

panda_simulated_config.yaml reads like a ROS 2 parameter file but cannot be loaded as one, and the smoothing plugin it enables requires a parameter that lives only in the demo launch files. This PR documents both constraints in a header comment, so a user starting from this config finds the contract in the file itself instead of reverse-engineering it from the demos.

#3830 offered maintainers two options: (a) make the file self-contained, or (b) document the loading contract. This implements (b), because while preparing (a) I found it is not actually achievable without breaking changes — which itself seems worth recording:

  • A /**: ros__parameters: wrapper would break every existing consumer. The demo launch files (and downstream users following them) load this file through ParameterBuilder("moveit_servo").yaml(...), which reads the whole document and nests it under the moveit_servo namespace expected by servo's listener (servo_node.cpp L105-106). With a wrapper, those keys would land under moveit_servo./**.ros__parameters.* — garbage.
  • update_period cannot be moved into this file at all. AccelerationLimitedPlugin constructs its listener without a prefix (acceleration_filter.cpp L181) and therefore reads update_period from the node's root namespace, while every key in this yaml lands under moveit_servo.. That is why all four demo launch files (demo_twist, demo_pose, demo_joint_jog, demo_ros_api) each pass {"update_period": 0.01} as a separate node-level parameter.

Comment-only change: no behavior, API, or formatting impact. Happy to reword or trim if maintainers prefer a shorter note.

Checklist

  • Required by CI: Code is auto formatted using clang-format (comment-only YAML change; no C++ touched)
  • Extend the tutorials / documentation reference — N/A, the documentation IS the change
  • Document API changes in MIGRATION.md — N/A, no API change
  • Create tests, which fail without this PR — N/A, comment-only
  • Include a screenshot if changing a GUI — N/A

Summary by CodeRabbit

  • Documentation
    • Clarified how to load the simulated configuration.
    • Documented the separately required update_period setting for acceleration-limited operation.

The file reads like a ROS 2 parameter file but is not one: it has no node
name / ros__parameters wrapper, and the demo launch files load it through
ParameterBuilder("moveit_servo"), which nests every key under the
moveit_servo namespace that servo's ParamListener expects
(servo_node.cpp). Passing it directly via parameters=[...] fails at
startup with an unhelpful error.

The file also enables online_signal_smoothing::AccelerationLimitedPlugin,
whose required update_period parameter cannot be added here: the plugin's
ParamListener is constructed without a prefix (acceleration_filter.cpp)
and reads from the node's root namespace, while every key in this file
lands under moveit_servo. - which is why all four demo launch files supply
{"update_period": 0.01} as a separate node-level parameter.

Document both constraints in a header comment so users starting from this
config find the contract in the file itself instead of reverse-engineering
it from the demos.

Closes moveit#3830

Signed-off-by: Lang Li <langlipro@gmail.com>
@coderabbitai

coderabbitai Bot commented Aug 26, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 8cbf8455-afe8-44f9-b46f-7a826c41efc3

📥 Commits

Reviewing files that changed from the base of the PR and between 8fcb5d2 and fadf1ca.

📒 Files selected for processing (1)
  • moveit_ros/moveit_servo/config/panda_simulated_config.yaml

Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review.


📝 Walkthrough

Walkthrough

The YAML configuration now documents that callers must load it through ParameterBuilder("moveit_servo"). It also documents the separate root-level update_period parameter required by AccelerationLimitedPlugin.

Changes

Servo configuration documentation

Layer / File(s) Summary
Configuration loading requirements
moveit_ros/moveit_servo/config/panda_simulated_config.yaml
Comments document the required moveit_servo namespace wrapping and the separately supplied root-level update_period parameter.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Merge Risk: ⚪ Minimal · up to fadf1

This is a localized documentation-only change with no runtime or API behavior changes, and no actionable merge-blocking risk remains beyond normal checks and review.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Linked Issues check ✅ Passed The PR documents both requirements from issue #3830: load the YAML through ParameterBuilder("moveit_servo") and provide the root-level update_period parameter when AccelerationLimitedPlugin is enabled…
Out of Scope Changes check ✅ Passed The changes are limited to documentation in panda_simulated_config.yaml and directly support issue #3830. No unrelated code, API, formatting, or behavior changes are described.
Title check ✅ Passed The title clearly and concisely describes the main change: documenting the ParameterBuilder namespace and update_period loading requirements.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Full details: Linked Issues check

Explanation

The PR documents both requirements from issue #3830: load the YAML through ParameterBuilder("moveit_servo") and provide the root-level update_period parameter when AccelerationLimitedPlugin is enabled.

Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

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.

moveit_servo's shipped panda_simulated_config.yaml cannot be loaded on its own

1 participant