Kickoff enemy play and kickoff friendly play to FSM with targeting changes #3578
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:
If there is a clear shot into net: shoot
If there is not a clear shot into net: find the largest open circle on the opponent side of the field, and chip the ball into that area.
Testing Done
The kickoff works on thunderscope with both sides of robots working properly, but I have issues writing a test specificaly to simulate the direct shot condition. Testing also works for the regular largest-open-circle chip. However test coverage does not cover the shooting part of the FSM.
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
The PR is not done but comments on what to improve would be good. I need to add FSM docs.
.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