Skip to content

Fix Code Style On params/10-vision-filter - #2603

Open
github-actions[bot] wants to merge 13 commits into
params/10-vision-filterfrom
fix-code-style/params/10-vision-filter
Open

github-actions[bot] wants to merge 13 commits into
params/10-vision-filterfrom
fix-code-style/params/10-vision-filter

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

This pull request contains automatic style formatting for PR #2602. @yuvrajdhadwal, please merge this branch into your own to pass style checks!

@yuvrajdhadwal
yuvrajdhadwal force-pushed the params/10-vision-filter branch from 4f59fcc to 02d42ed Compare October 12, 2026 00:30
@github-actions
github-actions Bot force-pushed the fix-code-style/params/10-vision-filter branch from 851b0b9 to 47c16e3 Compare October 12, 2026 00:31
Adds rj_utils::declare_required_param<T>(node, name, description). It
declares a parameter with its type and description and no default, and
returns its value from the node's params file. A key missing from the
YAML, or given the wrong type, throws at startup naming the node and key.
(Humble does not throw on its own for a typed param with no value, so the
helper checks.)

Every migrated node uses it and no longer auto-declares params from the
params file. Params are read once at startup; to change one, edit the
YAML and restart the node.

Also fixes launch files that referenced a nonexistent sim.yaml.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@yuvrajdhadwal
yuvrajdhadwal force-pushed the params/10-vision-filter branch from 02d42ed to 7e7be35 Compare October 12, 2026 02:00
@github-actions
github-actions Bot force-pushed the fix-code-style/params/10-vision-filter branch from 47c16e3 to 0af0721 Compare October 12, 2026 02:01
jvogt23 and others added 11 commits October 13, 2026 19:53
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>
rj_ui had no parameters of its own; it only started the global param
provider to sync the soccer.* globals used by rj_common (layer 11
replaces those).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Removes straight_line_test_node instead of migrating its params: the
node, its LineTest message, the run_line_test launch argument, the
run-sim-line-test / run-line-test-stack / run-real-line-test make
targets, the line branch of framework.bash, and its YAML entries. The
Line position stays; the gameplay robot factory uses it.

Also drops the global param provider and auto-declared params from the
agent action client nodes, which read no params.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Replaces every planning PARAM_* global and deletes planning_params from
rj_param_utils.

- PlannerNode declares every /planner param once at startup
  (load_planning_params) into a PlanningParams struct and shares it
  read-only with each PlannerForRobot. Each PlanRequest carries it and
  planners read request.params, so planners no longer touch the node.
- Replanner::PlanParams takes ReplannerParams + IntermediateParams.
- MotionConstraints, RotationConstraints and RobotConstraints move from
  rj_common to rj_planning.
- Removes dead params: escape.* (unused since main removed RRT) and six
  collect.* values nothing has read since before this migration.
- SettlePathPlanner::invalid() passes intermediate params like the other
  call sites.
- settle_path_planner.hpp includes what it uses (it relied on unity-build
  batching).
- planner_test loads the params from sim_params.yaml exactly like
  PlannerNode, so it also catches a missing key.

The play-state speed cap still replaces max_translational_speed, as it
always has, so that param has no effect today (see make_request).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
From #2555. Drops the unused
LocalROS2ParamProvider and the rj_param_utils dependency, and declares
port instead of auto-declaring params.

Co-Authored-By: Yuvraj Dhadwal <ydhadwal3@gatech.edu>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
From #2555. The referee's
LocalROS2ParamProvider had no PARAM_* globals behind it, so it is removed
with the dependency. The referee nodes no longer auto-declare params.

The external referee declares team_name (set by soccer.launch.py) with
no default; it used to silently leave it empty. The internal referee
never read its team_name YAML key, so that key is removed.

Co-Authored-By: Yuvraj Dhadwal <ydhadwal3@gatech.edu>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
From #2555. Replaces the joystick DEFINE
macros with a ManualControlParams struct, declared and read once at
startup and shared read-only with the SDL controllers. Kick speed limits
now come from /manual_control instead of the soccer.robot.* globals.

- soccer.launch.py now passes the params file to manual_control_node;
  before, the /manual_control section was never loaded.
- All keys are in both YAMLs.
- Removes use_field_oriented_drive, damped_translation and
  damped_rotation, which nothing reads.

Co-Authored-By: Yuvraj Dhadwal <ydhadwal3@gatech.edu>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rams

From #2555. Replaces the vision filter
DEFINE macros and vision_params with a VisionFilterParams struct that the
VisionFilter node reads once at startup and shares as shared_ptr<const>
with the camera, Kalman filters, kick detectors, bounce logic and world
objects. Unit tests pass params in.

Rebased onto main (team color subscription, rj_constants and
rj_topic_utils removal). Removes params nothing reads: publish_hz,
kick.detector.slow_robot_dist_filter_cutoff and the two
vision_filter.bounce.*_lin_dampen values.

Co-Authored-By: Yuvraj Dhadwal <ydhadwal3@gatech.edu>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@jvogt23
jvogt23 force-pushed the params/10-vision-filter branch from 7e7be35 to 17f5e85 Compare October 14, 2026 00:23
@github-actions
github-actions Bot force-pushed the fix-code-style/params/10-vision-filter branch from 0af0721 to 288b50b Compare October 14, 2026 00:24
@jvogt23
jvogt23 force-pushed the params/10-vision-filter branch 7 times, most recently from 11e66e6 to cb3b997 Compare October 19, 2026 01:34
@jvogt23
jvogt23 force-pushed the params/10-vision-filter branch 3 times, most recently from de2bd66 to cdeda54 Compare October 21, 2026 04:01

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants