Conversation
Andrewyx
added this pull request to stack #3951
September 12, 2026 08:39
This was referenced Sep 12, 2026
Ports the realism options that upstream added to their simulator since we forked it. All of them default to off, so the simulator behaves exactly as before unless they are configured. - missing_robot_detections (upstream 0f49e671), and missing ball detections are now rolled per camera instead of for all cameras at once (upstream 6bb0bdce), which is what the real vision does - command_delay (upstream 89158739). Our fork applies robot control commands immediately rather than from a queue, so delayed commands are held in a per team queue and applied, with their radio responses, once the delay passed - robot_rotation_error (upstream b6c119de), which makes a robot drift instead of driving perfectly straight - rotated_robot_detections_start/stop (upstream 2a94f56b), which reports a robot a second time with its pattern misread as the one rotated by 90 degrees The robot detection code in getWrapperPackets moves into createRobotDetection along the way, mirroring upstream. Realism settings that live on the robots themselves are applied through applyRobotRealism, so that robots created after the configuration arrives (by setTeam, moveRobot or resetFlipped) get them too; upstream only applies them to robots that already exist. createRealisticRealismConfig is synced with upstream's Realistic.txt, keeping our perfect dribbler, and no longer sets missing_ball_detections twice.
Andrewyx
force-pushed
the
Andrewyx/erforce_sim_realism_options
branch
from
September 12, 2026 08:45
76e0bd4 to
c96528a
Compare
Contributor
Author
|
closing for now. expected revisit winter 2026. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
WIP Claude Template
Second of four stacked PRs porting upstream ER-Force simulator changes (#3912). Stacked on #3947.
This PR ports the realism options upstream added since our fork. All of them default to off, so the simulator behaves exactly as it does today unless they are configured:
missing_robot_detections(upstream0f49e671), and missing ball detections are now rolled per camera instead of for all cameras at once (upstream6bb0bdce), which is what the real vision does.command_delay(upstream89158739). Our fork applies robot control commands immediately rather than from a queue, so delayed commands are held in a per team queue and applied, with their radio responses, once the delay has passed.robot_rotation_error(upstreamb6c119de), which makes a robot drift instead of driving perfectly straight.rotated_robot_detections_start/stop(upstream2a94f56b), which reports a robot a second time with its pattern misread as the one rotated by 90 degrees.Two things worth a reviewer's attention:
getWrapperPacketsmoves intocreateRobotDetection, mirroring upstream. This is the bulk of the diff and is a straight extraction.applyRobotRealism, so robots created after the configuration arrives (setTeam,moveRobot,resetFlipped) get them too. Upstream only applies them to robots that already exist, which I believe is a bug on their side.createRealisticRealismConfigis synced with upstream'sRealistic.txt, keeping our perfect dribbler, and no longer setsmissing_ball_detectionstwice (it set 0.05 then 0.02; 0.02 is what it has actually been doing, so that is what it keeps).Testing Done
er_force_simulator_test: robots are always detected by default, never detected atmissing_robot_detections=1, rotated detections are reported on top of the real one with the rotated pattern id, and commands only take effect aftercommand_delay. The command delay test compares against an undelayed run and fails if the delay path is disabled.Resolved Issues
Part of #3912
Length Justification and Key Files to Review
542 lines, of which roughly half is the
createRobotDetectionextraction and its tests. The options share that one code path, so splitting them into separate PRs would mean moving the same block repeatedly. Key files:src/extlibs/er_force_sim/src/amun/simulator/simulator.cppandsimulator.h.Review Checklist