Conversation
Andrewyx
added this pull request to stack #3951
September 12, 2026 08:39
This was referenced Sep 12, 2026
Ports the field collider changes upstream made for the newer SSL field layouts (upstream 74afb1f4, d496e5ff, 48245210, c002db2f, db1fddb0): - triangular blocks that smooth out the corners of the field, which real fields have had since 2023. Both of our field configs now declare them, so a ball rolled into a corner is deflected instead of coming to rest in the corner - boundary_width_goal_line, for fields whose boundary behind the goal lines is wider than the one along the touch lines. It falls back to boundary_width, so our fields keep the walls exactly where they are, and the side walls of the goals now extend back to the wall - a mode for playing without any boundary area at all, where the goals stand outside the field lines and the wall behind the goal line is split around them The three new geometry fields are added to the simulator's world.proto and to our SSL_GeometryFieldSize, using the field numbers of the official SSL Vision protocol so that we stay compatible with real vision. Field keeps its single boundary_buffer_size for now; a non uniform boundary there belongs with adopting the 2026 field dimensions. Note that this also shifts the goals by half a line width, which is what upstream's code does (their comment says the opposite).
Andrewyx
force-pushed
the
Andrewyx/erforce_sim_field_colliders
branch
from
September 12, 2026 08:45
4951797 to
2daba48
Compare
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
Third of four stacked PRs porting upstream ER-Force simulator changes (#3912). Stacked on #3948.
Ports the field collider changes upstream made for the newer SSL field layouts (upstream
74afb1f4,d496e5ff,48245210,c002db2f,db1fddb0):corner_block_cathetus_length: 0.09), so a ball rolled into a corner is deflected instead of coming to rest in the corner itself.boundary_width_goal_line, for fields whose boundary behind the goal lines is wider than the one along the touch lines. It falls back toboundary_width, so our fields keep their walls exactly where they are; the side walls of the goals now extend back to the wall.The three new geometry fields are added to the simulator's
world.protoand to ourSSL_GeometryFieldSize, using the field numbers from the official SSL Vision protocol so we stay wire compatible with real vision.Fieldkeeps its singleboundary_buffer_sizefor now — a non uniform boundary there belongs with adopting the 2026 field dimensions, which this PR deliberately does not do (the sim still loads the 2020 configs).One behaviour change to flag: porting upstream's goal placement also shifts the goals outward by half a line width (5 mm). That is what upstream's code does; note that their comment says the opposite of their code, so this is worth a second opinion.
Testing Done
er_force_simulator_testcase: a ball driven into a field corner never enters the cut off corner triangle. Verified it is a real guard by removingcorner_block_cathetus_lengthfrom the config, where the ball reaches 0.035 m from the corner against the 0.0675 m threshold.ssl_geometry_testand the existing field configuration tests pass, i.e. the geometry round trip is unchanged when the new fields are absent.Resolved Issues
Part of #3912
Length Justification and Key Files to Review
247 lines. Key file:
src/extlibs/er_force_sim/src/amun/simulator/simfield.cpp.Review Checklist