Kickoff enemy play and kickoff friendly play to FSM with targeting changes#3578
Merged
Muxite merged 39 commits intoUBC-Thunderbots:masterfrom Mar 22, 2026
Merged
Kickoff enemy play and kickoff friendly play to FSM with targeting changes#3578Muxite merged 39 commits intoUBC-Thunderbots:masterfrom
Muxite merged 39 commits intoUBC-Thunderbots:masterfrom
Conversation
# Conflicts: # src/software/ai/hl/stp/play/kickoff_enemy_play.cpp # src/software/ai/hl/stp/play/kickoff_enemy_play.h # src/software/ai/hl/stp/play/kickoff_friendly/kickoff_friendly_play.h # src/software/ai/hl/stp/play/kickoff_friendly_play.cpp # src/software/ai/hl/stp/play/kickoff_play_test.py
GrayHoang
reviewed
Feb 15, 2026
src/software/ai/hl/stp/play/kickoff_friendly/kickoff_friendly_play_fsm.h
Outdated
Show resolved
Hide resolved
GrayHoang
reviewed
Feb 15, 2026
Contributor
GrayHoang
left a comment
There was a problem hiding this comment.
Needs some minor changes to fit within the new fsm hierarchy
4 tasks
Comment out the kickoff_friendly_play_cpp_test target in BUILD file.
StarrryNight
reviewed
Mar 9, 2026
Contributor
StarrryNight
left a comment
There was a problem hiding this comment.
LGTM. Left some comments.
src/software/ai/hl/stp/play/kickoff_enemy/kickoff_enemy_play_fsm.h
Outdated
Show resolved
Hide resolved
src/software/ai/hl/stp/play/kickoff_enemy/kickoff_enemy_play_fsm.h
Outdated
Show resolved
Hide resolved
src/software/ai/hl/stp/play/kickoff_friendly/kickoff_friendly_play.cpp
Outdated
Show resolved
Hide resolved
src/software/ai/hl/stp/play/kickoff_friendly/kickoff_friendly_play_fsm.h
Outdated
Show resolved
Hide resolved
src/software/ai/hl/stp/play/kickoff_friendly/kickoff_friendly_play_fsm.cpp
Outdated
Show resolved
Hide resolved
williamckha
reviewed
Mar 21, 2026
Member
williamckha
left a comment
There was a problem hiding this comment.
Looks good overall! Small nits
src/software/ai/hl/stp/play/kickoff_enemy/kickoff_enemy_play_fsm.h
Outdated
Show resolved
Hide resolved
e1473d2 to
ca64244
Compare
87d803f to
7041c03
Compare
williamckha
approved these changes
Mar 22, 2026
StarrryNight
approved these changes
Mar 22, 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
Converts kickoff enemy play and kickoff friendly play to FSMs, while improving the kickoff targeting, and rewriting tests.
For kickoff friendly play:
FInd the largest open circle on the opponent side of the field, and chip the ball into that area. It chooses a viable target that is preferably close to the enemy net center. It also filters out points too close to the edges. Good preliminary settings for X and Y padding were found in Thunderscope. However, I think this should be parameterized and run with a barrage of simulated tests to evaluate these settings, or a better algorithm/heuristic should be found.
Testing Done
The kickoff works on thunderscope with both sides of robots working properly. Testing works for the regular largest-open-circle chip.
Resolved Issues
3296, 3287
Length Justification and Key Files to Review
software/ai/hl/stp/play/kickoff_enemy/
software/ai/hl/stp/play/kickoff_friendly/
software/ai/hl/stp/play/kickoff_play_test.py
Review Checklist
.hfile) should have a javadoc style comment at the start of them. For examples, see the functions defined inthunderbots/software/geom. Similarly, all classes should have an associated Javadoc comment explaining the purpose of the class.TODO(or similar) statements should either be completed or associated with a github issue