Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve FreeKickPlay behaviour and convert it to use FSMs #2953

Draft
wants to merge 242 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 17 commits
Commits
Show all changes
242 commits
Select commit Hold shift + click to select a range
021d61d
added pass speed cost function
sauravbanna May 13, 2023
1657a93
testing
sauravbanna May 17, 2023
3f9dc79
testing
sauravbanna May 18, 2023
1c08c7d
test
sauravbanna May 20, 2023
4f21d2e
test
sauravbanna May 20, 2023
b59eb7d
testing
sauravbanna May 20, 2023
ae4adab
testing
sauravbanna May 22, 2023
f40af89
testing
sauravbanna May 26, 2023
d482e6b
test
sauravbanna May 26, 2023
6f34861
fix
sauravbanna May 27, 2023
9010163
fixed cost function
sauravbanna May 27, 2023
84c3a4f
formatting
sauravbanna May 27, 2023
ebbeb5e
Merge branch 'master' of github.com:UBC-Thunderbots/Software into sau…
sauravbanna May 27, 2023
c5e34df
fix
sauravbanna May 27, 2023
b34e972
test
sauravbanna May 27, 2023
5021ade
test
sauravbanna May 28, 2023
a9725ec
test
sauravbanna Jun 3, 2023
fd34328
Merge branch 'master' of github.com:UBC-Thunderbots/Software into sau…
sauravbanna Jun 3, 2023
023d854
fix tests
sauravbanna Jun 3, 2023
c72e46c
formatting + docs
sauravbanna Jun 3, 2023
044e7a2
formatting + docs
sauravbanna Jun 3, 2023
a8bd1c1
test
sauravbanna Jun 12, 2023
babac45
Merge branch 'master' of github.com:UBC-Thunderbots/Software into sau…
sauravbanna Jun 12, 2023
ff36d13
test
sauravbanna Jun 13, 2023
5cc2e7f
added tests for backward passes
sauravbanna Jun 16, 2023
4a15972
uncomment + formatting
sauravbanna Jun 16, 2023
0ca8c80
docs
sauravbanna Jun 16, 2023
3327f89
fix
sauravbanna Jun 16, 2023
5893fe8
added new field tets for passing
sauravbanna Jun 17, 2023
ff478bf
fix
sauravbanna Jun 17, 2023
80e07c2
fixed tests
sauravbanna Jun 18, 2023
e3dfe1d
fix
sauravbanna Jun 24, 2023
d97fe64
fix
sauravbanna Jun 24, 2023
00e1e55
Merge branch 'master' of github.com:UBC-Thunderbots/Software into sau…
sauravbanna Jun 24, 2023
b473d69
fix tests
sauravbanna Jun 24, 2023
d02f173
fix?
sauravbanna Jun 24, 2023
0ccf164
fix?
sauravbanna Jun 24, 2023
e8a71e3
Fix free kick passing
raymond212 Jun 26, 2023
8a19f00
Implement shooting behavior if possible
raymond212 Jun 26, 2023
b75ca77
Move free kick play to new folder
raymond212 Jun 26, 2023
d8674ed
Fix build file
raymond212 Jun 26, 2023
36b7990
Merge branch 'master' of github.com:UBC-Thunderbots/Software into ray…
raymond212 Jun 27, 2023
13fec3f
Convert FreeKickPlay to use FSMs
raymond212 Jun 27, 2023
f4ee834
Remove unused imports
raymond212 Jun 27, 2023
1290070
wip
raymond212 Jun 28, 2023
3f94ad0
wip
raymond212 Jun 28, 2023
a7a1a72
Revert changes to free kick test
raymond212 Jun 28, 2023
ad6ff93
fix tests
sauravbanna Jun 29, 2023
2f75bd7
Add docs
raymond212 Jun 30, 2023
33d1506
Improve commenting
raymond212 Jul 3, 2023
c3695f4
Delete extra newline
raymond212 Jul 3, 2023
e227cdc
Initialize constants in header file
raymond212 Jul 3, 2023
8645098
Improve log for free kick passing
raymond212 Jul 3, 2023
99eceba
Start moving pass receivers earlier
raymond212 Jul 3, 2023
36f2f04
Fix formatting
raymond212 Jul 3, 2023
45771d3
Merge branch 'master' of github.com:UBC-Thunderbots/Software into sau…
sauravbanna Oct 14, 2023
fc30414
Add docs
raymond212 Oct 28, 2023
37422e6
Undo change in pytest
raymond212 Oct 28, 2023
37d3785
Merge branch 'master' of github.com:UBC-Thunderbots/Software into sau…
sauravbanna Nov 19, 2023
629a936
Merge branch 'master' of github.com:UBC-Thunderbots/Software into sau…
sauravbanna Feb 3, 2024
3844cb2
[pre-commit.ci lite] apply automatic fixes
pre-commit-ci-lite[bot] Feb 3, 2024
77d2354
implemented new pass changes
sauravbanna Feb 3, 2024
6954b80
Merge branch 'master' of github.com:UBC-Thunderbots/Software into sau…
sauravbanna Feb 3, 2024
62dda73
Merge branch 'saurav_banna/pass_speed_cost' of github.com:sauravbanna…
sauravbanna Feb 3, 2024
7df5317
fix
sauravbanna Feb 3, 2024
03d8344
removed unecessary changes
sauravbanna Feb 4, 2024
fbb2563
[pre-commit.ci lite] apply automatic fixes
pre-commit-ci-lite[bot] Feb 4, 2024
ee2b01b
formatting
sauravbanna Feb 4, 2024
b14e6c6
Merge branch 'master' of github.com:UBC-Thunderbots/Software into sau…
sauravbanna Feb 10, 2024
6e99bc1
Merge branch 'saurav_banna/pass_speed_cost' of github.com:sauravbanna…
sauravbanna Feb 10, 2024
de6aaa2
fix types
sauravbanna Feb 10, 2024
0c3c936
fix
sauravbanna Feb 11, 2024
423c981
testing changes
sauravbanna Feb 11, 2024
a1f5fcc
fix
sauravbanna Feb 11, 2024
67d5c57
[pre-commit.ci lite] apply automatic fixes
pre-commit-ci-lite[bot] Feb 11, 2024
c2c1a22
removed unecessary changes
sauravbanna Feb 11, 2024
91d3e91
WIP error with map brace initialization in play.cpp
nimazareian Feb 12, 2024
9bfbb74
Visualize shapes in debug layer
nimazareian Feb 13, 2024
0338547
Visualize other shapes
nimazareian Feb 13, 2024
540fb56
todo
nimazareian Feb 14, 2024
7b127db
fix
sauravbanna Feb 14, 2024
55fb728
Revert "fix"
sauravbanna Feb 14, 2024
dba41a4
merge
sauravbanna Feb 14, 2024
7cffa2c
[pre-commit.ci lite] apply automatic fixes
pre-commit-ci-lite[bot] Feb 14, 2024
de1b49a
formatting
sauravbanna Feb 14, 2024
7ad435b
Merge branch 'saurav_banna/pass_speed_cost' of
sauravbanna Feb 14, 2024
ea5d942
fix bug
sauravbanna Feb 14, 2024
48b0023
Update to use map and visualize 3 shapes
nimazareian Feb 17, 2024
527287a
clean up
nimazareian Feb 17, 2024
88864b0
formatting
nimazareian Feb 17, 2024
9426966
cleanup
nimazareian Feb 17, 2024
716e001
fix
sauravbanna Feb 17, 2024
38f0ee6
bug
sauravbanna Feb 17, 2024
83000b3
Cleanup parameter names
nimazareian Feb 20, 2024
ce40aef
Merge branch 'master' of https://github.com/UBC-Thunderbots/Software …
nimazareian Feb 20, 2024
17c02ae
merge
sauravbanna Mar 10, 2024
c5ffe99
[pre-commit.ci lite] apply automatic fixes
pre-commit-ci-lite[bot] Mar 10, 2024
88ce00f
fix tests
sauravbanna Mar 14, 2024
283a02a
Merge branch 'saurav_banna/pass_speed_cost' of github.com:sauravbanna…
sauravbanna Mar 14, 2024
608f743
Merge branch 'master' of github.com:UBC-Thunderbots/Software into sau…
sauravbanna Mar 14, 2024
482a18d
[pre-commit.ci lite] apply automatic fixes
pre-commit-ci-lite[bot] Mar 14, 2024
5862749
merge
sauravbanna Mar 15, 2024
bdcccc1
Merge branch 'saurav_banna/pass_speed_cost' of github.com:sauravbanna…
sauravbanna Mar 15, 2024
96672f0
fix build
sauravbanna Mar 15, 2024
62fa115
test
sauravbanna Mar 16, 2024
0e35e7e
fix
sauravbanna Mar 16, 2024
732d579
fix
sauravbanna Mar 20, 2024
94fd82b
Merge branch 'master' of github.com:UBC-Thunderbots/Software into sau…
sauravbanna Mar 20, 2024
7e8e61a
Merge branch 'master' of https://github.com/UBC-Thunderbots/Software …
nimazareian Mar 21, 2024
29144df
merge
sauravbanna Mar 23, 2024
43ee59a
address comments
sauravbanna Mar 23, 2024
e26305a
[pre-commit.ci lite] apply automatic fixes
pre-commit-ci-lite[bot] Mar 23, 2024
f84b0bd
merge + fix
sauravbanna Mar 30, 2024
b4354db
Merge branch 'saurav_banna/pass_speed_cost' of github.com:sauravbanna…
sauravbanna Mar 30, 2024
7abec48
new sampling pass generator
sauravbanna Mar 30, 2024
ad3ce9c
Initial jank working implementation
nimazareian Mar 31, 2024
69d5f65
Merge remote-tracking branch 'origin/nima/tscope_debug_layer' into ni…
nimazareian Mar 31, 2024
b3e59d6
updated rateZoneSmart based on previous implementation. Should visual…
nimazareian Mar 31, 2024
5f613a2
Not sure why there's no pass cost viz
nimazareian Mar 31, 2024
723e66c
fixing stuff
sauravbanna Mar 31, 2024
f0e33f8
fix bug
sauravbanna Apr 6, 2024
43c15ed
rewrite compiles but doesn't work. pulled master
nimazareian Apr 29, 2024
4043eaa
Fix bug
nimazareian Apr 30, 2024
d082c78
tune some constants, update viz, and formatting
nimazareian Apr 30, 2024
c79e4f9
updated recv rating and added some code.
nimazareian Apr 30, 2024
aa68222
spread out receivers
nimazareian Apr 30, 2024
e455be8
freeze layers if sim paused
nimazareian Apr 30, 2024
d99a7e9
Update debug shapes to include unique ID
nimazareian Apr 30, 2024
aeda8f7
wip
nimazareian May 3, 2024
710317a
Merge branch 'master' of github.com:UBC-Thunderbots/Software into sau…
sauravbanna May 4, 2024
3ed7f18
fix heatmap visualization
nimazareian May 4, 2024
2c29a12
cleanup and additional fixed
nimazareian May 4, 2024
33eb3d4
Update some parameter constants + fix calculateInterceptRisk
nimazareian May 5, 2024
90515f1
Merge prev changes
nimazareian May 5, 2024
cf333d0
Update calculateInterceptRisk and ratePassShootScore
nimazareian May 5, 2024
8140017
fix typo
nimazareian May 6, 2024
f869d6a
merge saurav's old changes
nimazareian May 6, 2024
a2a58e2
changes
sauravbanna May 6, 2024
92d560d
Merge latest saurav changes
nimazareian May 6, 2024
0988ec3
Keepaway doesn't look away unless in risk, receiver positions are spr…
nimazareian May 7, 2024
93d6b57
add simulation speed control
nimazareian May 7, 2024
56022c5
Fix abort pass constants which improves one touch kick chance. Update…
nimazareian May 7, 2024
9e9b57c
Update variable sim speed to use qmenu
nimazareian May 7, 2024
28ab1dc
add ReceiverTacticConfig
nimazareian May 8, 2024
565a925
Receivers position themselves based on pass destination for passes in…
nimazareian May 8, 2024
2d9a38b
Remove unnecessary check in AttackerFSM::shouldKick
nimazareian May 8, 2024
89da4e8
Update freekick play
nimazareian May 8, 2024
73bcaa0
Use Pass::fromDestReceiveSpeed
nimazareian May 8, 2024
82246b7
refactor keepaway cost functions and visualize them
nimazareian May 8, 2024
4ac04ff
Don't refresh layers if sim is paused
nimazareian May 8, 2024
a66c524
Added createAttackerVisualization proto. Need to update tscope to vis…
nimazareian May 8, 2024
2d95d77
Add gl_attacker_layer.py
nimazareian May 9, 2024
c8a7b87
Formatting
nimazareian May 9, 2024
bcfd6f7
Add shortcut for changing sim speed
nimazareian May 9, 2024
7df74a5
Add attacker tactic visualizations, thunderscope sim speed control, u…
nimazareian May 9, 2024
6c0d8db
Add function docs
nimazareian May 9, 2024
54d12aa
merge changes in from PR
nimazareian May 9, 2024
d77489c
update calculateInterceptRisk and add constants to parameters.proto
nimazareian May 10, 2024
0718d47
Reorder parameters for passing for visualization and add new params f…
nimazareian May 10, 2024
fa9cbcb
Merge branch 'master' of https://github.com/UBC-Thunderbots/Software …
raymond212 May 19, 2024
2338acf
address comments + fix tests
sauravbanna May 22, 2024
72d2a5e
fix
sauravbanna May 22, 2024
95df696
fix
sauravbanna May 22, 2024
bbd3c03
Merge branch 'master' of https://github.com/UBC-Thunderbots/Software …
raymond212 May 25, 2024
ab56c66
Delete CornerKickPlay
raymond212 May 25, 2024
af5d7b2
Use dynamic params, fix formatting
raymond212 May 25, 2024
ac5e2bf
Build with optimization flags by default and don't run under GDB by d…
nimazareian May 27, 2024
a092b33
Remove -o comment
nimazareian May 27, 2024
0a51461
Support ignoring robots to pass to and Remove BasePassGenerator
nimazareian May 27, 2024
01b35a4
Add score for open angle for ratePassShootScore
nimazareian May 28, 2024
a0e8e76
clean up ratePassShootScore and add constants to parameters.proto
nimazareian May 28, 2024
2d081f3
Add passing config to most cost functions and cleanup. KeepAwayTest i…
nimazareian May 28, 2024
be2e223
Merge branch 'master' of https://github.com/UBC-Thunderbots/Software …
nimazareian May 29, 2024
5accce4
Fix calculateProximityRisk
nimazareian May 29, 2024
3db0eb1
Merge branch 'master' of https://github.com/UBC-Thunderbots/Software …
nimazareian May 29, 2024
5518d50
Fix merge
nimazareian May 29, 2024
4490a00
Move more constants to parameters.proto Add documentation to receiver…
nimazareian May 29, 2024
3e974b5
Fix tests in cost_function_test.cpp and remove TODOs. Visualize addit…
nimazareian May 30, 2024
ec2cfad
Add tests for newly added cost functions
nimazareian May 30, 2024
fcb1f47
fix shoot_or_pass_play_fsm_test.cpp
nimazareian May 30, 2024
3edfabe
add size check to shoot_or_pass_play_fsm.cpp
nimazareian May 30, 2024
83767c3
update attacker_tactic_keep_away_test.cpp to ignore checks
nimazareian May 30, 2024
3cefcc1
remove extra passing_sim_test.py due to bad merge
nimazareian May 30, 2024
3b25a39
Merge nima/default_optimized_build
nimazareian May 31, 2024
bdc48b7
Fix formatting
nimazareian May 31, 2024
8aeeb69
Move debug pass visualizations to parameters.proto
nimazareian May 31, 2024
e2aa419
WIP receiver_position_generator_test.cpp
nimazareian Jun 2, 2024
d2fd4ff
Merge branch 'master' of https://github.com/UBC-Thunderbots/Software …
raymond212 Jun 2, 2024
ed26163
Fix formatting
raymond212 Jun 2, 2024
38c52f2
Fix build file
raymond212 Jun 2, 2024
b187d60
Replace sampling_pass_generator with gradient_descent_pass_generator
nimazareian Jun 5, 2024
ea41c7d
Added ratePassNotTooClose and formatting
nimazareian Jun 5, 2024
7d1045d
Update gradient_descent_pass_generator to store prev best passes per …
nimazareian Jun 5, 2024
3aaa838
some cleanup
nimazareian Jun 5, 2024
988f9e7
todo
nimazareian Jun 6, 2024
88e34f2
Make sampling circle dynamic
nimazareian Jun 6, 2024
10a4c19
some cleanup
nimazareian Jun 6, 2024
4f2423a
formatting
nimazareian Jun 6, 2024
99b8538
cleanup receiver_position_generator
nimazareian Jun 7, 2024
933482e
address some of the comments
nimazareian Jun 7, 2024
8e36a9e
Remove old pass gen code
nimazareian Jun 7, 2024
44ad24e
Add tests for new pass gen
nimazareian Jun 8, 2024
aec3f53
remove extra cost functions
nimazareian Jun 8, 2024
eb400f2
Merge branch 'master' of https://github.com/UBC-Thunderbots/Software …
nimazareian Jun 8, 2024
c3eae3b
update ShootOrPassPlayFSM::passFound to stop the passes from being ab…
nimazareian Jun 8, 2024
7f0004b
Remove old TODOs
nimazareian Jun 8, 2024
2bd1222
Revert Thunderscope changes
nimazareian Jun 8, 2024
068a516
Some more cleanup
nimazareian Jun 8, 2024
f781fc5
Add enemy_interception_time_multiplier
nimazareian Jun 8, 2024
58627e9
Merge branch 'master' of https://github.com/UBC-Thunderbots/Software …
nimazareian Jun 10, 2024
602068b
wip fixes
nimazareian Jun 11, 2024
4cf6976
formatting
nimazareian Jun 11, 2024
52c3512
fix shoot or pass fsm test
nimazareian Jun 11, 2024
c77da48
Addressing PR comments
nimazareian Jun 12, 2024
cac2cd6
Add tests for receiver_position_generator
nimazareian Jun 12, 2024
6cd95fe
Fix tests
nimazareian Jun 12, 2024
0a12519
cleanup
nimazareian Jun 12, 2024
f6869fc
Re-enable old tests
nimazareian Jun 12, 2024
63160f8
Use normalizeValueToRange
nimazareian Jun 14, 2024
e3f2a03
Merge branch 'master' of https://github.com/UBC-Thunderbots/Software …
nimazareian Jun 15, 2024
7a0beeb
address some comments
nimazareian Jun 17, 2024
6ef07ff
add TODO for ball model
nimazareian Jun 18, 2024
bb8dd4c
Remove dup comment
nimazareian Jun 21, 2024
8374bd9
Reserve play 5 to not break logs
raymond212 Jun 22, 2024
2f821f6
Merge branch 'master' of https://github.com/UBC-Thunderbots/Software …
raymond212 Jun 22, 2024
f8a1c84
Add crease defenders, experiment with chip passing
raymond212 Jun 22, 2024
28f114f
Chip towards enemy goal center
raymond212 Jun 22, 2024
a984e18
Shoot ball at max speed
raymond212 Jun 22, 2024
0505164
fix bug in pytest sequenced eventual validations
nimazareian Jun 23, 2024
a649732
Cleanup passing_sim_test.py and few small bug fixes
nimazareian Jun 23, 2024
3abd47d
[pre-commit.ci lite] apply automatic fixes
pre-commit-ci-lite[bot] Jun 23, 2024
9b710f3
disable shoot_or_pass_play_test.cpp again
nimazareian Jun 24, 2024
22b9a28
Merge branch 'refs/heads/nima/receiver_position_generator2' into nima…
nimazareian Jun 25, 2024
0c0f786
wip. should update get behind ball polygon and check speed
nimazareian Jun 27, 2024
1220776
Update behind ball polygon and update kick/chip fsm
nimazareian Jun 27, 2024
af86297
wip using defense play
nimazareian Jun 27, 2024
7e1a86a
working impl of using defense play
nimazareian Jun 28, 2024
e4e0933
formatting and update some logic
nimazareian Jun 28, 2024
3a1a0b8
additional cleanup
nimazareian Jun 28, 2024
b81dfa3
remove extra ;
nimazareian Jun 28, 2024
4fa603b
remove -0.5 kick speed
nimazareian Jun 28, 2024
45e47f8
Add some basic validations for friendly freekick
nimazareian Jun 28, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions docs/fsm-diagrams.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,29 @@ Terminate:::terminate --> Terminate:::terminate

```

## [FreeKickPlayFSM](/src/software/ai/hl/stp/play/free_kick/free_kick_play_fsm.h)

```mermaid

stateDiagram-v2
classDef terminate fill:white,color:black,font-weight:bold
direction LR
[*] --> SetupPositionState
SetupPositionState --> SetupPositionState : [!setupDone]\n<i>setupPosition</i>
SetupPositionState --> ShootState : [shotFound]
ShootState --> ShootState : [!shotDone]\n<i>shootBall</i>
ShootState --> Terminate:::terminate : [shotDone]
SetupPositionState --> AttemptPassState : <i>startLookingForPass</i>
AttemptPassState --> ChipState : [timeExpired]
AttemptPassState --> AttemptPassState : [!passFound]\n<i>lookForPass</i>
AttemptPassState --> PassState : [passFound]
PassState --> PassState : [!passDone]\n<i>passBall</i>
PassState --> Terminate:::terminate : [passDone]
ChipState --> ChipState : [!chipDone]\n<i>chipBall</i>
ChipState --> Terminate:::terminate : [chipDone]

```

## [OffensePlayFSM](/src/software/ai/hl/stp/play/offense/offense_play_fsm.h)

```mermaid
Expand Down
52 changes: 1 addition & 51 deletions src/software/ai/hl/stp/play/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -110,31 +110,6 @@ cc_library(
alwayslink = True,
)

cc_library(
name = "free_kick_play",
srcs = ["free_kick_play.cpp"],
hdrs = ["free_kick_play.h"],
deps = [
":corner_kick_play",
":play",
"//shared:constants",
"//software/ai/evaluation:enemy_threat",
"//software/ai/evaluation:find_open_areas",
"//software/ai/evaluation:possession",
"//software/ai/hl/stp/tactic/chip:chip_tactic",
"//software/ai/hl/stp/tactic/crease_defender:crease_defender_tactic",
"//software/ai/hl/stp/tactic/goalie:goalie_tactic",
"//software/ai/hl/stp/tactic/move:move_tactic",
"//software/ai/hl/stp/tactic/receiver:receiver_tactic",
"//software/ai/passing:eighteen_zone_pitch_division",
"//software/ai/passing:pass_generator",
"//software/logger",
"//software/util/generic_factory",
"//software/world:ball",
],
alwayslink = True,
)

cc_library(
name = "kickoff_enemy_play",
srcs = ["kickoff_enemy_play.cpp"],
Expand Down Expand Up @@ -238,14 +213,14 @@ cc_library(
":enemy_ball_placement_play",
":enemy_free_kick_play",
":example_play",
":free_kick_play",
":halt_play",
":kickoff_enemy_play",
":kickoff_friendly_play",
":shoot_or_chip_play",
":stop_play",
"//software/ai/hl/stp/play/crease_defense:crease_defense_play",
"//software/ai/hl/stp/play/defense:defense_play",
"//software/ai/hl/stp/play/free_kick:free_kick_play",
"//software/ai/hl/stp/play/hardware_challenge_plays:dribbling_parcour_play",
"//software/ai/hl/stp/play/hardware_challenge_plays:pass_endurance_play",
"//software/ai/hl/stp/play/hardware_challenge_plays:scoring_from_contested_possession_play",
Expand Down Expand Up @@ -443,31 +418,6 @@ py_test(
],
)

cc_test(
name = "free_kick_play_cpp_test",
srcs = ["free_kick_play_test.cpp"],
deps = [
"//shared/test_util:tbots_gtest_main",
"//software/ai/hl/stp/play:free_kick_play",
"//software/simulated_tests:simulated_er_force_sim_play_test_fixture",
"//software/simulated_tests/validation:validation_function",
"//software/test_util",
"//software/time:duration",
"//software/world",
],
)

py_test(
name = "free_kick_play_test",
srcs = ["free_kick_play_test.py"],
tags = ["exclusive"],
deps = [
"//software/simulated_tests:simulated_test_fixture",
"//software/simulated_tests:validation",
requirement("pytest"),
],
)

cc_test(
name = "shoot_or_chip_play_cpp_test",
srcs = ["shoot_or_chip_play_test.cpp"],
Expand Down
58 changes: 58 additions & 0 deletions src/software/ai/hl/stp/play/free_kick/BUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
package(default_visibility = ["//visibility:public"])

load("@simulated_tests_deps//:requirements.bzl", "requirement")

cc_library(
name = "free_kick_play",
srcs = [
"free_kick_play.cpp",
"free_kick_play_fsm.cpp",
],
hdrs = [
"free_kick_play.h",
"free_kick_play_fsm.h",
],
deps = [
"//shared:constants",
"//software/ai/evaluation:enemy_threat",
"//software/ai/evaluation:find_open_areas",
"//software/ai/evaluation:possession",
"//software/ai/hl/stp/play",
"//software/ai/hl/stp/tactic/chip:chip_tactic",
"//software/ai/hl/stp/tactic/crease_defender:crease_defender_tactic",
"//software/ai/hl/stp/tactic/goalie:goalie_tactic",
"//software/ai/hl/stp/tactic/move:move_tactic",
"//software/ai/hl/stp/tactic/receiver:receiver_tactic",
"//software/ai/passing:eighteen_zone_pitch_division",
"//software/ai/passing:pass_generator",
"//software/logger",
"//software/util/generic_factory",
"//software/world:ball",
],
alwayslink = True,
)

cc_test(
name = "free_kick_play_cpp_test",
srcs = ["free_kick_play_test.cpp"],
deps = [
"//shared/test_util:tbots_gtest_main",
"//software/ai/hl/stp/play/free_kick:free_kick_play",
"//software/simulated_tests:simulated_er_force_sim_play_test_fixture",
"//software/simulated_tests/validation:validation_function",
"//software/test_util",
"//software/time:duration",
"//software/world",
],
)

py_test(
name = "free_kick_play_test",
srcs = ["free_kick_play_test.py"],
tags = ["exclusive"],
deps = [
"//software/simulated_tests:simulated_test_fixture",
"//software/simulated_tests:validation",
requirement("pytest"),
],
)
30 changes: 30 additions & 0 deletions src/software/ai/hl/stp/play/free_kick/free_kick_play.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#include "software/ai/hl/stp/play/free_kick/free_kick_play.h"

#include "shared/constants.h"
#include "software/util/generic_factory/generic_factory.h"

FreeKickPlay::FreeKickPlay(TbotsProto::AiConfig config)
: Play(config, true), fsm{FreeKickPlayFSM{config}}, control_params{}
{
}

void FreeKickPlay::getNextTactics(TacticCoroutine::push_type &yield, const World &world)
{
// This function doesn't get called so it does nothing, will be removed once
// coroutines are phased out
}

void FreeKickPlay::updateTactics(const PlayUpdate &play_update)
{
fsm.process_event(FreeKickPlayFSM::Update(control_params, play_update));
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FreeKickPlayFSM shouldn't be in control of all the robots and do its own defense behavior. Delegate some of the robots to DefensePlay and remove defensive behaviors from FreeKickPlayFSM

Take a look at offense_play.cpp for an example

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good call! I've updated it.

}

std::vector<std::string> FreeKickPlay::getState()
{
std::vector<std::string> state;
state.emplace_back(objectTypeName(*this) + " - " + getCurrentFullStateName(fsm));
return state;
}

// Register this play in the genericFactory
static TGenericFactory<std::string, Play, FreeKickPlay, TbotsProto::AiConfig> factory;
17 changes: 17 additions & 0 deletions src/software/ai/hl/stp/play/free_kick/free_kick_play.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#pragma once

#include "software/ai/hl/stp/play/free_kick/free_kick_play_fsm.h"

class FreeKickPlay : public Play
raymond212 marked this conversation as resolved.
Show resolved Hide resolved
{
public:
FreeKickPlay(TbotsProto::AiConfig config);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the constructor should have docs

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bump

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added


void getNextTactics(TacticCoroutine::push_type &yield, const World &world) override;
void updateTactics(const PlayUpdate &play_update) override;
std::vector<std::string> getState() override;

private:
FSM<FreeKickPlayFSM> fsm;
FreeKickPlayFSM::ControlParams control_params;
};
Loading
Loading