Skip to content

Add ROS 2 parameter viewing and setting#12

Merged
rosterloh merged 1 commit into
devfrom
feat/parameters
Jun 10, 2026
Merged

Add ROS 2 parameter viewing and setting#12
rosterloh merged 1 commit into
devfrom
feat/parameters

Conversation

@rosterloh

@rosterloh rosterloh commented Jun 9, 2026

Copy link
Copy Markdown
Owner

Summary

Adds end-to-end support for viewing and setting ROS 2 parameters on any node in the graph, reached through the standard rcl_interfaces parameter services.

  • Protocol (talos-common)ParamValue/ParamInfo types with text inference and round-trip-safe Display; ListParameters/GetParameters/SetParameter requests and Parameters/ParameterSet responses.
  • Agent (talos-agent) — Acts as a parameter service client: per request it creates short-lived clients to the target node's list_parameters/get_parameters/set_parameters services (serviced by the bridge's spinning executor), with bounded service-availability and call timeouts. ListParameters lists then fetches values in one round trip. Value conversions both directions.
  • CLI (talos-cli)list-params <node>, get-param <node> <names…>, set-param <node> <name> <value> (value type inferred; non-zero exit on rejection).
  • TUI (talos-tui) — New Params tab (5): node list → Enter loads params → e edits a value in place → Enter applies and auto-refreshes.
  • Docs (protocol/CLI/TUI pages + new features/parameters.md) and CHANGELOG.md updated.

Verification

The ROS-dependent crate can't be built without a ROS 2 environment, so:

  • Protocol — the real source was compiled standalone with serde+bincode; new round-trip + parse/Display tests pass (45 talos-common tests green overall, including the QUIC/UDS session tests that confirm new response variants pass through).
  • CLI + TUI — compiled in a clean workspace; no clippy warnings in new code.
  • Agent — the parameter handlers and conversions were compiled verbatim against a faithful stub of the exact rclrs 0.7 + rcl_interfaces API surface (field names, create_client/call/notify_on_service_ready signatures, the generic call_service, and Send-ness of the spawned handler futures). Added integration tests for the no-graph error path.

Note: parameter access targets other nodes' standard parameter services (like ros2 param), so the target node must be running; otherwise the agent returns a bounded-timeout error rather than hanging.

@rosterloh
rosterloh merged commit 9b3fc11 into dev Jun 10, 2026
2 checks passed
@rosterloh
rosterloh deleted the feat/parameters branch June 10, 2026 08:35
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.

1 participant