Skip to content

Added practice field mode with single source of truth (not done, build-time only right now)#3790

Open
Muxite wants to merge 7 commits into
UBC-Thunderbots:masterfrom
Muxite:practice_field
Open

Added practice field mode with single source of truth (not done, build-time only right now)#3790
Muxite wants to merge 7 commits into
UBC-Thunderbots:masterfrom
Muxite:practice_field

Conversation

@Muxite

@Muxite Muxite commented Jun 20, 2026

Copy link
Copy Markdown
Contributor

Description

Added a new field mode with custom sizing primarily targeted for making smaller fields, but larger fields work as well.
Current approach has a .bzl file storing a dictionary of practice field dimensions, the bazel does text replacement at build-time. This allows the er-force sim dimensions that feed into SSL vision to be synced with createPracticeField().

Testing Done

Ran ./tbots.py run thunderscope --division practice which successfully played a game with no errors seen. Need to write unit tests. No field testing done yet, I hope to do that after my final.

Resolved Issues

resolves #3359

Length Justification and Key Files to Review

src/shared/practice_field_dims.bzl
src/proto/world.proto
src/software/world/field.h and field.cpp

Converted some meter constants into values proportional to field dimensions:
src/software/ai/hl/stp/play/kickoff_friendly/kickoff_friendly_play_fsm
src/software/ai/hl/stp/tactic/goalie/goalie_fsm
src/software/ai/hl/stp/play/shoot_or_chip/shoot_or_chip_play_fsm
src/software/ai/hl/stp/play/penalty_kick/penalty_kick_play_fsm

src/software/simulation/er_force_simulator.cpp -> loads "practice.txt"
src/software/er_force_simulator_main.cpp -> new cli option
src/proto/message_translation/tbots_protobuf.py -> adjusts robot spawns for field dims.

Review Checklist

It is the reviewers responsibility to also make sure every item here has been covered

  • [ x] Function & Class comments: All function definitions (usually in the .h file) should have a javadoc style comment at the start of them. For examples, see the functions defined in thunderbots/software/geom. Similarly, all classes should have an associated Javadoc comment explaining the purpose of the class.
  • [ x] Remove all commented out code
  • [x ] Remove extra print statements: for example, those just used for testing
  • [ x] Resolve all TODO's: All TODO (or similar) statements should either be completed or associated with a github issue

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.

Add a "Practice Field Mode"

1 participant