Skip to content

[params 3/13] rj_control: remove rj_param_utils, require control params - #2590

Open
yuvrajdhadwal wants to merge 10 commits into
params/02-radiofrom
params/03-control
Open

yuvrajdhadwal wants to merge 10 commits into
params/02-radiofrom
params/03-control

Conversation

@yuvrajdhadwal

@yuvrajdhadwal yuvrajdhadwal commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Description

Removes rj_param_utils from rj_control. Params are declared and read once at startup. MotionControlParams is passed as a shared pointer, allowing its consumers to read updated values on update, and basic validation is used in the change callback

@yuvrajdhadwal
yuvrajdhadwal added this pull request to stack #2598 October 12, 2026 00:12
@yuvrajdhadwal yuvrajdhadwal changed the title [params 3/6] rj_control: remove rj_param_utils, require control params [params 3/10] rj_control: remove rj_param_utils, require control params Oct 12, 2026
@yuvrajdhadwal yuvrajdhadwal changed the title [params 3/10] rj_control: remove rj_param_utils, require control params [params 3/11] rj_control: remove rj_param_utils, require control params Oct 12, 2026
@yuvrajdhadwal yuvrajdhadwal changed the title [params 3/11] rj_control: remove rj_param_utils, require control params [params 3/12] rj_control: remove rj_param_utils, require control params Oct 12, 2026
@yuvrajdhadwal yuvrajdhadwal changed the title [params 3/12] rj_control: remove rj_param_utils, require control params [params 3/13] rj_control: remove rj_param_utils, require control params Oct 12, 2026
Comment thread src/rj_param_utils/config/real_params.yaml
Comment thread src/rj_param_utils/config/sim_params.yaml
@jvogt23
jvogt23 force-pushed the params/03-control branch 2 times, most recently from b2e1759 to dbb4a63 Compare October 18, 2026 23:21
jvogt23 and others added 10 commits October 20, 2026 22:10
Declares timeout instead of the DEFINE macro and LocalROS2ParamProvider,
drops the global param provider, and removes the rj_param_utils
dependency. The radio node no longer auto-declares params.

sim_radio's interface had a silent localhost fallback (a workaround for
sim2play, whose launch path no longer exists). It is now required, and
real_params.yaml gets interface: 127.0.0.1 so running the sim radio with
the real params behaves as before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Motion control already read its gains and limits from /control; the
LocalROS2ParamProvider and global param provider were unused and are
removed. Params are now declared, read once at startup:

- Limits shared by every robot (max_velocity, max_angular_velocity,
  windups) are declared once on the node and passed to each controller.
  Before, all 16 controllers read the same keys.
- Each controller declares its own robot_N.* gains.
- Controllers are held by unique_ptr and are non-copyable/non-movable,
  since their subscriptions capture this.
- Removes max_acceleration, which was read but never used.

kNumShells is 16 but the YAMLs only had gains for robot_0..robot_5, so
shells 6-15 ran with uninitialized gains. Adds robot_6..robot_15 to both
YAMLs with robot_5's values.

motion_control_test now gives its node the gains; it used to build a
controller on a bare node with uninitialized gains.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
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.

3 participants