From c0ac061295b28bb3b9815f5e9e64e737a6059355 Mon Sep 17 00:00:00 2001 From: luukieboy <142982901+luukieboy@users.noreply.github.com> Date: Fri, 9 Feb 2024 10:05:25 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh=5Fpages=20from=20=20@=20e92?= =?UTF-8?q?3bf19f36c57a321213f0c5c655b4f7798bf5a=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- annotated.html | 86 +- annotated_dup.js | 4 +- classes.html | 2 +- ..._1stp_1_1evaluation_1_1BaseEvaluation.html | 47 +- ...1_1stp_1_1evaluation_1_1BaseEvaluation.png | Bin 22303 -> 23180 bytes ...tactics_2passive_2Formation_8h_source.html | 4 +- ...ntUsDirectGameStateEvaluation-members.html | 106 ++ ...ementUsDirectGameStateEvaluation_8cpp.html | 118 +++ d4/dab/Dealer_8h_source.html | 8 +- d4/db8/BallPlacementUsForceStart_8h.html | 125 +++ .../BallPlacementUsForceStart_8h_source.html | 134 +++ d5/d14/namespacertt_1_1ai_1_1stp.html | 26 +- d5/d14/namespacertt_1_1ai_1_1stp.js | 1 + d5/d18/StrategyManager_8h_source.html | 54 +- d5/d3e/KeeperKickBall_8h_source.html | 4 +- ...1_1ai_1_1stp_1_1play_1_1BallPlacementUs.js | 32 - ..._1ai_1_1stp_1_1play_1_1BallPlacementUs.png | Bin 688 -> 0 bytes .../namespacertt_1_1ai_1_1stp_1_1tactic.html | 4 +- d5/de0/PositionComputations_8h_source.html | 2 +- ...acementUsDirectGameStateEvaluation_8h.html | 126 +++ ...UsDirectGameStateEvaluation_8h_source.html | 128 +++ ..._1_1BallPlacementUsForceStart-members.html | 135 +++ d7/d91/classrtt_1_1ai_1_1stp_1_1Play.html | 53 +- d7/d91/classrtt_1_1ai_1_1stp_1_1Play.png | Bin 11714 -> 12433 bytes d7/dbe/ControlModule_8h_source.html | 17 +- d8/d32/namespacertt_1_1ai_1_1stp_1_1play.html | 7 +- d8/d32/namespacertt_1_1ai_1_1stp_1_1play.js | 3 +- d8/dd4/RefCommand_8h.html | 3 + d8/dd4/RefCommand_8h.js | 2 + d8/dd4/RefCommand_8h_source.html | 156 +-- ...i_1_1control_1_1ControlModule-members.html | 6 +- .../d90/BallPlacementUsFreeKick_8cpp.html | 11 +- ...tp_1_1play_1_1BallPlacementUsFreeKick.html | 90 +- ...1stp_1_1play_1_1BallPlacementUsFreeKick.js | 32 + ...stp_1_1play_1_1BallPlacementUsFreeKick.png | Bin 0 -> 754 bytes da/d05/BallPlacementUsForceStart_8cpp.html | 120 +++ da/dc6/PlayEvaluator_8h.html | 25 +- da/dc6/PlayEvaluator_8h.js | 1 + da/dc6/PlayEvaluator_8h_source.html | 120 +-- da/de3/classrtt_1_1STPManager.html | 3 +- ...ay_1_1BallPlacementUsFreeKick-members.html | 16 +- db/dc9/PlayEvaluator_8cpp.html | 1 + .../BallPlacementUsFreeKick_8h.html} | 14 +- .../BallPlacementUsFreeKick_8h_source.html} | 38 +- dc/d52/classrtt_1_1ai_1_1StrategyManager.html | 4 + ...mespacertt_1_1ai_1_1stp_1_1evaluation.html | 3 + ...namespacertt_1_1ai_1_1stp_1_1evaluation.js | 1 + dc/d82/TestFixture_8h.html | 5 +- dc/d82/TestFixture_8h_source.html | 195 ++-- dc/d84/GoToPos_8h_source.html | 2 +- dc/d8f/namespacertt.html | 5 + dc/d8f/namespacertt.js | 2 + dc/ddd/FreeKickUsPass_8h_source.html | 4 +- ...rtt_1_1ai_1_1control_1_1ControlModule.html | 36 +- ...ssrtt_1_1ai_1_1control_1_1ControlModule.js | 6 +- dd/d23/STPManager_8h_source.html | 8 +- dd/d29/AttackingPass_8h_source.html | 4 +- dd/dcc/Play_8hpp_source.html | 12 +- ...lPlacementUsDirectGameStateEvaluation.html | 213 ++++ ...allPlacementUsDirectGameStateEvaluation.js | 5 + ...llPlacementUsDirectGameStateEvaluation.png | Bin 0 -> 1157 bytes ..._1_1play_1_1BallPlacementUsForceStart.html | 992 ++++++++++++++++++ ...tp_1_1play_1_1BallPlacementUsForceStart.js | 32 + ...p_1_1play_1_1BallPlacementUsForceStart.png | Bin 0 -> 760 bytes df/d59/KickOffUs_8h_source.html | 4 +- df/da1/STPManager_8cpp.html | 3 +- df/de7/ChippingPass_8h_source.html | 4 +- dir_319020dd40c89deb6cd7eba6429fada4.html | 2 + dir_319020dd40c89deb6cd7eba6429fada4.js | 3 + dir_4eacba08721ac3b0e1d4b27ca96b0fbb.html | 4 +- dir_4eacba08721ac3b0e1d4b27ca96b0fbb.js | 7 +- dir_966815d6cf7171e42bdbd78f5df9c8eb.html | 2 + dir_966815d6cf7171e42bdbd78f5df9c8eb.js | 1 + dir_da313de16f3ef3dafe4a78332c822bbd.html | 4 +- dir_da313de16f3ef3dafe4a78332c822bbd.js | 3 +- files.html | 128 +-- functions_a.html | 2 +- functions_b.html | 7 +- functions_c.html | 3 +- functions_d.html | 3 +- functions_func.html | 2 +- functions_func_b.html | 7 +- functions_func_c.html | 3 +- functions_func_d.html | 3 +- functions_func_g.html | 4 +- functions_func_l.html | 4 +- functions_func_m.html | 1 + functions_func_s.html | 3 +- functions_g.html | 4 +- functions_i.html | 2 +- functions_l.html | 4 +- functions_m.html | 1 + functions_s.html | 3 +- hierarchy.html | 80 +- hierarchy.js | 4 +- namespaces.html | 86 +- navtreedata.js | 22 +- navtreeindex0.js | 98 +- navtreeindex1.js | 160 +-- navtreeindex10.js | 112 +- navtreeindex11.js | 108 +- navtreeindex12.js | 176 ++-- navtreeindex13.js | 49 +- navtreeindex2.js | 24 +- navtreeindex3.js | 126 +-- navtreeindex4.js | 146 +-- navtreeindex5.js | 130 +-- navtreeindex6.js | 134 +-- navtreeindex7.js | 144 +-- navtreeindex8.js | 208 ++-- navtreeindex9.js | 82 +- search/all_1.js | 2 +- search/all_10.js | 233 ++-- search/all_11.js | 275 ++--- search/all_12.js | 126 +-- search/all_13.js | 42 +- search/all_14.js | 18 +- search/all_15.js | 91 +- search/all_16.js | 2 +- search/all_17.js | 6 +- search/all_18.js | 42 +- search/all_2.js | 101 +- search/all_3.js | 222 ++-- search/all_4.js | 128 +-- search/all_5.js | 24 +- search/all_6.js | 122 +-- search/all_7.js | 309 +++--- search/all_8.js | 52 +- search/all_9.js | 101 +- search/all_a.js | 128 +-- search/all_b.js | 40 +- search/all_c.js | 102 +- search/all_d.js | 44 +- search/all_e.js | 64 +- search/all_f.js | 313 +++--- search/classes_0.js | 12 +- search/classes_1.js | 42 +- search/classes_10.js | 16 +- search/classes_11.js | 18 +- search/classes_12.js | 2 +- search/classes_13.js | 14 +- search/classes_2.js | 22 +- search/classes_3.js | 20 +- search/classes_4.js | 2 +- search/classes_5.js | 20 +- search/classes_6.js | 16 +- search/classes_7.js | 8 +- search/classes_8.js | 8 +- search/classes_9.js | 30 +- search/classes_a.js | 4 +- search/classes_b.js | 2 +- search/classes_c.js | 6 +- search/classes_d.js | 12 +- search/classes_e.js | 62 +- search/classes_f.js | 18 +- search/defines_0.js | 2 +- search/enums_0.js | 2 +- search/enums_1.js | 2 +- search/enums_2.js | 2 +- search/enums_3.js | 4 +- search/enums_4.js | 2 +- search/enums_5.js | 2 +- search/enums_6.js | 4 +- search/enums_7.js | 4 +- search/enums_8.js | 4 +- search/enums_9.js | 2 +- search/enumvalues_0.js | 25 +- search/enumvalues_1.js | 12 +- search/enumvalues_10.js | 4 +- search/enumvalues_11.js | 10 +- search/enumvalues_2.js | 10 +- search/enumvalues_3.js | 4 +- search/enumvalues_4.js | 12 +- search/enumvalues_5.js | 8 +- search/enumvalues_6.js | 2 +- search/enumvalues_7.js | 20 +- search/enumvalues_8.js | 4 +- search/enumvalues_9.js | 4 +- search/enumvalues_a.js | 8 +- search/enumvalues_b.js | 4 +- search/enumvalues_c.js | 24 +- search/enumvalues_d.js | 10 +- search/enumvalues_e.js | 8 +- search/enumvalues_f.js | 16 +- search/files_0.js | 16 +- search/files_1.js | 76 +- search/files_10.js | 42 +- search/files_11.js | 36 +- search/files_2.js | 42 +- search/files_3.js | 28 +- search/files_4.js | 40 +- search/files_5.js | 30 +- search/files_6.js | 14 +- search/files_7.js | 16 +- search/files_8.js | 60 +- search/files_9.js | 4 +- search/files_a.js | 2 +- search/files_b.js | 16 +- search/files_c.js | 24 +- search/files_d.js | 110 +- search/files_e.js | 34 +- search/files_f.js | 26 +- search/functions_0.js | 30 +- search/functions_1.js | 29 +- search/functions_10.js | 156 +-- search/functions_11.js | 32 +- search/functions_12.js | 32 +- search/functions_13.js | 6 +- search/functions_14.js | 12 +- search/functions_15.js | 2 +- search/functions_16.js | 42 +- search/functions_2.js | 86 +- search/functions_3.js | 50 +- search/functions_4.js | 4 +- search/functions_5.js | 28 +- search/functions_6.js | 255 ++--- search/functions_7.js | 16 +- search/functions_8.js | 56 +- search/functions_9.js | 18 +- search/functions_a.js | 16 +- search/functions_b.js | 36 +- search/functions_c.js | 4 +- search/functions_d.js | 22 +- search/functions_e.js | 62 +- search/functions_f.js | 68 +- search/namespaces_0.js | 4 +- search/namespaces_1.js | 44 +- search/namespaces_2.js | 2 +- search/pages_0.js | 2 +- search/pages_1.js | 4 +- search/related_0.js | 2 +- search/typedefs_0.js | 2 +- search/typedefs_1.js | 4 +- search/typedefs_2.js | 4 +- search/typedefs_3.js | 2 +- search/typedefs_4.js | 8 +- search/typedefs_5.js | 2 +- search/variables_0.js | 22 +- search/variables_1.js | 26 +- search/variables_10.js | 56 +- search/variables_11.js | 72 +- search/variables_12.js | 24 +- search/variables_13.js | 8 +- search/variables_14.js | 10 +- search/variables_15.js | 24 +- search/variables_16.js | 2 +- search/variables_17.js | 4 +- search/variables_2.js | 30 +- search/variables_3.js | 64 +- search/variables_4.js | 32 +- search/variables_5.js | 10 +- search/variables_6.js | 30 +- search/variables_7.js | 12 +- search/variables_8.js | 12 +- search/variables_9.js | 26 +- search/variables_a.js | 16 +- search/variables_b.js | 14 +- search/variables_c.js | 62 +- search/variables_d.js | 8 +- search/variables_e.js | 4 +- search/variables_f.js | 70 +- 261 files changed, 6725 insertions(+), 4310 deletions(-) create mode 100644 d1/d9a/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementUsDirectGameStateEvaluation-members.html create mode 100644 d4/d3a/BallPlacementUsDirectGameStateEvaluation_8cpp.html create mode 100644 d4/db8/BallPlacementUsForceStart_8h.html create mode 100644 d4/db8/BallPlacementUsForceStart_8h_source.html delete mode 100644 d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.js delete mode 100644 d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.png create mode 100644 d5/df2/BallPlacementUsDirectGameStateEvaluation_8h.html create mode 100644 d5/df2/BallPlacementUsDirectGameStateEvaluation_8h_source.html create mode 100644 d6/de3/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart-members.html rename da/dab/BallPlacementUs_8cpp.html => d9/d90/BallPlacementUsFreeKick_8cpp.html (91%) rename d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html => d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html (89%) create mode 100644 d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.js create mode 100644 d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.png create mode 100644 da/d05/BallPlacementUsForceStart_8cpp.html rename d9/dc2/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs-members.html => db/d41/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick-members.html (85%) rename db/{d3e/BallPlacementUs_8h.html => ddc/BallPlacementUsFreeKick_8h.html} (87%) rename db/{d3e/BallPlacementUs_8h_source.html => ddc/BallPlacementUsFreeKick_8h_source.html} (62%) create mode 100644 de/dbf/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementUsDirectGameStateEvaluation.html create mode 100644 de/dbf/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementUsDirectGameStateEvaluation.js create mode 100644 de/dbf/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementUsDirectGameStateEvaluation.png create mode 100644 de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html create mode 100644 de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.js create mode 100644 de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.png diff --git a/annotated.html b/annotated.html index df8eeeb22..5412eb8c8 100644 --- a/annotated.html +++ b/annotated.html @@ -131,34 +131,35 @@  NevaluationT/F Invariant if the ball is in our defense area and not moving  CBaseEvaluationBase class for evaluations  CBallPlacementThemGameStateEvaluationClass that evaluates the ball placement them game state - CBallPlacementUsGameStateEvaluationClass that evaluates the ball placement us game state - CFreeKickThemGameStateEvaluationClass that evaluates the free kick them game state - CFreeKickUsGameStateEvaluationClass that evaluates the free kick us game state - CHaltGameStateEvaluationClass that evaluates the halt game state - CKickOffThemGameStateEvaluationClass that evaluates the kick off them game state - CKickOffThemPrepareGameStateEvaluationClass that evaluates the kick off them prepare game state - CKickOffUsGameStateEvaluationClass that evaluates the kick off us game state - CKickOffUsOrNormalGameStateEvaluationClass that evaluates the kick off us or normal game state - CKickOffUsPrepareGameStateEvaluationClass that evaluates the kick of us prepare game state - CNormalOrFreeKickUsGameStateEvaluationClass that evaluates the normal or free kick us game state - CNormalPlayGameStateEvaluationClass that evaluates the normal play game state - CPenaltyThemGameStateEvaluationClass that evaluates the penalty them game state - CPenaltyThemPrepareGameStateEvaluationClass that evaluates the penalty them prepare game state - CPenaltyUsGameStateEvaluationClass that evaluates the penalty us prepare game state - CPenaltyUsPrepareGameStateEvaluationClass that evaluates the free kick them game state - CStopGameStateEvaluationClass that evaluates the stop game state - CTimeOutGameStateEvaluationClass that evaluates the time out game state - CBallInOurDefenseAreaAndStillGlobalEvaluationClass that evaluates ball in our defense area and still - CBallNotInOurDefenseAreaAndStillGlobalEvaluationClass that evaluates ball not in our defense area and still - CBallOnOurSideGlobalEvaluationClass that evaluates ball on our side - CBallOnTheirSideGlobalEvaluationClass that evaluates ball on their side - CTheyDoNotHaveBallGlobalEvaluationClass that evaluates they do not have ball - CTheyHaveBallGlobalEvaluationClass that evaluates they have ball - CWeDoNotHaveBallGlobalEvaluationClass that evaluates we don't have ball - CWeHaveBallGlobalEvaluationClass that evaluates we have ball - CGoalShotEvaluationClass that evaluates the Goal Shot score - CLineOfSightEvaluationClass that evaluates the Line of Sight score - COpennessEvaluationClass that evaluates the Openness score + CBallPlacementUsDirectGameStateEvaluationClass that evaluates the ball placement us game state when the next command is direct free kick + CBallPlacementUsGameStateEvaluationClass that evaluates the ball placement us game state + CFreeKickThemGameStateEvaluationClass that evaluates the free kick them game state + CFreeKickUsGameStateEvaluationClass that evaluates the free kick us game state + CHaltGameStateEvaluationClass that evaluates the halt game state + CKickOffThemGameStateEvaluationClass that evaluates the kick off them game state + CKickOffThemPrepareGameStateEvaluationClass that evaluates the kick off them prepare game state + CKickOffUsGameStateEvaluationClass that evaluates the kick off us game state + CKickOffUsOrNormalGameStateEvaluationClass that evaluates the kick off us or normal game state + CKickOffUsPrepareGameStateEvaluationClass that evaluates the kick of us prepare game state + CNormalOrFreeKickUsGameStateEvaluationClass that evaluates the normal or free kick us game state + CNormalPlayGameStateEvaluationClass that evaluates the normal play game state + CPenaltyThemGameStateEvaluationClass that evaluates the penalty them game state + CPenaltyThemPrepareGameStateEvaluationClass that evaluates the penalty them prepare game state + CPenaltyUsGameStateEvaluationClass that evaluates the penalty us prepare game state + CPenaltyUsPrepareGameStateEvaluationClass that evaluates the free kick them game state + CStopGameStateEvaluationClass that evaluates the stop game state + CTimeOutGameStateEvaluationClass that evaluates the time out game state + CBallInOurDefenseAreaAndStillGlobalEvaluationClass that evaluates ball in our defense area and still + CBallNotInOurDefenseAreaAndStillGlobalEvaluationClass that evaluates ball not in our defense area and still + CBallOnOurSideGlobalEvaluationClass that evaluates ball on our side + CBallOnTheirSideGlobalEvaluationClass that evaluates ball on their side + CTheyDoNotHaveBallGlobalEvaluationClass that evaluates they do not have ball + CTheyHaveBallGlobalEvaluationClass that evaluates they have ball + CWeDoNotHaveBallGlobalEvaluationClass that evaluates we don't have ball + CWeHaveBallGlobalEvaluationClass that evaluates we have ball + CGoalShotEvaluationClass that evaluates the Goal Shot score + CLineOfSightEvaluationClass that evaluates the Line of Sight score + COpennessEvaluationClass that evaluates the Openness score  Ngen  CPositionScoresStruct that is used to store computations made with this module. Save computations here that are usable for each robot for a position. DO NOT save values specific to a robot in here (like TimeToPosition). If a position's score for a specific evaluation already had been computed in the tick, it will use that value instead of recomputing it. If it was not computed yet, it will compute and save it. : uint8_t score for the Openness of a position -> evaluations/position/OpennessEvaluation : uint8_t score for the LineOfSight to a position from a position -> ../LineOfSightEvaluation : uint8_t score for the Goal Shot opportunity for a position -> ../GoalShotEvaluation  CScoreProfileCombination of weights for each of the scores. This will be used to determine the final score for a robot for a position. All weights will be multiplied with the corresponding score and then normalized. for scoreOpen for scoreLineOfSight for scoreGoalShot @@ -172,20 +173,21 @@  CChippingPassThe chipping pass play is executed when we want to pass the ball to a robot that can not be passed to directly  CAggressiveStopFormationThe aggressive stop play is executed when we want to attack after the stop game state has ended  CBallPlacementThemThe ball placement them play is executed when the ball placement them game state is selected - CBallPlacementUsThe ball placement us play is executed when the ball placement us game state is selected - CDefensiveStopFormationThe defensive stop formation is executed when we want to defend after the stop game state has ended - CFreeKickThemThe free kick them play is executed when the free kick them game state is selected - CFreeKickUsAtGoalThe free kick us at goal play is executed when we can shoot at the goal and the free kick us game state is selected - CFreeKickUsPassThe free kick us pass play is executed when we want to pass and the free kick us game state is selected - CHaltThe halt play is executed when the halt game state is selected - CKickOffThemThe kick off them play is executed when the kick off them game state is selected - CKickOffThemPrepareThe kick off them prepare play is executed when the kick of them prepare game state is selected - CKickOffUsThe kick off us play is executed when the kick off us game state is selected - CKickOffUsPrepareThe kick off us prepare play is executed when the kick off us prepare game state is selected - CPenaltyThemThe penalty them play is executed when the penalty them game state is selected - CPenaltyThemPrepareThe penalty them prepare play is executed when the penalty them prepare game state is selected - CPenaltyUsThe penalty us play is executed when the penalty us game state is selected - CPenaltyUsPrepareThe penalty us prepare play is executed when the penalty us prepare game state is selected + CBallPlacementUsForceStartThe ball placement us Force Start play is executed when the ball placement us game state is selected and the next ref command is not Free kick us, meaning it will be a force start + CBallPlacementUsFreeKickThe ball placement us Free kick play is executed when the ball placement us game state is selected and the next ref command is Free Kick Us + CDefensiveStopFormationThe defensive stop formation is executed when we want to defend after the stop game state has ended + CFreeKickThemThe free kick them play is executed when the free kick them game state is selected + CFreeKickUsAtGoalThe free kick us at goal play is executed when we can shoot at the goal and the free kick us game state is selected + CFreeKickUsPassThe free kick us pass play is executed when we want to pass and the free kick us game state is selected + CHaltThe halt play is executed when the halt game state is selected + CKickOffThemThe kick off them play is executed when the kick off them game state is selected + CKickOffThemPrepareThe kick off them prepare play is executed when the kick of them prepare game state is selected + CKickOffUsThe kick off us play is executed when the kick off us game state is selected + CKickOffUsPrepareThe kick off us prepare play is executed when the kick off us prepare game state is selected + CPenaltyThemThe penalty them play is executed when the penalty them game state is selected + CPenaltyThemPrepareThe penalty them prepare play is executed when the penalty them prepare game state is selected + CPenaltyUsThe penalty us play is executed when the penalty us game state is selected + CPenaltyUsPrepareThe penalty us prepare play is executed when the penalty us prepare game state is selected  NroleTODO-Max Fix Intercept usage in play (mimics "Oppertunic Behavior")  CBallPlacerClass that defines the ball placer role. The ball placer will try to place the ball at the ball placement position  CChipperClass that defines the Chipper role. The Chipper will chip the ball to another robot diff --git a/annotated_dup.js b/annotated_dup.js index 602d15f6c..db78d19fa 100644 --- a/annotated_dup.js +++ b/annotated_dup.js @@ -48,6 +48,7 @@ var annotated_dup = [ "evaluation", "dc/d81/namespacertt_1_1ai_1_1stp_1_1evaluation.html", [ [ "BaseEvaluation", "d1/d1a/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BaseEvaluation.html", "d1/d1a/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BaseEvaluation" ], [ "BallPlacementThemGameStateEvaluation", "dc/d07/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementThemGameStateEvaluation.html", "dc/d07/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementThemGameStateEvaluation" ], + [ "BallPlacementUsDirectGameStateEvaluation", "de/dbf/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementUsDirectGameStateEvaluation.html", "de/dbf/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementUsDirectGameStateEvaluation" ], [ "BallPlacementUsGameStateEvaluation", "d7/db7/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementUsGameStateEvaluation.html", "d7/db7/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementUsGameStateEvaluation" ], [ "FreeKickThemGameStateEvaluation", "d5/df9/classrtt_1_1ai_1_1stp_1_1evaluation_1_1FreeKickThemGameStateEvaluation.html", "d5/df9/classrtt_1_1ai_1_1stp_1_1evaluation_1_1FreeKickThemGameStateEvaluation" ], [ "FreeKickUsGameStateEvaluation", "d6/dca/classrtt_1_1ai_1_1stp_1_1evaluation_1_1FreeKickUsGameStateEvaluation.html", "d6/dca/classrtt_1_1ai_1_1stp_1_1evaluation_1_1FreeKickUsGameStateEvaluation" ], @@ -91,7 +92,8 @@ var annotated_dup = [ "ChippingPass", "dc/d26/classrtt_1_1ai_1_1stp_1_1play_1_1ChippingPass.html", "dc/d26/classrtt_1_1ai_1_1stp_1_1play_1_1ChippingPass" ], [ "AggressiveStopFormation", "dd/dff/classrtt_1_1ai_1_1stp_1_1play_1_1AggressiveStopFormation.html", "dd/dff/classrtt_1_1ai_1_1stp_1_1play_1_1AggressiveStopFormation" ], [ "BallPlacementThem", "d7/d43/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementThem.html", "d7/d43/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementThem" ], - [ "BallPlacementUs", "d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html", "d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs" ], + [ "BallPlacementUsForceStart", "de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html", "de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart" ], + [ "BallPlacementUsFreeKick", "d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html", "d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick" ], [ "DefensiveStopFormation", "df/de3/classrtt_1_1ai_1_1stp_1_1play_1_1DefensiveStopFormation.html", "df/de3/classrtt_1_1ai_1_1stp_1_1play_1_1DefensiveStopFormation" ], [ "FreeKickThem", "dc/d7b/classrtt_1_1ai_1_1stp_1_1play_1_1FreeKickThem.html", "dc/d7b/classrtt_1_1ai_1_1stp_1_1play_1_1FreeKickThem" ], [ "FreeKickUsAtGoal", "dd/dc8/classrtt_1_1ai_1_1stp_1_1play_1_1FreeKickUsAtGoal.html", "dd/dc8/classrtt_1_1ai_1_1stp_1_1play_1_1FreeKickUsAtGoal" ], diff --git a/classes.html b/classes.html index e7653c85b..1822e0f53 100644 --- a/classes.html +++ b/classes.html @@ -95,7 +95,7 @@
World::AcquireInfo (rtt::world)
AggressiveStopFormation (rtt::ai::stp::play)
AnglePID (rtt)
Attack (rtt::ai::stp::play)
AttackingPass (rtt::ai::stp::play)
AvoidObjects (rtt::ai::stp)
B
-
Ball (rtt::world::ball)
BallInOurDefenseAreaAndStillGlobalEvaluation (rtt::ai::stp::evaluation)
BallNotInOurDefenseAreaAndStillGlobalEvaluation (rtt::ai::stp::evaluation)
BallOnOurSideGlobalEvaluation (rtt::ai::stp::evaluation)
BallOnTheirSideGlobalEvaluation (rtt::ai::stp::evaluation)
BallPlacementThem (rtt::ai::stp::play)
BallPlacementThemGameStateEvaluation (rtt::ai::stp::evaluation)
BallPlacementUs (rtt::ai::stp::play)
BallPlacementUsGameStateEvaluation (rtt::ai::stp::evaluation)
BallPlacer (rtt::ai::stp::role)
BallPossession (rtt::ai)
BallStandBack (rtt::ai::stp::tactic)
BallView (rtt::world::view)
BaseEvaluation (rtt::ai::stp::evaluation)
BBPosVel (rtt::BB)
BBTPathTracking (rtt::ai::control)
BBTrajectory1D (rtt::BB)
BBTrajectory2D (rtt::BB)
BBTrajectoryPart (rtt::BB)
BlockBall (rtt::ai::stp::tactic)
+
Ball (rtt::world::ball)
BallInOurDefenseAreaAndStillGlobalEvaluation (rtt::ai::stp::evaluation)
BallNotInOurDefenseAreaAndStillGlobalEvaluation (rtt::ai::stp::evaluation)
BallOnOurSideGlobalEvaluation (rtt::ai::stp::evaluation)
BallOnTheirSideGlobalEvaluation (rtt::ai::stp::evaluation)
BallPlacementThem (rtt::ai::stp::play)
BallPlacementThemGameStateEvaluation (rtt::ai::stp::evaluation)
BallPlacementUsDirectGameStateEvaluation (rtt::ai::stp::evaluation)
BallPlacementUsForceStart (rtt::ai::stp::play)
BallPlacementUsFreeKick (rtt::ai::stp::play)
BallPlacementUsGameStateEvaluation (rtt::ai::stp::evaluation)
BallPlacer (rtt::ai::stp::role)
BallPossession (rtt::ai)
BallStandBack (rtt::ai::stp::tactic)
BallView (rtt::world::view)
BaseEvaluation (rtt::ai::stp::evaluation)
BBPosVel (rtt::BB)
BBTPathTracking (rtt::ai::control)
BBTrajectory1D (rtt::BB)
BBTrajectory2D (rtt::BB)
BBTrajectoryPart (rtt::BB)
BlockBall (rtt::ai::stp::tactic)
C
Chip (rtt::ai::stp::skill)
ChipAtPos (rtt::ai::stp::tactic)
Chipper (rtt::ai::stp::role)
ChippingPass (rtt::ai::stp::play)
CollisionData (rtt::BB)
CollisionDetector (rtt::ai::control)
CommandCollision (rtt::BB)
ComputationManager (rtt::ai::stp)
Constants (rtt::ai)
ControlModule (rtt::ai::control)
ControlUtils (rtt::ai::control)
diff --git a/d1/d1a/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BaseEvaluation.html b/d1/d1a/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BaseEvaluation.html index afdb44770..e26b37ac9 100644 --- a/d1/d1a/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BaseEvaluation.html +++ b/d1/d1a/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BaseEvaluation.html @@ -107,27 +107,28 @@ rtt::ai::stp::evaluation::BallOnOurSideGlobalEvaluation rtt::ai::stp::evaluation::BallOnTheirSideGlobalEvaluation rtt::ai::stp::evaluation::BallPlacementThemGameStateEvaluation -rtt::ai::stp::evaluation::BallPlacementUsGameStateEvaluation -rtt::ai::stp::evaluation::FreeKickThemGameStateEvaluation -rtt::ai::stp::evaluation::FreeKickUsGameStateEvaluation -rtt::ai::stp::evaluation::HaltGameStateEvaluation -rtt::ai::stp::evaluation::KickOffThemGameStateEvaluation -rtt::ai::stp::evaluation::KickOffThemPrepareGameStateEvaluation -rtt::ai::stp::evaluation::KickOffUsGameStateEvaluation -rtt::ai::stp::evaluation::KickOffUsOrNormalGameStateEvaluation -rtt::ai::stp::evaluation::KickOffUsPrepareGameStateEvaluation -rtt::ai::stp::evaluation::NormalOrFreeKickUsGameStateEvaluation -rtt::ai::stp::evaluation::NormalPlayGameStateEvaluation -rtt::ai::stp::evaluation::PenaltyThemGameStateEvaluation -rtt::ai::stp::evaluation::PenaltyThemPrepareGameStateEvaluation -rtt::ai::stp::evaluation::PenaltyUsGameStateEvaluation -rtt::ai::stp::evaluation::PenaltyUsPrepareGameStateEvaluation -rtt::ai::stp::evaluation::StopGameStateEvaluation -rtt::ai::stp::evaluation::TheyDoNotHaveBallGlobalEvaluation -rtt::ai::stp::evaluation::TheyHaveBallGlobalEvaluation -rtt::ai::stp::evaluation::TimeOutGameStateEvaluation -rtt::ai::stp::evaluation::WeDoNotHaveBallGlobalEvaluation -rtt::ai::stp::evaluation::WeHaveBallGlobalEvaluation +rtt::ai::stp::evaluation::BallPlacementUsDirectGameStateEvaluation +rtt::ai::stp::evaluation::BallPlacementUsGameStateEvaluation +rtt::ai::stp::evaluation::FreeKickThemGameStateEvaluation +rtt::ai::stp::evaluation::FreeKickUsGameStateEvaluation +rtt::ai::stp::evaluation::HaltGameStateEvaluation +rtt::ai::stp::evaluation::KickOffThemGameStateEvaluation +rtt::ai::stp::evaluation::KickOffThemPrepareGameStateEvaluation +rtt::ai::stp::evaluation::KickOffUsGameStateEvaluation +rtt::ai::stp::evaluation::KickOffUsOrNormalGameStateEvaluation +rtt::ai::stp::evaluation::KickOffUsPrepareGameStateEvaluation +rtt::ai::stp::evaluation::NormalOrFreeKickUsGameStateEvaluation +rtt::ai::stp::evaluation::NormalPlayGameStateEvaluation +rtt::ai::stp::evaluation::PenaltyThemGameStateEvaluation +rtt::ai::stp::evaluation::PenaltyThemPrepareGameStateEvaluation +rtt::ai::stp::evaluation::PenaltyUsGameStateEvaluation +rtt::ai::stp::evaluation::PenaltyUsPrepareGameStateEvaluation +rtt::ai::stp::evaluation::StopGameStateEvaluation +rtt::ai::stp::evaluation::TheyDoNotHaveBallGlobalEvaluation +rtt::ai::stp::evaluation::TheyHaveBallGlobalEvaluation +rtt::ai::stp::evaluation::TimeOutGameStateEvaluation +rtt::ai::stp::evaluation::WeDoNotHaveBallGlobalEvaluation +rtt::ai::stp::evaluation::WeHaveBallGlobalEvaluation @@ -200,7 +201,7 @@

Returns
The name of an evaluation as string
-

Implemented in rtt::ai::stp::evaluation::WeHaveBallGlobalEvaluation, rtt::ai::stp::evaluation::WeDoNotHaveBallGlobalEvaluation, rtt::ai::stp::evaluation::TheyHaveBallGlobalEvaluation, rtt::ai::stp::evaluation::TheyDoNotHaveBallGlobalEvaluation, rtt::ai::stp::evaluation::BallOnTheirSideGlobalEvaluation, rtt::ai::stp::evaluation::BallOnOurSideGlobalEvaluation, rtt::ai::stp::evaluation::BallNotInOurDefenseAreaAndStillGlobalEvaluation, rtt::ai::stp::evaluation::BallInOurDefenseAreaAndStillGlobalEvaluation, rtt::ai::stp::evaluation::TimeOutGameStateEvaluation, rtt::ai::stp::evaluation::StopGameStateEvaluation, rtt::ai::stp::evaluation::PenaltyUsPrepareGameStateEvaluation, rtt::ai::stp::evaluation::PenaltyUsGameStateEvaluation, rtt::ai::stp::evaluation::PenaltyThemPrepareGameStateEvaluation, rtt::ai::stp::evaluation::PenaltyThemGameStateEvaluation, rtt::ai::stp::evaluation::NormalPlayGameStateEvaluation, rtt::ai::stp::evaluation::NormalOrFreeKickUsGameStateEvaluation, rtt::ai::stp::evaluation::KickOffUsPrepareGameStateEvaluation, rtt::ai::stp::evaluation::KickOffUsOrNormalGameStateEvaluation, rtt::ai::stp::evaluation::KickOffUsGameStateEvaluation, rtt::ai::stp::evaluation::KickOffThemPrepareGameStateEvaluation, rtt::ai::stp::evaluation::KickOffThemGameStateEvaluation, rtt::ai::stp::evaluation::HaltGameStateEvaluation, rtt::ai::stp::evaluation::FreeKickUsGameStateEvaluation, rtt::ai::stp::evaluation::FreeKickThemGameStateEvaluation, rtt::ai::stp::evaluation::BallPlacementUsGameStateEvaluation, and rtt::ai::stp::evaluation::BallPlacementThemGameStateEvaluation.

+

Implemented in rtt::ai::stp::evaluation::WeHaveBallGlobalEvaluation, rtt::ai::stp::evaluation::WeDoNotHaveBallGlobalEvaluation, rtt::ai::stp::evaluation::TheyHaveBallGlobalEvaluation, rtt::ai::stp::evaluation::TheyDoNotHaveBallGlobalEvaluation, rtt::ai::stp::evaluation::BallOnTheirSideGlobalEvaluation, rtt::ai::stp::evaluation::BallOnOurSideGlobalEvaluation, rtt::ai::stp::evaluation::BallNotInOurDefenseAreaAndStillGlobalEvaluation, rtt::ai::stp::evaluation::BallInOurDefenseAreaAndStillGlobalEvaluation, rtt::ai::stp::evaluation::TimeOutGameStateEvaluation, rtt::ai::stp::evaluation::StopGameStateEvaluation, rtt::ai::stp::evaluation::PenaltyUsPrepareGameStateEvaluation, rtt::ai::stp::evaluation::PenaltyUsGameStateEvaluation, rtt::ai::stp::evaluation::PenaltyThemPrepareGameStateEvaluation, rtt::ai::stp::evaluation::PenaltyThemGameStateEvaluation, rtt::ai::stp::evaluation::NormalPlayGameStateEvaluation, rtt::ai::stp::evaluation::NormalOrFreeKickUsGameStateEvaluation, rtt::ai::stp::evaluation::KickOffUsPrepareGameStateEvaluation, rtt::ai::stp::evaluation::KickOffUsOrNormalGameStateEvaluation, rtt::ai::stp::evaluation::KickOffUsGameStateEvaluation, rtt::ai::stp::evaluation::KickOffThemPrepareGameStateEvaluation, rtt::ai::stp::evaluation::KickOffThemGameStateEvaluation, rtt::ai::stp::evaluation::HaltGameStateEvaluation, rtt::ai::stp::evaluation::FreeKickUsGameStateEvaluation, rtt::ai::stp::evaluation::FreeKickThemGameStateEvaluation, rtt::ai::stp::evaluation::BallPlacementUsGameStateEvaluation, rtt::ai::stp::evaluation::BallPlacementUsDirectGameStateEvaluation, and rtt::ai::stp::evaluation::BallPlacementThemGameStateEvaluation.

@@ -248,7 +249,7 @@

Returns
the 'true-ness' of this invariant during this tick
-

Implemented in rtt::ai::stp::evaluation::BallNotInOurDefenseAreaAndStillGlobalEvaluation, rtt::ai::stp::evaluation::BallInOurDefenseAreaAndStillGlobalEvaluation, rtt::ai::stp::evaluation::TimeOutGameStateEvaluation, rtt::ai::stp::evaluation::StopGameStateEvaluation, rtt::ai::stp::evaluation::PenaltyUsPrepareGameStateEvaluation, rtt::ai::stp::evaluation::PenaltyUsGameStateEvaluation, rtt::ai::stp::evaluation::PenaltyThemPrepareGameStateEvaluation, rtt::ai::stp::evaluation::PenaltyThemGameStateEvaluation, rtt::ai::stp::evaluation::NormalPlayGameStateEvaluation, rtt::ai::stp::evaluation::NormalOrFreeKickUsGameStateEvaluation, rtt::ai::stp::evaluation::KickOffUsPrepareGameStateEvaluation, rtt::ai::stp::evaluation::KickOffUsOrNormalGameStateEvaluation, rtt::ai::stp::evaluation::KickOffUsGameStateEvaluation, rtt::ai::stp::evaluation::KickOffThemPrepareGameStateEvaluation, rtt::ai::stp::evaluation::KickOffThemGameStateEvaluation, rtt::ai::stp::evaluation::HaltGameStateEvaluation, rtt::ai::stp::evaluation::FreeKickUsGameStateEvaluation, rtt::ai::stp::evaluation::FreeKickThemGameStateEvaluation, rtt::ai::stp::evaluation::BallPlacementUsGameStateEvaluation, rtt::ai::stp::evaluation::BallPlacementThemGameStateEvaluation, rtt::ai::stp::evaluation::WeHaveBallGlobalEvaluation, rtt::ai::stp::evaluation::WeDoNotHaveBallGlobalEvaluation, rtt::ai::stp::evaluation::TheyHaveBallGlobalEvaluation, rtt::ai::stp::evaluation::TheyDoNotHaveBallGlobalEvaluation, rtt::ai::stp::evaluation::BallOnTheirSideGlobalEvaluation, and rtt::ai::stp::evaluation::BallOnOurSideGlobalEvaluation.

+

Implemented in rtt::ai::stp::evaluation::BallNotInOurDefenseAreaAndStillGlobalEvaluation, rtt::ai::stp::evaluation::BallInOurDefenseAreaAndStillGlobalEvaluation, rtt::ai::stp::evaluation::TimeOutGameStateEvaluation, rtt::ai::stp::evaluation::StopGameStateEvaluation, rtt::ai::stp::evaluation::PenaltyUsPrepareGameStateEvaluation, rtt::ai::stp::evaluation::PenaltyUsGameStateEvaluation, rtt::ai::stp::evaluation::PenaltyThemPrepareGameStateEvaluation, rtt::ai::stp::evaluation::PenaltyThemGameStateEvaluation, rtt::ai::stp::evaluation::NormalPlayGameStateEvaluation, rtt::ai::stp::evaluation::NormalOrFreeKickUsGameStateEvaluation, rtt::ai::stp::evaluation::KickOffUsPrepareGameStateEvaluation, rtt::ai::stp::evaluation::KickOffUsOrNormalGameStateEvaluation, rtt::ai::stp::evaluation::KickOffUsGameStateEvaluation, rtt::ai::stp::evaluation::KickOffThemPrepareGameStateEvaluation, rtt::ai::stp::evaluation::KickOffThemGameStateEvaluation, rtt::ai::stp::evaluation::HaltGameStateEvaluation, rtt::ai::stp::evaluation::FreeKickUsGameStateEvaluation, rtt::ai::stp::evaluation::FreeKickThemGameStateEvaluation, rtt::ai::stp::evaluation::BallPlacementUsGameStateEvaluation, rtt::ai::stp::evaluation::BallPlacementUsDirectGameStateEvaluation, rtt::ai::stp::evaluation::BallPlacementThemGameStateEvaluation, rtt::ai::stp::evaluation::WeHaveBallGlobalEvaluation, rtt::ai::stp::evaluation::WeDoNotHaveBallGlobalEvaluation, rtt::ai::stp::evaluation::TheyHaveBallGlobalEvaluation, rtt::ai::stp::evaluation::TheyDoNotHaveBallGlobalEvaluation, rtt::ai::stp::evaluation::BallOnTheirSideGlobalEvaluation, and rtt::ai::stp::evaluation::BallOnOurSideGlobalEvaluation.

diff --git a/d1/d1a/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BaseEvaluation.png b/d1/d1a/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BaseEvaluation.png index a86a696121e0a46dc30f14f3167fa8da1c5ce276..ed3c402ade6a3469c8da8eb2d5eb3e2f44d7e0df 100644 GIT binary patch literal 23180 zcmeHv30PCt+I3soa@7i-wa8VbR-@F&&^n-usa2!_5eEW7fH+hY^(;b5!KkGnh1 z>{WWrw-Q-o@aNdi=@#0EKI=El9@_CAuTZ(~c2`#Hs2l5DFD!LDR#17#jgn-qCR>*Ac|xds`sdc(jxnk5#NjoH^}!Ll`bmtIjjc%#pIyo*XUAG-61^i1K4uMZvn zTgJzqthhcldN}sZcbE2LeE!AP-#k}}?uY)|kNN4NPh>w{0|$I|lmdQy0{-y<=)ZqX zw*cq(2D5y{7k|Bv+;i!pa+^)yY`;Kf`+t6Ln_Y@)-2H7Ob5lJ$bfi=$y4I2%J`hkJ(a{yNY%Tp%9$% z_7p|Gt1^*o@}?(NYxgl(K{@B;H1fKGlgvaF~nePUxuqksR<3R$r)YMGsK zr(cvF-&P%$*ZZnM!c=A=AMl7p?It3-YP>~?sj;w+ARb{c+~=~4^Akryt)yDMV3`Rv+!Ol5~e+$em6&v^I)&sPy= zSv~2w3&%*LDK)7NkuS7_Zpf1jxHUDgD^+O|qu`T-u+Pu3P{5q`FVlVPkr>I`Fse#X zw0y+KsQ0?ttcc3^L1_iA^BDh-tF)OkG5iWVbtePU*Dh^Qycg5sqAJotX2qKH^T5D- zQ*^rG6lI9-kB%919$fp1OI*7%cmTf5-L`#|F0+Bu5C~ur9NUaXm|dG+IEyD_3wegU zu}&dQDoq3Wss#RVuUC48v6n3E^@&1dj(KabH@8#f=kF$s9JdeB52LaL&7?>~xGk7I z12z_9e2$o(gxG|ZX#gDW!B~)EQ+_+;y5MO@`T-2}Aqu(M1zOB9j*v^V-+T1y9ab)J z_xpBUVssK=m>K+gp!C0s=s+ChzH8j`9agX1KEhY10!VB^J4d}2aT&J|dX~Q(l^CRx zDVAL1-o_|L=blpWc`)SOEvVBUp`99PJAkt`a1@+1Crf_9-OwaHa_5Ryqe6RY%hOTi ze&#{_)HE>W(>E;8G497w5C-jAH5o|tDbruPc{5ysb4XxXXb;|qXTsk4(6G%p1<^b@ zNV*5^s{MX_q{JR~hbf*CUXy<2ND1X;l?G#dgKOf?u6OzgX0S01eOIKqdVkQ@pw3ST-V}x zM?z0AV_Tp|JNAWpP+Y|p&bQ0t`@oDScce5n=RCU!(71i*%RRQ~1rQqB9*b5^lLxT6 zw;@0tWc(hG*|88H*-s|dD9EouYgrhwX5BZjSz*XvWpZF`a31~I@C}gbRtm%xfb6jvrNm zX!{P0zd~r#8�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 fo;fMCPIB%X+hw$q26nT354qRz+w5
Base class of tactic.
Definition: Tactic.h:19
Class that defines the formation tactic. This tactic is used when the robot just needs to be on stand...
Definition: Formation.h:14
bool shouldTacticReset(const StpInfo &info) noexcept override
Should this tactic be reset (go back to the first skill of this tactic) Resets when robot position is...
Definition: Formation.cpp:36
-
std::optional< StpInfo > calculateInfoForSkill(StpInfo const &info) noexcept override
Calculate the info for skills from the StpInfo struct parameter.
Definition: Formation.cpp:20
-
Formation()
Constructor for the tactic, it constructs the state machine of skills.
Definition: Formation.cpp:15
+
std::optional< StpInfo > calculateInfoForSkill(StpInfo const &info) noexcept override
Calculate the info for skills from the StpInfo struct parameter.
Definition: Formation.cpp:19
+
Formation()
Constructor for the tactic, it constructs the state machine of skills.
Definition: Formation.cpp:14
bool isEndTactic() noexcept override
Checks whether this is an end tactic, meaning it should keep looping this tactic if all skills are fi...
Definition: Formation.cpp:38
const char * getName() override
Gets the tactic name.
Definition: Formation.cpp:43
bool isTacticFailing(const StpInfo &info) noexcept override
Is this tactic failing during execution (go back to the previous tactic) Fails if there is no positio...
Definition: Formation.cpp:31
diff --git a/d1/d9a/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementUsDirectGameStateEvaluation-members.html b/d1/d9a/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementUsDirectGameStateEvaluation-members.html new file mode 100644 index 000000000..ebbb99979 --- /dev/null +++ b/d1/d9a/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementUsDirectGameStateEvaluation-members.html @@ -0,0 +1,106 @@ + + + + + + + +Roboteam AI: Member List + + + + + + + + + + + + + + + +
+
+

+ + + + + + +
+
Roboteam AI +
+
+ + + + + + + + + +
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
rtt::ai::stp::evaluation::BallPlacementUsDirectGameStateEvaluation Member List
+
+
+ +

This is the complete list of members for rtt::ai::stp::evaluation::BallPlacementUsDirectGameStateEvaluation, including all inherited members.

+ + + + +
getName() overridertt::ai::stp::evaluation::BallPlacementUsDirectGameStateEvaluationinlinevirtual
metricCheck(const world::World *world, const Field *field) const noexcept overridertt::ai::stp::evaluation::BallPlacementUsDirectGameStateEvaluationvirtual
~BaseEvaluation()=defaultrtt::ai::stp::evaluation::BaseEvaluationvirtual
+
+ + + + diff --git a/d4/d3a/BallPlacementUsDirectGameStateEvaluation_8cpp.html b/d4/d3a/BallPlacementUsDirectGameStateEvaluation_8cpp.html new file mode 100644 index 000000000..ffb0a522f --- /dev/null +++ b/d4/d3a/BallPlacementUsDirectGameStateEvaluation_8cpp.html @@ -0,0 +1,118 @@ + + + + + + + +Roboteam AI: roboteam_ai/src/stp/evaluations/game_states/BallPlacementUsDirectGameStateEvaluation.cpp File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Roboteam AI +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
BallPlacementUsDirectGameStateEvaluation.cpp File Reference
+
+
+ + + + + + + + + + + +

+Namespaces

 rtt
 
 rtt::ai
 
 rtt::ai::stp
 
 rtt::ai::stp::evaluation
 T/F Invariant if the ball is in our defense area and not moving.
 
+
+
+ + + + diff --git a/d4/dab/Dealer_8h_source.html b/d4/dab/Dealer_8h_source.html index 86d1c3478..a4ddac073 100644 --- a/d4/dab/Dealer_8h_source.html +++ b/d4/dab/Dealer_8h_source.html @@ -172,13 +172,13 @@
void distributeFixedIds(std::vector< v::RobotView > &robots, FlagMap &flagMap, std::unordered_map< std::string, v::RobotView > &assignments)
Distributes the forced roles first, so that other rest of the function does not need to compute extra...
Definition: Dealer.cpp:176
double getRobotScoreForDistance(const stp::StpInfo &stpInfo, const v::RobotView &robot)
Calculates the score for a distance between a point and a robot.
Definition: Dealer.cpp:245
v::WorldDataView world
Definition: Dealer.h:107
-
void setGameStateRoleIds(std::unordered_map< std::string, v::RobotView > output)
Sets the keeper and ballplacer id in the gamestate if either of those roles are distributed by the de...
Definition: Dealer.cpp:307
-
static double costForProperty(bool property)
Calculates the cost of a property of a robot.
Definition: Dealer.cpp:319
+
void setGameStateRoleIds(std::unordered_map< std::string, v::RobotView > output)
Sets the keeper and ballplacer id in the gamestate if either of those roles are distributed by the de...
Definition: Dealer.cpp:306
+
static double costForProperty(bool property)
Calculates the cost of a property of a robot.
Definition: Dealer.cpp:318
double getRobotScoreForRole(const std::vector< Dealer::DealerFlag > &dealerFlags, const v::RobotView &robot)
Calculates the score for all flags for a role, for one robot (so will be called 11 times for each rol...
Definition: Dealer.cpp:232
std::map< std::string, RoleInfo > FlagMap
Definition: Dealer.h:71
Dealer(v::WorldDataView world, rtt::Field *field)
Constructor of the dealer class.
Definition: Dealer.cpp:22
std::unordered_map< std::string, v::RobotView > distribute(std::vector< v::RobotView > robots, FlagMap role_to_flags, const std::unordered_map< std::string, stp::StpInfo > &stpInfoMap)
Distributes the role between the friendly robots considering all information given in the role_to_fla...
Definition: Dealer.cpp:27
-
static double costForDistance(double distance, double fieldHeight)
Calculates the cost of travelling a certain distance.
Definition: Dealer.cpp:314
+
static double costForDistance(double distance, double fieldHeight)
Calculates the cost of travelling a certain distance.
Definition: Dealer.cpp:313
DealerFlagPriority priority
Definition: Dealer.h:66
double score
Definition: Dealer.h:114
FRIEND_TEST(DealerTest, the_score_factor_increases_with_priority)
@@ -190,7 +190,7 @@
std::vector< DealerFlag > flags
Definition: Dealer.h:67
std::vector< std::vector< double > > getScoreMatrix(const std::vector< v::RobotView > &allRobots, const FlagMap &flagMap, const std::unordered_map< std::string, stp::StpInfo > &stpInfoMap)
Populates the matrix of robots and roles with scores based on flags and distance.
Definition: Dealer.cpp:205
FRIEND_TEST(DealerTest, it_properly_distributes_robots)
-
virtual double getDefaultFlagScores(const v::RobotView &robot, const DealerFlag &flag)
Getter for the default flag scores This function is virtual such that it can be mocked in the tests....
Definition: Dealer.cpp:277
+
virtual double getDefaultFlagScores(const v::RobotView &robot, const DealerFlag &flag)
Getter for the default flag scores This function is virtual such that it can be mocked in the tests....
Definition: Dealer.cpp:276
Score of a certain flag (/factor) with its weight that it was multiplied with (to be used in normaliz...
Definition: Dealer.h:113
The priority of the role with the falgs that need to be considered.
Definition: Dealer.h:65
Class that offers a read-only memory view of the Robots Imagine RobotView being to Robot what string_...
Definition: RobotView.hpp:20
diff --git a/d4/db8/BallPlacementUsForceStart_8h.html b/d4/db8/BallPlacementUsForceStart_8h.html new file mode 100644 index 000000000..8d1a256f9 --- /dev/null +++ b/d4/db8/BallPlacementUsForceStart_8h.html @@ -0,0 +1,125 @@ + + + + + + + +Roboteam AI: roboteam_ai/include/roboteam_ai/stp/plays/referee_specific/BallPlacementUsForceStart.h File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Roboteam AI +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
BallPlacementUsForceStart.h File Reference
+
+
+
#include "stp/Play.hpp"
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  rtt::ai::stp::play::BallPlacementUsForceStart
 The ball placement us Force Start play is executed when the ball placement us game state is selected and the next ref command is not Free kick us, meaning it will be a force start. More...
 
+ + + + + + + + + +

+Namespaces

 rtt
 
 rtt::ai
 
 rtt::ai::stp
 
 rtt::ai::stp::play
 
+
+
+ + + + diff --git a/d4/db8/BallPlacementUsForceStart_8h_source.html b/d4/db8/BallPlacementUsForceStart_8h_source.html new file mode 100644 index 000000000..8c9db9eae --- /dev/null +++ b/d4/db8/BallPlacementUsForceStart_8h_source.html @@ -0,0 +1,134 @@ + + + + + + + +Roboteam AI: roboteam_ai/include/roboteam_ai/stp/plays/referee_specific/BallPlacementUsForceStart.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Roboteam AI +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
BallPlacementUsForceStart.h
+
+
+Go to the documentation of this file.
1 #ifndef RTT_BallPlacementUsForceStart_H
+
2 #define RTT_BallPlacementUsForceStart_H
+
3 
+
4 #include "stp/Play.hpp"
+
5 
+
6 namespace rtt::ai::stp::play {
+
7 
+ +
13  public:
+ +
18 
+
24  uint8_t score(const rtt::Field& field) noexcept override;
+
25 
+
30  Dealer::FlagMap decideRoleFlags() const noexcept override;
+
31 
+
35  void calculateInfoForRoles() noexcept override;
+
36 
+
41  const char* getName() const override;
+
42 };
+
43 } // namespace rtt::ai::stp::play
+
44 
+
45 #endif // RTT_BallPlacementUsForceStart_H
+ +
std::map< std::string, RoleInfo > FlagMap
Definition: Dealer.h:71
+
Play class that's used in the STP model on update traverses every Role, and updates it.
Definition: Play.hpp:27
+
rtt::Field field
Definition: Play.hpp:127
+
The ball placement us Force Start play is executed when the ball placement us game state is selected ...
Definition: BallPlacementUsForceStart.h:12
+
const char * getName() const override
Retrieves the name of the play.
Definition: BallPlacementUsForceStart.cpp:98
+
void calculateInfoForRoles() noexcept override
Calculates info for the roles.
Definition: BallPlacementUsForceStart.cpp:67
+
BallPlacementUsForceStart()
Constructor that initializes roles with roles that are necessary for this play.
Definition: BallPlacementUsForceStart.cpp:14
+
Dealer::FlagMap decideRoleFlags() const noexcept override
Assigns robots to roles of this play.
Definition: BallPlacementUsForceStart.cpp:46
+
uint8_t score(const rtt::Field &field) noexcept override
Calculates the score of this play to determine which play is best in this situation.
Definition: BallPlacementUsForceStart.cpp:41
+
Definition: DefendPass.h:10
+
+
+ + + + diff --git a/d5/d14/namespacertt_1_1ai_1_1stp.html b/d5/d14/namespacertt_1_1ai_1_1stp.html index 67062964f..1d66d8822 100644 --- a/d5/d14/namespacertt_1_1ai_1_1stp.html +++ b/d5/d14/namespacertt_1_1ai_1_1stp.html @@ -176,35 +176,36 @@ enum class  GlobalEvaluation {
  BallPlacementThemGameState = 0 , BallPlacementUsGameState +, BallPlacementUsDirectGameState , FreeKickThemGameState -, FreeKickUsGameState ,
-  HaltGameState +  FreeKickUsGameState +, HaltGameState , TimeOutGameState , KickOffThemGameState -, KickOffThemPrepareGameState ,
-  KickOffUsGameState +  KickOffThemPrepareGameState +, KickOffUsGameState , KickOffUsOrNormalGameState , KickOffUsPrepareGameState -, NormalOrFreeKickUsGameState ,
-  NormalPlayGameState +  NormalOrFreeKickUsGameState +, NormalPlayGameState , PenaltyThemGameState , PenaltyThemPrepareGameState -, PenaltyUsGameState ,
-  PenaltyUsPrepareGameState +  PenaltyUsGameState +, PenaltyUsPrepareGameState , StopGameState , BallOnOurSide -, BallOnTheirSide ,
-  BallInOurDefenseAreaAndStill +  BallOnTheirSide +, BallInOurDefenseAreaAndStill , BallNotInOurDefenseAreaAndStill , WeHaveBall -, WeDoNotHaveBall ,
-  TheyHaveBall +  WeDoNotHaveBall +, TheyHaveBall , TheyDoNotHaveBall
} @@ -531,6 +532,7 @@

EnumeratorBallPlacementThemGameState 

Game States.

BallPlacementUsGameState  +BallPlacementUsDirectGameState  FreeKickThemGameState  FreeKickUsGameState  HaltGameState  diff --git a/d5/d14/namespacertt_1_1ai_1_1stp.js b/d5/d14/namespacertt_1_1ai_1_1stp.js index 1ea35401d..54af96133 100644 --- a/d5/d14/namespacertt_1_1ai_1_1stp.js +++ b/d5/d14/namespacertt_1_1ai_1_1stp.js @@ -82,6 +82,7 @@ var namespacertt_1_1ai_1_1stp = [ "GlobalEvaluation", "d5/d14/namespacertt_1_1ai_1_1stp.html#a9b1a79ba58c1300d9f6f0e073f9d7db2", [ [ "BallPlacementThemGameState", "d5/d14/namespacertt_1_1ai_1_1stp.html#a9b1a79ba58c1300d9f6f0e073f9d7db2a775d0ce7887fa4de0aadf511dcd6fd71", null ], [ "BallPlacementUsGameState", "d5/d14/namespacertt_1_1ai_1_1stp.html#a9b1a79ba58c1300d9f6f0e073f9d7db2a195616208981cef4a486610feadfb6f6", null ], + [ "BallPlacementUsDirectGameState", "d5/d14/namespacertt_1_1ai_1_1stp.html#a9b1a79ba58c1300d9f6f0e073f9d7db2a85c18d9aa394e8aa1f12d62124b1d6dd", null ], [ "FreeKickThemGameState", "d5/d14/namespacertt_1_1ai_1_1stp.html#a9b1a79ba58c1300d9f6f0e073f9d7db2af5ef925cf3c281225810c9118fd382e0", null ], [ "FreeKickUsGameState", "d5/d14/namespacertt_1_1ai_1_1stp.html#a9b1a79ba58c1300d9f6f0e073f9d7db2aca71e05faa7b1711d1367178d9c4e11f", null ], [ "HaltGameState", "d5/d14/namespacertt_1_1ai_1_1stp.html#a9b1a79ba58c1300d9f6f0e073f9d7db2a77d4126c5a58e2c92ae78938de37c559", null ], diff --git a/d5/d18/StrategyManager_8h_source.html b/d5/d18/StrategyManager_8h_source.html index 440b280f5..349fee9ce 100644 --- a/d5/d18/StrategyManager_8h_source.html +++ b/d5/d18/StrategyManager_8h_source.html @@ -129,27 +129,29 @@ - - - - -
74 
- - - - - - - - -
83  };
- - -
86 };
-
87 
-
88 } // namespace rtt::ai
+ + + + + + +
76 
+ + + + + + + + +
85  };
+ + +
88 };
89 
-
90 #endif // ROBOTEAM_AI_STRATEGYMANAGER_H
+
90 } // namespace rtt::ai
+
91 
+
92 #endif // ROBOTEAM_AI_STRATEGYMANAGER_H
@@ -157,14 +159,14 @@
static RuleSet RULESET_HALT()
Definition: Constants.cpp:176
static RuleSet RULESET_DEFAULT()
Definition: Constants.cpp:175
Class that defines the StrategyManager. The StrategyManager manages the rule sets of each game state.
Definition: StrategyManager.h:22
-
const GameState getGameStateForRefCommand(RefCommand command)
Gets the game state that belongs to the given command.
Definition: StrategyManager.cpp:37
+
const GameState getGameStateForRefCommand(RefCommand command)
Gets the game state that belongs to the given command.
Definition: StrategyManager.cpp:45
void setCurrentGameState(RefCommand command, RefCommand nextCommand, std::optional< rtt::world::view::BallView > ballOpt)
Sets the current game state from the referee.
Definition: StrategyManager.cpp:10
StrategyManager()=default
Default constructor for the StrategyManager class.
-
void forceCurrentGameState(RefCommand command)
Forces the AI into a given game state.
Definition: StrategyManager.cpp:47
+
void forceCurrentGameState(RefCommand command)
Forces the AI into a given game state.
Definition: StrategyManager.cpp:55
const std::vector< GameState > gameStates
Vector containing all possible game states.
Definition: StrategyManager.h:60
-
GameState currentGameState
Definition: StrategyManager.h:84
-
GameState getCurrentGameState()
Gets the current game state from the referee.
Definition: StrategyManager.cpp:35
-
RefCommand lastCommand
Definition: StrategyManager.h:85
+
GameState currentGameState
Definition: StrategyManager.h:86
+
GameState getCurrentGameState()
Gets the current game state from the referee.
Definition: StrategyManager.cpp:43
+
RefCommand lastCommand
Definition: StrategyManager.h:87
Definition: ControlModule.h:14
RefCommand
Enumerators for the different game state given by the referee.
Definition: RefCommand.h:17
@@ -177,6 +179,7 @@ + @@ -186,6 +189,7 @@ +
Definition: GameState.h:13
diff --git a/d5/d3e/KeeperKickBall_8h_source.html b/d5/d3e/KeeperKickBall_8h_source.html index b29fd0b59..45b53ecd5 100644 --- a/d5/d3e/KeeperKickBall_8h_source.html +++ b/d5/d3e/KeeperKickBall_8h_source.html @@ -129,10 +129,10 @@
rtt::Field field
Definition: Play.hpp:127
KeeperKickBall Play is executed when the ball is in our defense area and should be kicked out by our ...
Definition: KeeperKickBall.h:17
bool ballKicked()
Check if the ball has been kicked. True if the kick tactic has ended, false if it is still going.
Definition: KeeperKickBall.cpp:93
-
const char * getName() const override
Retrieve name of the play.
Definition: KeeperKickBall.cpp:118
+
const char * getName() const override
Retrieve name of the play.
Definition: KeeperKickBall.cpp:117
void calculateInfoForRoles() noexcept override
Calculates info for the roles.
Definition: KeeperKickBall.cpp:72
PassInfo passInfo
Definition: KeeperKickBall.h:61
-
bool shouldEndPlay() noexcept override
Check if play should end. True if pass arrived, if the ball is not moving anymore after pass,...
Definition: KeeperKickBall.cpp:100
+
bool shouldEndPlay() noexcept override
Check if play should end. True if pass arrived, if the ball is not moving anymore after pass,...
Definition: KeeperKickBall.cpp:99
Dealer::FlagMap decideRoleFlags() const noexcept override
Assigns robots to roles of this play.
Definition: KeeperKickBall.cpp:54
uint8_t score(const rtt::Field &field) noexcept override
Calculates the score of this play to determine which play is best in this situation.
Definition: KeeperKickBall.cpp:46
KeeperKickBall()
Constructor that initializes roles with roles that are necessary for this play.
Definition: KeeperKickBall.cpp:17
diff --git a/d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.js b/d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.js deleted file mode 100644 index 26dc45f4d..000000000 --- a/d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.js +++ /dev/null @@ -1,32 +0,0 @@ -var classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs = -[ - [ "BallPlacementUs", "d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html#a6fc201194a7404f249dfae0b325ef071", null ], - [ "calculateInfoForRoles", "d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html#a2b46053bb7a8be8c9e3eed35a878c02b", null ], - [ "decideRoleFlags", "d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html#a7de5f6f55f8cd875ecb8b69a44cd52c2", null ], - [ "distributeRoles", "d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html#a977b3063d4d26bee4be08d71c2ab7ccc", null ], - [ "getLastScore", "d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html#a7439c6149abbc461640c9ecdad2ba8d6", null ], - [ "getName", "d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html#adf979bd6b67b35e5e0624479e8769905", null ], - [ "getRoleStatuses", "d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html#ab5f09cfa9cd1ddb2a6990cb3c1b4d691", null ], - [ "initialize", "d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html#aa0405b45c69fc25464bec621fbcbe0cc", null ], - [ "isValidPlayToKeep", "d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html#a5be299fd1dab79b7f656ca37631d6ef6", null ], - [ "isValidPlayToStart", "d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html#a58560de6d2d6ca91e467deb1071aadbd", null ], - [ "reassignRobots", "d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html#aa20291b5cee34414dfb81aa0fd33713f", null ], - [ "refreshData", "d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html#ad7b71d56f8b8d8d62b7ec945847a2bec", null ], - [ "score", "d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html#ae2ed71093fcc2675c105c7012bee372e", null ], - [ "setWorld", "d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html#ab23ad33458ed975661cdc593bdf40968", null ], - [ "shouldEndPlay", "d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html#a8726a464fdb9e614c5cca8c7cd183155", null ], - [ "update", "d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html#a52fc8b6075367b48ae05021829ebcc8f", null ], - [ "updateField", "d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html#a805621fd748e3dfd6399ff69570f7e56", null ], - [ "field", "d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html#a1dc216d51c90eb0e6ddb0298e1ad034e", null ], - [ "keepPlayEvaluation", "d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html#a17fc7a716064d918aa29c072832c2ef8", null ], - [ "lastScore", "d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html#a81d204e55bab023d2937c1420abd04ad", null ], - [ "previousKeeperId", "d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html#a7164f241b13b1aa59b6e6b5c30a3094b", null ], - [ "previousMaxRobots", "d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html#a067c0013eb3e4d70eedd32a504dee10d", null ], - [ "previousRobotNum", "d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html#afc2268677ee563a2f0a7efa4acff465e", null ], - [ "roles", "d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html#a0329d2814e2651902bb05f23659e0084", null ], - [ "roleStatuses", "d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html#a8750ea230c633dcf6a0f09e28e4f47b1", null ], - [ "scoring", "d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html#a4598ba530d29d7f4f53bcec0c9845100", null ], - [ "startPlayEvaluation", "d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html#a859e8c8abae48115eab588736926368f", null ], - [ "stpInfos", "d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html#a08a78e2b6bb5fb4f75d0c9dc572d25fa", null ], - [ "world", "d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html#a0c13cbd482099fa139f3a5f08d964efe", null ] -]; \ No newline at end of file diff --git a/d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.png b/d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.png deleted file mode 100644 index cb28c1be0c998e100056a7cb754d525728c625c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 688 zcmeAS@N?(olHy`uVBq!ia0vp^`+zurgBeIpcw!$5q$C1-LR|m<{|{uoc=NTi|Ih@G z90(scaDcV*jy#abQ4-`A%m7pb0#{Fk7%?y~*?YP;hEy=VoqKW9Y6Tuw@!K>1{a3%g zY6VM1byT(QOi%USGJ;Iq0*AFPoA^HN@|@%r`oMeAbf)-8drE}tb=6*OSarAL{Qh&* zo>lSpk53PYDlcDuSLG$YRpb0?9(o(^FlARffA%L&?#5Aj8N0h@B>$*{E?Y8Bb>)_8 z2U+(|W=*ZGUGa0(o&Sn|M9--CcgI)d^U2q9#2RuM4J1g`OqZ-q-Vg`&5Qx{SWW`cTSO8xVd}%#Avo@|8B2H{$qIbTl)LeA3hg7yWf;@`}e8e zCAxJ@r#!ys988@1QH8Ji*QSprgV(Ka-~B$)b-(SUO?&NRHh)s=iZrRzzruS5O zOsm&R%zvd>}M

Detailed Description

Rotates (with dribbler) the robot if needed to target angle then calculates the power to CHIP the BALL with.

ROTATES robot to face forwards.

-

PASSIVE.

+

Goes to a give POSITION and ROTATEs to face forwards.

Places our robot between the ball and a given target position (either enemy robot or position to defend)

ACTIVE.

Moves the robot to the BALL in a straight line and ROTATES the robot towards to ball.

Rotates the target position and drives towards it.

ACTIVE

Rotates (with dribbler) the robot if needed to target angle then calculates the power to KICK the BALL with. ACTIVE

-

Goes to a give POSITION and ROTATEs to face forwards TODO-Max Make angle an optional info

+

PASSIVE

Variable Documentation

◆ KEEPER_DISTANCE_TO_GOAL_LINE

diff --git a/d5/de0/PositionComputations_8h_source.html b/d5/de0/PositionComputations_8h_source.html index c5b01e02f..346622161 100644 --- a/d5/de0/PositionComputations_8h_source.html +++ b/d5/de0/PositionComputations_8h_source.html @@ -169,7 +169,7 @@
class with computations about positions
Definition: PositionComputations.h:37
-
static void recalculateInfoForNonPassers(std::unordered_map< std::string, StpInfo > &stpInfos, const Field &field, world::World *world, Vector2 passLocation) noexcept
Recalculates info for the position of our robots to not interfere with passing.
Definition: PositionComputations.cpp:459
+
static void recalculateInfoForNonPassers(std::unordered_map< std::string, StpInfo > &stpInfos, const Field &field, world::World *world, Vector2 passLocation) noexcept
Recalculates info for the position of our robots to not interfere with passing.
Definition: PositionComputations.cpp:464
static std::vector< Vector2 > determineWallPositions(const Field &field, const world::World *world, int amountDefenders)
Determines the location for defenders around the defense area Uses the defence area boundaries and th...
Definition: PositionComputations.cpp:43
static void calculateInfoForFormation(std::unordered_map< std::string, StpInfo > &stpInfos, std::array< std::unique_ptr< Role >, stp::control_constants::MAX_ROBOT_COUNT > &roles, const Field &field, world::World *world) noexcept
Calculates info for the formations.
Definition: PositionComputations.cpp:399
static void calculateInfoForAttackers(std::unordered_map< std::string, StpInfo > &stpInfos, std::array< std::unique_ptr< Role >, stp::control_constants::MAX_ROBOT_COUNT > &roles, const Field &field, world::World *world) noexcept
Calculates info for the attackers.
Definition: PositionComputations.cpp:365
diff --git a/d5/df2/BallPlacementUsDirectGameStateEvaluation_8h.html b/d5/df2/BallPlacementUsDirectGameStateEvaluation_8h.html new file mode 100644 index 000000000..26bbf696e --- /dev/null +++ b/d5/df2/BallPlacementUsDirectGameStateEvaluation_8h.html @@ -0,0 +1,126 @@ + + + + + + + +Roboteam AI: roboteam_ai/include/roboteam_ai/stp/evaluations/game_states/BallPlacementUsDirectGameStateEvaluation.h File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Roboteam AI +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
BallPlacementUsDirectGameStateEvaluation.h File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + +

+Classes

class  rtt::ai::stp::evaluation::BallPlacementUsDirectGameStateEvaluation
 Class that evaluates the ball placement us game state when the next command is direct free kick. More...
 
+ + + + + + + + + + +

+Namespaces

 rtt
 
 rtt::ai
 
 rtt::ai::stp
 
 rtt::ai::stp::evaluation
 T/F Invariant if the ball is in our defense area and not moving.
 
+
+
+ + + + diff --git a/d5/df2/BallPlacementUsDirectGameStateEvaluation_8h_source.html b/d5/df2/BallPlacementUsDirectGameStateEvaluation_8h_source.html new file mode 100644 index 000000000..dff8ce5fe --- /dev/null +++ b/d5/df2/BallPlacementUsDirectGameStateEvaluation_8h_source.html @@ -0,0 +1,128 @@ + + + + + + + +Roboteam AI: roboteam_ai/include/roboteam_ai/stp/evaluations/game_states/BallPlacementUsDirectGameStateEvaluation.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Roboteam AI +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
BallPlacementUsDirectGameStateEvaluation.h
+
+
+Go to the documentation of this file.
1 //
+
2 // Created by timovdk on 4/14/20.
+
3 //
+
4 
+
5 #ifndef RTT_BALLPLACEMENTUSDIRECTGAMESTATEEVALUATION_H
+
6 #define RTT_BALLPLACEMENTUSDIRECTGAMESTATEEVALUATION_H
+
7 
+ +
9 
+
10 namespace rtt::ai::stp::evaluation {
+ +
15  public:
+
22  [[nodiscard]] uint8_t metricCheck(const world::World* world, const Field* field) const noexcept override;
+
23 
+
28  const char* getName() override { return "gs::BallPlacementUsDirect"; }
+
29 };
+
30 } // namespace rtt::ai::stp::evaluation
+
31 
+
32 #endif // RTT_BALLPLACEMENTUSDIRECTGAMESTATEEVALUATION_H
+ +
Class that evaluates the ball placement us game state when the next command is direct free kick.
Definition: BallPlacementUsDirectGameStateEvaluation.h:14
+
const char * getName() override
Retrieves the name of the evaluation.
Definition: BallPlacementUsDirectGameStateEvaluation.h:28
+
uint8_t metricCheck(const world::World *world, const Field *field) const noexcept override
Calculates the score for the ball placement us game state when the next command is direct free kick.
Definition: BallPlacementUsDirectGameStateEvaluation.cpp:6
+
Base class for evaluations.
Definition: BaseEvaluation.h:14
+
Class that represents the world and history of the world.
Definition: World.hpp:38
+
T/F Invariant if the ball is in our defense area and not moving.
Definition: BaseEvaluation.h:10
+
Definition: IOManager.h:18
+
+
+ + + + diff --git a/d6/de3/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart-members.html b/d6/de3/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart-members.html new file mode 100644 index 000000000..6d23bd2c1 --- /dev/null +++ b/d6/de3/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart-members.html @@ -0,0 +1,135 @@ + + + + + + + +Roboteam AI: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Roboteam AI +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
rtt::ai::stp::play::BallPlacementUsForceStart Member List
+
+
+ +

This is the complete list of members for rtt::ai::stp::play::BallPlacementUsForceStart, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BallPlacementUsForceStart()rtt::ai::stp::play::BallPlacementUsForceStart
calculateInfoForRoles() noexcept overridertt::ai::stp::play::BallPlacementUsForceStartvirtual
decideRoleFlags() const noexcept overridertt::ai::stp::play::BallPlacementUsForceStartvirtual
distributeRoles() noexceptrtt::ai::stp::Playprivate
fieldrtt::ai::stp::Playprotected
getLastScore() constrtt::ai::stp::Play
getName() const overridertt::ai::stp::play::BallPlacementUsForceStartvirtual
getRoleStatuses() constrtt::ai::stp::Play
initialize() noexceptrtt::ai::stp::Play
isValidPlayToKeep() noexceptrtt::ai::stp::Play
isValidPlayToStart() const noexceptrtt::ai::stp::Play
keepPlayEvaluationrtt::ai::stp::Play
lastScorertt::ai::stp::Play
Play()=defaultrtt::ai::stp::Play
Play(Play &&other)=defaultrtt::ai::stp::Play
previousKeeperIdrtt::ai::stp::Playprivate
previousMaxRobotsrtt::ai::stp::Playprivate
previousRobotNumrtt::ai::stp::Playprivate
reassignRobots() noexceptrtt::ai::stp::Playprivate
refreshData() noexceptrtt::ai::stp::Playprivate
rolesrtt::ai::stp::Playprotected
roleStatusesrtt::ai::stp::Playprotected
score(const rtt::Field &field) noexcept overridertt::ai::stp::play::BallPlacementUsForceStartvirtual
scoringrtt::ai::stp::Playprotected
setWorld(world::World *world) noexceptrtt::ai::stp::Play
shouldEndPlay() noexceptrtt::ai::stp::Playprotectedvirtual
startPlayEvaluationrtt::ai::stp::Play
stpInfosrtt::ai::stp::Playprotected
update() noexceptrtt::ai::stp::Playvirtual
updateField(Field field) noexceptrtt::ai::stp::Play
worldrtt::ai::stp::Playprotected
~Play()=defaultrtt::ai::stp::Playvirtual
+
+ + + + diff --git a/d7/d91/classrtt_1_1ai_1_1stp_1_1Play.html b/d7/d91/classrtt_1_1ai_1_1stp_1_1Play.html index a0fde05d2..4551b5511 100644 --- a/d7/d91/classrtt_1_1ai_1_1stp_1_1Play.html +++ b/d7/d91/classrtt_1_1ai_1_1stp_1_1Play.html @@ -107,28 +107,29 @@
-rtt::ai::stp::play::AggressiveStopFormation -rtt::ai::stp::play::Attack -rtt::ai::stp::play::AttackingPass -rtt::ai::stp::play::BallPlacementThem -rtt::ai::stp::play::BallPlacementUs -rtt::ai::stp::play::ChippingPass -rtt::ai::stp::play::DefendPass -rtt::ai::stp::play::DefendShot -rtt::ai::stp::play::DefensiveStopFormation -rtt::ai::stp::play::FreeKickThem -rtt::ai::stp::play::FreeKickUsAtGoal -rtt::ai::stp::play::FreeKickUsPass -rtt::ai::stp::play::Halt -rtt::ai::stp::play::KeeperKickBall -rtt::ai::stp::play::KickOffThem -rtt::ai::stp::play::KickOffThemPrepare -rtt::ai::stp::play::KickOffUs -rtt::ai::stp::play::KickOffUsPrepare -rtt::ai::stp::play::PenaltyThem -rtt::ai::stp::play::PenaltyThemPrepare -rtt::ai::stp::play::PenaltyUs -rtt::ai::stp::play::PenaltyUsPrepare +rtt::ai::stp::play::AggressiveStopFormation +rtt::ai::stp::play::Attack +rtt::ai::stp::play::AttackingPass +rtt::ai::stp::play::BallPlacementThem +rtt::ai::stp::play::BallPlacementUsForceStart +rtt::ai::stp::play::BallPlacementUsFreeKick +rtt::ai::stp::play::ChippingPass +rtt::ai::stp::play::DefendPass +rtt::ai::stp::play::DefendShot +rtt::ai::stp::play::DefensiveStopFormation +rtt::ai::stp::play::FreeKickThem +rtt::ai::stp::play::FreeKickUsAtGoal +rtt::ai::stp::play::FreeKickUsPass +rtt::ai::stp::play::Halt +rtt::ai::stp::play::KeeperKickBall +rtt::ai::stp::play::KickOffThem +rtt::ai::stp::play::KickOffThemPrepare +rtt::ai::stp::play::KickOffUs +rtt::ai::stp::play::KickOffUsPrepare +rtt::ai::stp::play::PenaltyThem +rtt::ai::stp::play::PenaltyThemPrepare +rtt::ai::stp::play::PenaltyUs +rtt::ai::stp::play::PenaltyUsPrepare
@@ -348,7 +349,7 @@

rtt::ai::stp::play::PenaltyUsPrepare, rtt::ai::stp::play::PenaltyUs, rtt::ai::stp::play::PenaltyThemPrepare, rtt::ai::stp::play::PenaltyThem, rtt::ai::stp::play::KickOffUsPrepare, rtt::ai::stp::play::KickOffUs, rtt::ai::stp::play::KickOffThemPrepare, rtt::ai::stp::play::KickOffThem, rtt::ai::stp::play::Halt, rtt::ai::stp::play::FreeKickUsPass, rtt::ai::stp::play::FreeKickUsAtGoal, rtt::ai::stp::play::FreeKickThem, rtt::ai::stp::play::DefensiveStopFormation, rtt::ai::stp::play::BallPlacementUs, rtt::ai::stp::play::BallPlacementThem, rtt::ai::stp::play::AggressiveStopFormation, rtt::ai::stp::play::ChippingPass, rtt::ai::stp::play::AttackingPass, rtt::ai::stp::play::Attack, rtt::ai::stp::play::KeeperKickBall, rtt::ai::stp::play::DefendShot, and rtt::ai::stp::play::DefendPass.

+

Implemented in rtt::ai::stp::play::PenaltyUsPrepare, rtt::ai::stp::play::PenaltyUs, rtt::ai::stp::play::PenaltyThemPrepare, rtt::ai::stp::play::PenaltyThem, rtt::ai::stp::play::KickOffUsPrepare, rtt::ai::stp::play::KickOffUs, rtt::ai::stp::play::KickOffThemPrepare, rtt::ai::stp::play::KickOffThem, rtt::ai::stp::play::Halt, rtt::ai::stp::play::FreeKickUsPass, rtt::ai::stp::play::FreeKickUsAtGoal, rtt::ai::stp::play::FreeKickThem, rtt::ai::stp::play::DefensiveStopFormation, rtt::ai::stp::play::BallPlacementUsFreeKick, rtt::ai::stp::play::BallPlacementUsForceStart, rtt::ai::stp::play::BallPlacementThem, rtt::ai::stp::play::AggressiveStopFormation, rtt::ai::stp::play::ChippingPass, rtt::ai::stp::play::AttackingPass, rtt::ai::stp::play::Attack, rtt::ai::stp::play::KeeperKickBall, rtt::ai::stp::play::DefendShot, and rtt::ai::stp::play::DefendPass.

@@ -378,7 +379,7 @@

Returns
a mapping between roles and robot flags, used by the robot dealer to assign roles
-

Implemented in rtt::ai::stp::play::PenaltyUsPrepare, rtt::ai::stp::play::PenaltyUs, rtt::ai::stp::play::PenaltyThemPrepare, rtt::ai::stp::play::PenaltyThem, rtt::ai::stp::play::KickOffUsPrepare, rtt::ai::stp::play::KickOffUs, rtt::ai::stp::play::KickOffThemPrepare, rtt::ai::stp::play::KickOffThem, rtt::ai::stp::play::Halt, rtt::ai::stp::play::FreeKickUsPass, rtt::ai::stp::play::FreeKickUsAtGoal, rtt::ai::stp::play::FreeKickThem, rtt::ai::stp::play::DefensiveStopFormation, rtt::ai::stp::play::BallPlacementUs, rtt::ai::stp::play::BallPlacementThem, rtt::ai::stp::play::AggressiveStopFormation, rtt::ai::stp::play::ChippingPass, rtt::ai::stp::play::AttackingPass, rtt::ai::stp::play::Attack, rtt::ai::stp::play::KeeperKickBall, rtt::ai::stp::play::DefendShot, and rtt::ai::stp::play::DefendPass.

+

Implemented in rtt::ai::stp::play::PenaltyUsPrepare, rtt::ai::stp::play::PenaltyUs, rtt::ai::stp::play::PenaltyThemPrepare, rtt::ai::stp::play::PenaltyThem, rtt::ai::stp::play::KickOffUsPrepare, rtt::ai::stp::play::KickOffUs, rtt::ai::stp::play::KickOffThemPrepare, rtt::ai::stp::play::KickOffThem, rtt::ai::stp::play::Halt, rtt::ai::stp::play::FreeKickUsPass, rtt::ai::stp::play::FreeKickUsAtGoal, rtt::ai::stp::play::FreeKickThem, rtt::ai::stp::play::DefensiveStopFormation, rtt::ai::stp::play::BallPlacementUsFreeKick, rtt::ai::stp::play::BallPlacementUsForceStart, rtt::ai::stp::play::BallPlacementThem, rtt::ai::stp::play::AggressiveStopFormation, rtt::ai::stp::play::ChippingPass, rtt::ai::stp::play::AttackingPass, rtt::ai::stp::play::Attack, rtt::ai::stp::play::KeeperKickBall, rtt::ai::stp::play::DefendShot, and rtt::ai::stp::play::DefendPass.

@@ -455,7 +456,7 @@

Returns
name of the play
-

Implemented in rtt::ai::stp::play::PenaltyUsPrepare, rtt::ai::stp::play::PenaltyUs, rtt::ai::stp::play::PenaltyThemPrepare, rtt::ai::stp::play::PenaltyThem, rtt::ai::stp::play::KickOffUsPrepare, rtt::ai::stp::play::KickOffUs, rtt::ai::stp::play::KickOffThemPrepare, rtt::ai::stp::play::KickOffThem, rtt::ai::stp::play::Halt, rtt::ai::stp::play::FreeKickUsPass, rtt::ai::stp::play::FreeKickUsAtGoal, rtt::ai::stp::play::FreeKickThem, rtt::ai::stp::play::DefensiveStopFormation, rtt::ai::stp::play::BallPlacementUs, rtt::ai::stp::play::BallPlacementThem, rtt::ai::stp::play::AggressiveStopFormation, rtt::ai::stp::play::ChippingPass, rtt::ai::stp::play::AttackingPass, rtt::ai::stp::play::Attack, rtt::ai::stp::play::KeeperKickBall, rtt::ai::stp::play::DefendShot, and rtt::ai::stp::play::DefendPass.

+

Implemented in rtt::ai::stp::play::PenaltyUsPrepare, rtt::ai::stp::play::PenaltyUs, rtt::ai::stp::play::PenaltyThemPrepare, rtt::ai::stp::play::PenaltyThem, rtt::ai::stp::play::KickOffUsPrepare, rtt::ai::stp::play::KickOffUs, rtt::ai::stp::play::KickOffThemPrepare, rtt::ai::stp::play::KickOffThem, rtt::ai::stp::play::Halt, rtt::ai::stp::play::FreeKickUsPass, rtt::ai::stp::play::FreeKickUsAtGoal, rtt::ai::stp::play::FreeKickThem, rtt::ai::stp::play::DefensiveStopFormation, rtt::ai::stp::play::BallPlacementUsFreeKick, rtt::ai::stp::play::BallPlacementUsForceStart, rtt::ai::stp::play::BallPlacementThem, rtt::ai::stp::play::AggressiveStopFormation, rtt::ai::stp::play::ChippingPass, rtt::ai::stp::play::AttackingPass, rtt::ai::stp::play::Attack, rtt::ai::stp::play::KeeperKickBall, rtt::ai::stp::play::DefendShot, and rtt::ai::stp::play::DefendPass.

@@ -649,7 +650,7 @@

Returns
Score of the play (0 - 255)
-

Implemented in rtt::ai::stp::play::PenaltyUsPrepare, rtt::ai::stp::play::PenaltyUs, rtt::ai::stp::play::PenaltyThemPrepare, rtt::ai::stp::play::PenaltyThem, rtt::ai::stp::play::KickOffUsPrepare, rtt::ai::stp::play::KickOffUs, rtt::ai::stp::play::KickOffThemPrepare, rtt::ai::stp::play::KickOffThem, rtt::ai::stp::play::Halt, rtt::ai::stp::play::FreeKickUsPass, rtt::ai::stp::play::FreeKickUsAtGoal, rtt::ai::stp::play::FreeKickThem, rtt::ai::stp::play::DefensiveStopFormation, rtt::ai::stp::play::BallPlacementUs, rtt::ai::stp::play::BallPlacementThem, rtt::ai::stp::play::AggressiveStopFormation, rtt::ai::stp::play::ChippingPass, rtt::ai::stp::play::AttackingPass, rtt::ai::stp::play::Attack, rtt::ai::stp::play::KeeperKickBall, rtt::ai::stp::play::DefendShot, and rtt::ai::stp::play::DefendPass.

+

Implemented in rtt::ai::stp::play::PenaltyUsPrepare, rtt::ai::stp::play::PenaltyUs, rtt::ai::stp::play::PenaltyThemPrepare, rtt::ai::stp::play::PenaltyThem, rtt::ai::stp::play::KickOffUsPrepare, rtt::ai::stp::play::KickOffUs, rtt::ai::stp::play::KickOffThemPrepare, rtt::ai::stp::play::KickOffThem, rtt::ai::stp::play::Halt, rtt::ai::stp::play::FreeKickUsPass, rtt::ai::stp::play::FreeKickUsAtGoal, rtt::ai::stp::play::FreeKickThem, rtt::ai::stp::play::DefensiveStopFormation, rtt::ai::stp::play::BallPlacementUsFreeKick, rtt::ai::stp::play::BallPlacementUsForceStart, rtt::ai::stp::play::BallPlacementThem, rtt::ai::stp::play::AggressiveStopFormation, rtt::ai::stp::play::ChippingPass, rtt::ai::stp::play::AttackingPass, rtt::ai::stp::play::Attack, rtt::ai::stp::play::KeeperKickBall, rtt::ai::stp::play::DefendShot, and rtt::ai::stp::play::DefendPass.

diff --git a/d7/d91/classrtt_1_1ai_1_1stp_1_1Play.png b/d7/d91/classrtt_1_1ai_1_1stp_1_1Play.png index aa2a4319e18660d959c189ac2b957f69e17367c4..9d3c2f94166fc01fcb29dd6f46e1dea6092bc291 100644 GIT binary patch literal 12433 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 literal 11714 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 24  protected:
25  static inline std::vector<rtt::RobotCommand> robotCommands;
26  static inline std::map<unsigned int, AnglePID> simulatorAnglePIDmap;
-
33  static void limitRobotCommand(rtt::RobotCommand& command, std::optional<rtt::world::view::RobotView> robot);
+
33  static void limitRobotCommand(rtt::RobotCommand& command, rtt::world::view::RobotView robot);
34 
39  static void limitVel(rtt::RobotCommand& command);
40 
-
46  static void limitAngularVel(rtt::RobotCommand& command, std::optional<rtt::world::view::RobotView> robot);
+
46  static void limitAngularVel(rtt::RobotCommand& command, rtt::world::view::RobotView robot);
47 
52  static void rotateRobotCommand(rtt::RobotCommand& command);
53 
54  public:
-
60  static void addRobotCommand(std::optional<rtt::world::view::RobotView> robot, const rtt::RobotCommand& command) noexcept;
+
60  static void addRobotCommand(std::optional<rtt::world::view::RobotView> robot, rtt::RobotCommand command) noexcept;
64  static void sendAllCommands();
65 
71  static void simulator_angular_control(const std::optional<::rtt::world::view::RobotView>& robot, rtt::RobotCommand& robot_command);
@@ -127,15 +127,16 @@
Control Module as seen in the system architecture. Its job: Receive RobotCommands from Skills,...
Definition: ControlModule.h:23
-
static void sendAllCommands()
Sends all commands to robothub.
Definition: ControlModule.cpp:107
-
static void simulator_angular_control(const std::optional<::rtt::world::view::RobotView > &robot, rtt::RobotCommand &robot_command)
Adjust the angular velocity to the simulator.
Definition: ControlModule.cpp:77
-
static void limitAngularVel(rtt::RobotCommand &command, std::optional< rtt::world::view::RobotView > robot)
Limits the angular velocity with a control_constants value.
Definition: ControlModule.cpp:34
-
static void addRobotCommand(std::optional< rtt::world::view::RobotView > robot, const rtt::RobotCommand &command) noexcept
Limits the current robot command and adds it to the list of commands to be sent.
Definition: ControlModule.cpp:57
+
static void sendAllCommands()
Sends all commands to robothub.
Definition: ControlModule.cpp:103
+
static void addRobotCommand(std::optional< rtt::world::view::RobotView > robot, rtt::RobotCommand command) noexcept
Limits the current robot command and adds it to the list of commands to be sent.
Definition: ControlModule.cpp:54
+
static void simulator_angular_control(const std::optional<::rtt::world::view::RobotView > &robot, rtt::RobotCommand &robot_command)
Adjust the angular velocity to the simulator.
Definition: ControlModule.cpp:73
static std::vector< rtt::RobotCommand > robotCommands
Definition: ControlModule.h:25
static std::map< unsigned int, AnglePID > simulatorAnglePIDmap
Definition: ControlModule.h:26
static void rotateRobotCommand(rtt::RobotCommand &command)
Rotates the robot command to the other side of the field.
Definition: ControlModule.cpp:16
-
static void limitRobotCommand(rtt::RobotCommand &command, std::optional< rtt::world::view::RobotView > robot)
Applies constraints to the internal robot command.
Definition: ControlModule.cpp:22
+
static void limitAngularVel(rtt::RobotCommand &command, rtt::world::view::RobotView robot)
Limits the angular velocity with a control_constants value.
Definition: ControlModule.cpp:31
+
static void limitRobotCommand(rtt::RobotCommand &command, rtt::world::view::RobotView robot)
Applies constraints to the internal robot command.
Definition: ControlModule.cpp:22
static void limitVel(rtt::RobotCommand &command)
Limits the velocity with a control_constants value.
Definition: ControlModule.cpp:27
+
Class that offers a read-only memory view of the Robots Imagine RobotView being to Robot what string_...
Definition: RobotView.hpp:20
Definition: ControlModule.h:14
diff --git a/d8/d32/namespacertt_1_1ai_1_1stp_1_1play.html b/d8/d32/namespacertt_1_1ai_1_1stp_1_1play.html index 16861ea9c..44c784df6 100644 --- a/d8/d32/namespacertt_1_1ai_1_1stp_1_1play.html +++ b/d8/d32/namespacertt_1_1ai_1_1stp_1_1play.html @@ -118,8 +118,11 @@

- - + + + + + diff --git a/d8/d32/namespacertt_1_1ai_1_1stp_1_1play.js b/d8/d32/namespacertt_1_1ai_1_1stp_1_1play.js index 9bcb6419b..f0ba0b60d 100644 --- a/d8/d32/namespacertt_1_1ai_1_1stp_1_1play.js +++ b/d8/d32/namespacertt_1_1ai_1_1stp_1_1play.js @@ -8,7 +8,8 @@ var namespacertt_1_1ai_1_1stp_1_1play = [ "ChippingPass", "dc/d26/classrtt_1_1ai_1_1stp_1_1play_1_1ChippingPass.html", "dc/d26/classrtt_1_1ai_1_1stp_1_1play_1_1ChippingPass" ], [ "AggressiveStopFormation", "dd/dff/classrtt_1_1ai_1_1stp_1_1play_1_1AggressiveStopFormation.html", "dd/dff/classrtt_1_1ai_1_1stp_1_1play_1_1AggressiveStopFormation" ], [ "BallPlacementThem", "d7/d43/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementThem.html", "d7/d43/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementThem" ], - [ "BallPlacementUs", "d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html", "d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs" ], + [ "BallPlacementUsForceStart", "de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html", "de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart" ], + [ "BallPlacementUsFreeKick", "d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html", "d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick" ], [ "DefensiveStopFormation", "df/de3/classrtt_1_1ai_1_1stp_1_1play_1_1DefensiveStopFormation.html", "df/de3/classrtt_1_1ai_1_1stp_1_1play_1_1DefensiveStopFormation" ], [ "FreeKickThem", "dc/d7b/classrtt_1_1ai_1_1stp_1_1play_1_1FreeKickThem.html", "dc/d7b/classrtt_1_1ai_1_1stp_1_1play_1_1FreeKickThem" ], [ "FreeKickUsAtGoal", "dd/dc8/classrtt_1_1ai_1_1stp_1_1play_1_1FreeKickUsAtGoal.html", "dd/dc8/classrtt_1_1ai_1_1stp_1_1play_1_1FreeKickUsAtGoal" ], diff --git a/d8/dd4/RefCommand_8h.html b/d8/dd4/RefCommand_8h.html index 0e9d251aa..5769b3b8d 100644 --- a/d8/dd4/RefCommand_8h.html +++ b/d8/dd4/RefCommand_8h.html @@ -129,6 +129,9 @@   rtt::PENALTY_US = 20 , rtt::PENALTY_THEM = 21 , rtt::BALL_PLACEMENT_US_DIRECT = 22 +, rtt::DIRECT_FREE_US_STOP = 23 +,
+  rtt::DIRECT_FREE_THEM_STOP = 24 , rtt::UNDEFINED = -1
} diff --git a/d8/dd4/RefCommand_8h.js b/d8/dd4/RefCommand_8h.js index 2afc7e6fd..5a000b6ae 100644 --- a/d8/dd4/RefCommand_8h.js +++ b/d8/dd4/RefCommand_8h.js @@ -20,6 +20,8 @@ var RefCommand_8h = [ "PENALTY_US", "d8/dd4/RefCommand_8h.html#ac458fd2464c54331a04fc2fd54d82843ac8e4285c18e34175148b25b8d4f00e1a", null ], [ "PENALTY_THEM", "d8/dd4/RefCommand_8h.html#ac458fd2464c54331a04fc2fd54d82843af97cec8038d98ef4a331a5e3ba53a429", null ], [ "BALL_PLACEMENT_US_DIRECT", "d8/dd4/RefCommand_8h.html#ac458fd2464c54331a04fc2fd54d82843adc054ff36312758291b2f2f24ea69166", null ], + [ "DIRECT_FREE_US_STOP", "d8/dd4/RefCommand_8h.html#ac458fd2464c54331a04fc2fd54d82843aa0e17303d5ddfc03629d114713d8fa7d", null ], + [ "DIRECT_FREE_THEM_STOP", "d8/dd4/RefCommand_8h.html#ac458fd2464c54331a04fc2fd54d82843ae4a42a36109c1c3e473ec1ed275f2809", null ], [ "UNDEFINED", "d8/dd4/RefCommand_8h.html#ac458fd2464c54331a04fc2fd54d82843a0db45d2a4141101bdfe48e3314cfbca3", null ] ] ], [ "operator<<", "d8/dd4/RefCommand_8h.html#a348468bc2c2e59d32ab7c1b7d0479f9b", null ] diff --git a/d8/dd4/RefCommand_8h_source.html b/d8/dd4/RefCommand_8h_source.html index 11d1db5b2..633a130e9 100644 --- a/d8/dd4/RefCommand_8h_source.html +++ b/d8/dd4/RefCommand_8h_source.html @@ -122,80 +122,88 @@
37  PENALTY_US = 20,
38  PENALTY_THEM = 21,
39  BALL_PLACEMENT_US_DIRECT = 22, // Ball placement before a direct free kick
-
40 
-
41  UNDEFINED = -1
-
42 };
-
43 
-
51 inline std::ostream &operator<<(std::ostream &os, const RefCommand &command) {
-
52  switch (command) {
-
53  case RefCommand::HALT:
-
54  os << "HALT";
-
55  break;
-
56  case RefCommand::STOP:
-
57  os << "STOP";
-
58  break;
- -
60  os << "NORMAL_START";
-
61  break;
- -
63  os << "FORCED_START";
-
64  break;
- -
66  os << "PREPARE_KICKOFF_US";
-
67  break;
- -
69  os << "PREPARE_KICKOFF_THEM";
-
70  break;
- -
72  os << "PREPARE_PENALTY_US";
-
73  break;
- -
75  os << "PREPARE_PENALTY_THEM";
-
76  break;
- -
78  os << "DIRECT_FREE_US";
-
79  break;
- -
81  os << "DIRECT_FREE_THEM";
-
82  break;
- -
84  os << "TIMEOUT_US";
-
85  break;
- -
87  os << "TIMEOUT_THEM";
-
88  break;
- -
90  os << "BALL_PLACEMENT_US";
-
91  break;
- -
93  os << "BALL_PLACEMENT_US_DIRECT";
-
94  break;
- -
96  os << "BALL_PLACEMENT_THEM";
-
97  break;
- -
99  os << "KICKOFF_US";
-
100  break;
- -
102  os << "KICKOFF_THEM";
-
103  break;
- -
105  os << "PENALTY_US";
-
106  break;
- -
108  os << "PENALTY_THEM";
-
109  break;
- -
111  os << "UNDEFINED";
-
112  break;
-
113  }
-
114  return os;
-
115 }
-
116 } // namespace rtt
-
117 
-
118 #endif // RTT_REFCOMMAND_H
+
40  DIRECT_FREE_US_STOP = 23, // Direct free kick us directly after a stop
+
41  DIRECT_FREE_THEM_STOP = 24, // Direct free kick them directly after a stop
+
42 
+
43  UNDEFINED = -1
+
44 };
+
45 
+
53 inline std::ostream &operator<<(std::ostream &os, const RefCommand &command) {
+
54  switch (command) {
+
55  case RefCommand::HALT:
+
56  os << "HALT";
+
57  break;
+
58  case RefCommand::STOP:
+
59  os << "STOP";
+
60  break;
+ +
62  os << "NORMAL_START";
+
63  break;
+ +
65  os << "FORCED_START";
+
66  break;
+ +
68  os << "PREPARE_KICKOFF_US";
+
69  break;
+ +
71  os << "PREPARE_KICKOFF_THEM";
+
72  break;
+ +
74  os << "PREPARE_PENALTY_US";
+
75  break;
+ +
77  os << "PREPARE_PENALTY_THEM";
+
78  break;
+ +
80  os << "DIRECT_FREE_US";
+
81  break;
+ +
83  os << "DIRECT_FREE_THEM";
+
84  break;
+ +
86  os << "DIRECT_FREE_US_STOP";
+
87  break;
+ +
89  os << "DIRECT_FREE_THEM_STOP";
+
90  break;
+ +
92  os << "TIMEOUT_US";
+
93  break;
+ +
95  os << "TIMEOUT_THEM";
+
96  break;
+ +
98  os << "BALL_PLACEMENT_US";
+
99  break;
+ +
101  os << "BALL_PLACEMENT_US_DIRECT";
+
102  break;
+ +
104  os << "BALL_PLACEMENT_THEM";
+
105  break;
+ +
107  os << "KICKOFF_US";
+
108  break;
+ +
110  os << "KICKOFF_THEM";
+
111  break;
+ +
113  os << "PENALTY_US";
+
114  break;
+ +
116  os << "PENALTY_THEM";
+
117  break;
+ +
119  os << "UNDEFINED";
+
120  break;
+
121  }
+
122  return os;
+
123 }
+
124 } // namespace rtt
+
125 
+
126 #endif // RTT_REFCOMMAND_H
Definition: AnglePID.h:10
-
std::ostream & operator<<(std::ostream &os, const RefCommand &command)
Overload the << operator for the RefCommand enum.
Definition: RefCommand.h:51
+
std::ostream & operator<<(std::ostream &os, const RefCommand &command)
Overload the << operator for the RefCommand enum.
Definition: RefCommand.h:53
RefCommand
Enumerators for the different game state given by the referee.
Definition: RefCommand.h:17
@@ -207,6 +215,7 @@ + @@ -216,6 +225,7 @@ + diff --git a/d9/d0e/classrtt_1_1ai_1_1control_1_1ControlModule-members.html b/d9/d0e/classrtt_1_1ai_1_1control_1_1ControlModule-members.html index 84595dec0..3d7a6ef7e 100644 --- a/d9/d0e/classrtt_1_1ai_1_1control_1_1ControlModule-members.html +++ b/d9/d0e/classrtt_1_1ai_1_1control_1_1ControlModule-members.html @@ -91,9 +91,9 @@

This is the complete list of members for rtt::ai::control::ControlModule, including all inherited members.

class  BallPlacementThem
 The ball placement them play is executed when the ball placement them game state is selected. More...
 
class  BallPlacementUs
 The ball placement us play is executed when the ball placement us game state is selected. More...
class  BallPlacementUsForceStart
 The ball placement us Force Start play is executed when the ball placement us game state is selected and the next ref command is not Free kick us, meaning it will be a force start. More...
 
class  BallPlacementUsFreeKick
 The ball placement us Free kick play is executed when the ball placement us game state is selected and the next ref command is Free Kick Us. More...
 
class  DefensiveStopFormation
 The defensive stop formation is executed when we want to defend after the stop game state has ended. More...
- - - + + + diff --git a/da/dab/BallPlacementUs_8cpp.html b/d9/d90/BallPlacementUsFreeKick_8cpp.html similarity index 91% rename from da/dab/BallPlacementUs_8cpp.html rename to d9/d90/BallPlacementUsFreeKick_8cpp.html index 4ac230ab7..3fadb8242 100644 --- a/da/dab/BallPlacementUs_8cpp.html +++ b/d9/d90/BallPlacementUsFreeKick_8cpp.html @@ -5,7 +5,7 @@ -Roboteam AI: roboteam_ai/src/stp/plays/referee_specific/BallPlacementUs.cpp File Reference +Roboteam AI: roboteam_ai/src/stp/plays/referee_specific/BallPlacementUsFreeKick.cpp File Reference @@ -65,7 +65,7 @@
@@ -87,11 +87,12 @@
-
BallPlacementUs.cpp File Reference
+
BallPlacementUsFreeKick.cpp File Reference
addRobotCommand(std::optional< rtt::world::view::RobotView > robot, const rtt::RobotCommand &command) noexceptrtt::ai::control::ControlModulestatic
limitAngularVel(rtt::RobotCommand &command, std::optional< rtt::world::view::RobotView > robot)rtt::ai::control::ControlModuleprotectedstatic
limitRobotCommand(rtt::RobotCommand &command, std::optional< rtt::world::view::RobotView > robot)rtt::ai::control::ControlModuleprotectedstatic
addRobotCommand(std::optional< rtt::world::view::RobotView > robot, rtt::RobotCommand command) noexceptrtt::ai::control::ControlModulestatic
limitAngularVel(rtt::RobotCommand &command, rtt::world::view::RobotView robot)rtt::ai::control::ControlModuleprotectedstatic
limitRobotCommand(rtt::RobotCommand &command, rtt::world::view::RobotView robot)rtt::ai::control::ControlModuleprotectedstatic
limitVel(rtt::RobotCommand &command)rtt::ai::control::ControlModuleprotectedstatic
robotCommandsrtt::ai::control::ControlModuleinlineprotectedstatic
rotateRobotCommand(rtt::RobotCommand &command)rtt::ai::control::ControlModuleprotectedstatic
@@ -111,7 +112,7 @@ diff --git a/d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html b/d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html similarity index 89% rename from d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html rename to d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html index 21ff296b3..9d81ad335 100644 --- a/d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html +++ b/d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html @@ -5,7 +5,7 @@ -Roboteam AI: rtt::ai::stp::play::BallPlacementUs Class Reference +Roboteam AI: rtt::ai::stp::play::BallPlacementUsFreeKick Class Reference @@ -65,7 +65,7 @@ +List of all members
-
rtt::ai::stp::play::BallPlacementUs Class Reference
+
rtt::ai::stp::play::BallPlacementUsFreeKick Class Reference
-

The ball placement us play is executed when the ball placement us game state is selected. - More...

+

The ball placement us Free kick play is executed when the ball placement us game state is selected and the next ref command is Free Kick Us. + More...

-

#include <BallPlacementUs.h>

+

#include <BallPlacementUsFreeKick.h>

-Inheritance diagram for rtt::ai::stp::play::BallPlacementUs:
+Inheritance diagram for rtt::ai::stp::play::BallPlacementUsFreeKick:
- - -rtt::ai::stp::Play + + +rtt::ai::stp::Play
- - - - - - - - - - - - - - - + + + + + + + + + + + + + + + @@ -205,16 +205,16 @@

Public Member Functions

 BallPlacementUs ()
 Constructor that initializes roles with roles that are necessary for this play. More...
 
uint8_t score (const rtt::Field &field) noexcept override
 Calculates the score of this play to determine which play is best in this situation. More...
 
Dealer::FlagMap decideRoleFlags () const noexcept override
 Assigns robots to roles of this play. More...
 
void calculateInfoForRoles () noexcept override
 Calculates info for the roles. More...
 
const char * getName () const override
 Retrieves the name of the play. More...
 
 BallPlacementUsFreeKick ()
 Constructor that initializes roles with roles that are necessary for this play. More...
 
uint8_t score (const rtt::Field &field) noexcept override
 Calculates the score of this play to determine which play is best in this situation. More...
 
Dealer::FlagMap decideRoleFlags () const noexcept override
 Assigns robots to roles of this play. More...
 
void calculateInfoForRoles () noexcept override
 Calculates info for the roles. More...
 
const char * getName () const override
 Retrieves the name of the play. More...
 
void initialize () noexcept
 Initializes stpInfos struct, distributes roles, sets the previousRobotNum variable and calls onInitialize() More...
 
 

Detailed Description

-

The ball placement us play is executed when the ball placement us game state is selected.

+

The ball placement us Free kick play is executed when the ball placement us game state is selected and the next ref command is Free Kick Us.

Constructor & Destructor Documentation

- -

◆ BallPlacementUs()

+ +

◆ BallPlacementUsFreeKick()

- + @@ -227,8 +227,8 @@

Member Function Documentation

- -

◆ calculateInfoForRoles()

+ +

◆ calculateInfoForRoles()

@@ -237,7 +237,7 @@

rtt::ai::stp::play::BallPlacementUs::BallPlacementUs rtt::ai::stp::play::BallPlacementUsFreeKick::BallPlacementUsFreeKick ( )
- + @@ -256,8 +256,8 @@

-

◆ decideRoleFlags()

+ +

◆ decideRoleFlags()

@@ -266,7 +266,7 @@

void rtt::ai::stp::play::BallPlacementUs::calculateInfoForRoles void rtt::ai::stp::play::BallPlacementUsFreeKick::calculateInfoForRoles ( )
- + @@ -341,8 +341,8 @@

-

◆ getName()

+ +

◆ getName()

@@ -351,7 +351,7 @@

Dealer::FlagMap rtt::ai::stp::play::BallPlacementUs::decideRoleFlags Dealer::FlagMap rtt::ai::stp::play::BallPlacementUsFreeKick::decideRoleFlags ( ) const
- + @@ -536,8 +536,8 @@

-

◆ score()

+ +

◆ score()

@@ -546,7 +546,7 @@

const char * rtt::ai::stp::play::BallPlacementUs::getName const char * rtt::ai::stp::play::BallPlacementUsFreeKick::getName ( ) const
- + @@ -976,15 +976,15 @@

BallPlacementUs.h -
  • roboteam_ai/src/stp/plays/referee_specific/BallPlacementUs.cpp
  • +
  • roboteam_ai/include/roboteam_ai/stp/plays/referee_specific/BallPlacementUsFreeKick.h
  • +
  • roboteam_ai/src/stp/plays/referee_specific/BallPlacementUsFreeKick.cpp
  • diff --git a/d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.js b/d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.js new file mode 100644 index 000000000..f32200902 --- /dev/null +++ b/d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.js @@ -0,0 +1,32 @@ +var classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick = +[ + [ "BallPlacementUsFreeKick", "d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html#a2d72ea570bef6911a9d0f965e9079c6e", null ], + [ "calculateInfoForRoles", "d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html#acc2102a8987505e475eaa0169e65b27e", null ], + [ "decideRoleFlags", "d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html#aa7f5f499c9f87cb6cffe92942de46ee3", null ], + [ "distributeRoles", "d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html#a977b3063d4d26bee4be08d71c2ab7ccc", null ], + [ "getLastScore", "d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html#a7439c6149abbc461640c9ecdad2ba8d6", null ], + [ "getName", "d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html#a480baf512666763a3a83eebd94d66350", null ], + [ "getRoleStatuses", "d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html#ab5f09cfa9cd1ddb2a6990cb3c1b4d691", null ], + [ "initialize", "d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html#aa0405b45c69fc25464bec621fbcbe0cc", null ], + [ "isValidPlayToKeep", "d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html#a5be299fd1dab79b7f656ca37631d6ef6", null ], + [ "isValidPlayToStart", "d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html#a58560de6d2d6ca91e467deb1071aadbd", null ], + [ "reassignRobots", "d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html#aa20291b5cee34414dfb81aa0fd33713f", null ], + [ "refreshData", "d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html#ad7b71d56f8b8d8d62b7ec945847a2bec", null ], + [ "score", "d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html#ab0e26c9631e33b1d221eca8bdfa7ae71", null ], + [ "setWorld", "d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html#ab23ad33458ed975661cdc593bdf40968", null ], + [ "shouldEndPlay", "d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html#a8726a464fdb9e614c5cca8c7cd183155", null ], + [ "update", "d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html#a52fc8b6075367b48ae05021829ebcc8f", null ], + [ "updateField", "d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html#a805621fd748e3dfd6399ff69570f7e56", null ], + [ "field", "d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html#a1dc216d51c90eb0e6ddb0298e1ad034e", null ], + [ "keepPlayEvaluation", "d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html#a17fc7a716064d918aa29c072832c2ef8", null ], + [ "lastScore", "d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html#a81d204e55bab023d2937c1420abd04ad", null ], + [ "previousKeeperId", "d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html#a7164f241b13b1aa59b6e6b5c30a3094b", null ], + [ "previousMaxRobots", "d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html#a067c0013eb3e4d70eedd32a504dee10d", null ], + [ "previousRobotNum", "d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html#afc2268677ee563a2f0a7efa4acff465e", null ], + [ "roles", "d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html#a0329d2814e2651902bb05f23659e0084", null ], + [ "roleStatuses", "d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html#a8750ea230c633dcf6a0f09e28e4f47b1", null ], + [ "scoring", "d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html#a4598ba530d29d7f4f53bcec0c9845100", null ], + [ "startPlayEvaluation", "d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html#a859e8c8abae48115eab588736926368f", null ], + [ "stpInfos", "d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html#a08a78e2b6bb5fb4f75d0c9dc572d25fa", null ], + [ "world", "d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html#a0c13cbd482099fa139f3a5f08d964efe", null ] +]; \ No newline at end of file diff --git a/d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.png b/d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.png new file mode 100644 index 0000000000000000000000000000000000000000..62b660d8d670c3bc1bfa3ee55e6834c51abd7ae8 GIT binary patch literal 754 zcmeAS@N?(olHy`uVBq!ia0vp^AAvZ4gBeKv4^1urQW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;UyEPw? zmA%2@Lf)s=N=|ljc>{=T)eD@7q7SB5h-2tkCn_*Ll@#UTJq|m*;KTu5eGjP$21lU$cOJsfG65 z?DUy)!k_$nyXn`G@S1z?H>$|K5?EpR$hg6N)(?>f`&FkcIeoQLRdbuwMwO%2JZyLl zUzo)3&&9l9*%g_OZ?8!e6(3P9NIvma@Ou=mK6=b4mqVs4L4pLVc2-JlM(1G z<|AS1Y#nR;cm$%+6kOL>I%Sp+=K@8ThSbjE+xQz^+jpE_{BWh2)%VvACNGTJpL=^- zNF2lZ(ua1lxAS#0-kGQJt^Mi!zea`*v8fK(N0LvwoxOi#ul4^qsS{(ZCVvZa+;i6Q z(Nl}h`M*?d-}k$B=VtJ<%JP89Ey{imdR)#5y$Or-Puece-fi1`dS>4H@ba|q;Hp{b zrv-0o6`%c4YL~UU>!wcnCWV=A40n4V9Oi^X#kkg88pw z_kJjTcHmDB>%sPADteo$;7clL$wcd3D%F=?d}&;7e3AG7zgY5ejx(|*1F zo1gT*M0@>z(MMHJD`s3ZO%gxkWw}aV_9DaUPj#}Vi&oa{j@sLL+wSI}@Hmgxt=m@o z%f9rCU#EX{@y3lm=L`I<<|)vKzs->BZ_Tp9@4foJf(PG)>#aWIcQEdYfCX&t5zVDn cCjDca>T7&BW|I3xU;<_EboFyt=akR{0Go|#%m4rY literal 0 HcmV?d00001 diff --git a/da/d05/BallPlacementUsForceStart_8cpp.html b/da/d05/BallPlacementUsForceStart_8cpp.html new file mode 100644 index 000000000..ef57a8b30 --- /dev/null +++ b/da/d05/BallPlacementUsForceStart_8cpp.html @@ -0,0 +1,120 @@ + + + + + + + +Roboteam AI: roboteam_ai/src/stp/plays/referee_specific/BallPlacementUsForceStart.cpp File Reference + + + + + + + + + + + + + + + +
    +
    +

    uint8_t rtt::ai::stp::play::BallPlacementUs::score uint8_t rtt::ai::stp::play::BallPlacementUsFreeKick::score ( const rtt::Field &  field)
    + + + + + + +
    +
    Roboteam AI +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    BallPlacementUsForceStart.cpp File Reference
    +
    + +
    + + + + diff --git a/da/dc6/PlayEvaluator_8h.html b/da/dc6/PlayEvaluator_8h.html index 92340a6e9..3d88d4d1e 100644 --- a/da/dc6/PlayEvaluator_8h.html +++ b/da/dc6/PlayEvaluator_8h.html @@ -120,35 +120,36 @@ enum class  rtt::ai::stp::GlobalEvaluation {
      rtt::ai::stp::BallPlacementThemGameState = 0 , rtt::ai::stp::BallPlacementUsGameState +, rtt::ai::stp::BallPlacementUsDirectGameState , rtt::ai::stp::FreeKickThemGameState -, rtt::ai::stp::FreeKickUsGameState ,
    -  rtt::ai::stp::HaltGameState +  rtt::ai::stp::FreeKickUsGameState +, rtt::ai::stp::HaltGameState , rtt::ai::stp::TimeOutGameState , rtt::ai::stp::KickOffThemGameState -, rtt::ai::stp::KickOffThemPrepareGameState ,
    -  rtt::ai::stp::KickOffUsGameState +  rtt::ai::stp::KickOffThemPrepareGameState +, rtt::ai::stp::KickOffUsGameState , rtt::ai::stp::KickOffUsOrNormalGameState , rtt::ai::stp::KickOffUsPrepareGameState -, rtt::ai::stp::NormalOrFreeKickUsGameState ,
    -  rtt::ai::stp::NormalPlayGameState +  rtt::ai::stp::NormalOrFreeKickUsGameState +, rtt::ai::stp::NormalPlayGameState , rtt::ai::stp::PenaltyThemGameState , rtt::ai::stp::PenaltyThemPrepareGameState -, rtt::ai::stp::PenaltyUsGameState ,
    -  rtt::ai::stp::PenaltyUsPrepareGameState +  rtt::ai::stp::PenaltyUsGameState +, rtt::ai::stp::PenaltyUsPrepareGameState , rtt::ai::stp::StopGameState , rtt::ai::stp::BallOnOurSide -, rtt::ai::stp::BallOnTheirSide ,
    -  rtt::ai::stp::BallInOurDefenseAreaAndStill +  rtt::ai::stp::BallOnTheirSide +, rtt::ai::stp::BallInOurDefenseAreaAndStill , rtt::ai::stp::BallNotInOurDefenseAreaAndStill , rtt::ai::stp::WeHaveBall -, rtt::ai::stp::WeDoNotHaveBall ,
    -  rtt::ai::stp::TheyHaveBall +  rtt::ai::stp::WeDoNotHaveBall +, rtt::ai::stp::TheyHaveBall , rtt::ai::stp::TheyDoNotHaveBall
    } diff --git a/da/dc6/PlayEvaluator_8h.js b/da/dc6/PlayEvaluator_8h.js index 9911abffb..6b154e886 100644 --- a/da/dc6/PlayEvaluator_8h.js +++ b/da/dc6/PlayEvaluator_8h.js @@ -8,6 +8,7 @@ var PlayEvaluator_8h = [ "GlobalEvaluation", "da/dc6/PlayEvaluator_8h.html#a9b1a79ba58c1300d9f6f0e073f9d7db2", [ [ "BallPlacementThemGameState", "da/dc6/PlayEvaluator_8h.html#a9b1a79ba58c1300d9f6f0e073f9d7db2a775d0ce7887fa4de0aadf511dcd6fd71", null ], [ "BallPlacementUsGameState", "da/dc6/PlayEvaluator_8h.html#a9b1a79ba58c1300d9f6f0e073f9d7db2a195616208981cef4a486610feadfb6f6", null ], + [ "BallPlacementUsDirectGameState", "da/dc6/PlayEvaluator_8h.html#a9b1a79ba58c1300d9f6f0e073f9d7db2a85c18d9aa394e8aa1f12d62124b1d6dd", null ], [ "FreeKickThemGameState", "da/dc6/PlayEvaluator_8h.html#a9b1a79ba58c1300d9f6f0e073f9d7db2af5ef925cf3c281225810c9118fd382e0", null ], [ "FreeKickUsGameState", "da/dc6/PlayEvaluator_8h.html#a9b1a79ba58c1300d9f6f0e073f9d7db2aca71e05faa7b1711d1367178d9c4e11f", null ], [ "HaltGameState", "da/dc6/PlayEvaluator_8h.html#a9b1a79ba58c1300d9f6f0e073f9d7db2a77d4126c5a58e2c92ae78938de37c559", null ], diff --git a/da/dc6/PlayEvaluator_8h_source.html b/da/dc6/PlayEvaluator_8h_source.html index 06ada5fbc..4ac50ce7b 100644 --- a/da/dc6/PlayEvaluator_8h_source.html +++ b/da/dc6/PlayEvaluator_8h_source.html @@ -103,66 +103,67 @@
    16 enum class GlobalEvaluation {
    - - - - - - - - - - - - - - - - - - - - -
    41  WeHaveBall,
    - - - -
    45 };
    -
    46 
    - -
    51  public:
    -
    55  struct PlayScoring {
    -
    56  uint8_t evaluationScore;
    -
    57  double weight;
    -
    58  };
    -
    59 
    -
    66  static uint8_t getGlobalEvaluation(GlobalEvaluation evaluation, const world::World* world);
    -
    67 
    -
    71  static void clearGlobalScores();
    -
    72 
    -
    80  static bool checkEvaluation(GlobalEvaluation globalEvaluation, const rtt::world::World* world, uint8_t cutOff = control_constants::FUZZY_DEFAULT_CUTOFF) noexcept;
    -
    81 
    -
    87  static uint8_t calculateScore(std::vector<PlayScoring>& scoring);
    -
    88 
    -
    89  private:
    -
    90  static inline std::unordered_map<GlobalEvaluation, uint8_t> scoresGlobal{};
    -
    97  static uint8_t updateGlobalEvaluation(GlobalEvaluation& evaluation, const rtt::world::World* world);
    -
    98 };
    -
    99 
    -
    100 } // namespace rtt::ai::stp
    -
    101 
    -
    102 #endif // RTT_PLAYEVALUATOR_H
    + + + + + + + + + + + + + + + + + + + + + +
    42  WeHaveBall,
    + + + +
    46 };
    +
    47 
    + +
    52  public:
    +
    56  struct PlayScoring {
    +
    57  uint8_t evaluationScore;
    +
    58  double weight;
    +
    59  };
    +
    60 
    +
    67  static uint8_t getGlobalEvaluation(GlobalEvaluation evaluation, const world::World* world);
    +
    68 
    +
    72  static void clearGlobalScores();
    +
    73 
    +
    81  static bool checkEvaluation(GlobalEvaluation globalEvaluation, const rtt::world::World* world, uint8_t cutOff = control_constants::FUZZY_DEFAULT_CUTOFF) noexcept;
    +
    82 
    +
    88  static uint8_t calculateScore(std::vector<PlayScoring>& scoring);
    +
    89 
    +
    90  private:
    +
    91  static inline std::unordered_map<GlobalEvaluation, uint8_t> scoresGlobal{};
    +
    98  static uint8_t updateGlobalEvaluation(GlobalEvaluation& evaluation, const rtt::world::World* world);
    +
    99 };
    +
    100 
    +
    101 } // namespace rtt::ai::stp
    +
    102 
    +
    103 #endif // RTT_PLAYEVALUATOR_H
    -
    Class that defines the play evaluator. It evaluates each play possible and gives it a score.
    Definition: PlayEvaluator.h:50
    -
    static bool checkEvaluation(GlobalEvaluation globalEvaluation, const rtt::world::World *world, uint8_t cutOff=control_constants::FUZZY_DEFAULT_CUTOFF) noexcept
    Checks if FUZZY-TRUE score in uint8-t of global evaluation is above the TRUE threshold.
    Definition: PlayEvaluator.cpp:102
    -
    static uint8_t calculateScore(std::vector< PlayScoring > &scoring)
    Calculate a final weighted score given a vector of scores with their weights.
    Definition: PlayEvaluator.cpp:106
    -
    static std::unordered_map< GlobalEvaluation, uint8_t > scoresGlobal
    Definition: PlayEvaluator.h:90
    -
    static uint8_t updateGlobalEvaluation(GlobalEvaluation &evaluation, const rtt::world::World *world)
    Updates a given Global Evaluation, should only happen if this was not done in this tick yet.
    Definition: PlayEvaluator.cpp:40
    -
    double weight
    Definition: PlayEvaluator.h:57
    -
    static void clearGlobalScores()
    Clears the map of stored scores, to make sure new scores are calculated next tick.
    Definition: PlayEvaluator.cpp:100
    -
    uint8_t evaluationScore
    Definition: PlayEvaluator.h:56
    -
    static uint8_t getGlobalEvaluation(GlobalEvaluation evaluation, const world::World *world)
    Gets the score of a Global Evaluation, if it was not updated yet, update it before.
    Definition: PlayEvaluator.cpp:36
    -
    Structure for storing the scores for the plays.
    Definition: PlayEvaluator.h:55
    +
    Class that defines the play evaluator. It evaluates each play possible and gives it a score.
    Definition: PlayEvaluator.h:51
    +
    static bool checkEvaluation(GlobalEvaluation globalEvaluation, const rtt::world::World *world, uint8_t cutOff=control_constants::FUZZY_DEFAULT_CUTOFF) noexcept
    Checks if FUZZY-TRUE score in uint8-t of global evaluation is above the TRUE threshold.
    Definition: PlayEvaluator.cpp:105
    +
    static uint8_t calculateScore(std::vector< PlayScoring > &scoring)
    Calculate a final weighted score given a vector of scores with their weights.
    Definition: PlayEvaluator.cpp:109
    +
    static std::unordered_map< GlobalEvaluation, uint8_t > scoresGlobal
    Definition: PlayEvaluator.h:91
    +
    static uint8_t updateGlobalEvaluation(GlobalEvaluation &evaluation, const rtt::world::World *world)
    Updates a given Global Evaluation, should only happen if this was not done in this tick yet.
    Definition: PlayEvaluator.cpp:41
    +
    double weight
    Definition: PlayEvaluator.h:58
    +
    static void clearGlobalScores()
    Clears the map of stored scores, to make sure new scores are calculated next tick.
    Definition: PlayEvaluator.cpp:103
    +
    uint8_t evaluationScore
    Definition: PlayEvaluator.h:57
    +
    static uint8_t getGlobalEvaluation(GlobalEvaluation evaluation, const world::World *world)
    Gets the score of a Global Evaluation, if it was not updated yet, update it before.
    Definition: PlayEvaluator.cpp:37
    +
    Structure for storing the scores for the plays.
    Definition: PlayEvaluator.h:56
    Class that represents the world and history of the world.
    Definition: World.hpp:38
    constexpr double FUZZY_DEFAULT_CUTOFF
    Definition: ControlConstants.h:63
    Definition: ComputationManager.h:11
    @@ -181,6 +182,7 @@
    @ BallPlacementThemGameState
    Game States.
    + diff --git a/da/de3/classrtt_1_1STPManager.html b/da/de3/classrtt_1_1STPManager.html index 71a3350cb..98aef10bd 100644 --- a/da/de3/classrtt_1_1STPManager.html +++ b/da/de3/classrtt_1_1STPManager.html @@ -463,7 +463,8 @@

    plays.emplace_back(std::make_unique<plays::KeeperKickBall>());

    plays.emplace_back(std::make_unique<plays::DefensiveStopFormation>());
    plays.emplace_back(std::make_unique<plays::AggressiveStopFormation>());
    -
    plays.emplace_back(std::make_unique<plays::BallPlacementUs>());
    +
    plays.emplace_back(std::make_unique<plays::BallPlacementUsFreeKick>());
    +
    plays.emplace_back(std::make_unique<plays::BallPlacementUsForceStart>());
    plays.emplace_back(std::make_unique<plays::BallPlacementThem>());
    plays.emplace_back(std::make_unique<plays::PenaltyThemPrepare>());
    diff --git a/d9/dc2/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs-members.html b/db/d41/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick-members.html similarity index 85% rename from d9/dc2/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs-members.html rename to db/d41/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick-members.html index cf42af4f5..714631e9e 100644 --- a/d9/dc2/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs-members.html +++ b/db/d41/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick-members.html @@ -65,7 +65,7 @@
    @@ -85,19 +85,19 @@
    -
    rtt::ai::stp::play::BallPlacementUs Member List
    +
    rtt::ai::stp::play::BallPlacementUsFreeKick Member List
    -

    This is the complete list of members for rtt::ai::stp::play::BallPlacementUs, including all inherited members.

    +

    This is the complete list of members for rtt::ai::stp::play::BallPlacementUsFreeKick, including all inherited members.

    - - - + + + - + @@ -113,7 +113,7 @@ - + diff --git a/db/dc9/PlayEvaluator_8cpp.html b/db/dc9/PlayEvaluator_8cpp.html index c78cf1713..67b4d9283 100644 --- a/db/dc9/PlayEvaluator_8cpp.html +++ b/db/dc9/PlayEvaluator_8cpp.html @@ -92,6 +92,7 @@
    #include "stp/PlayEvaluator.h"
    #include <stp/evaluations/game_states/BallPlacementThemGameStateEvaluation.h>
    +#include <stp/evaluations/game_states/BallPlacementUsDirectGameStateEvaluation.h>
    #include <stp/evaluations/game_states/BallPlacementUsGameStateEvaluation.h>
    #include <stp/evaluations/game_states/FreeKickThemGameStateEvaluation.h>
    #include <stp/evaluations/game_states/FreeKickUsGameStateEvaluation.h>
    diff --git a/db/d3e/BallPlacementUs_8h.html b/db/ddc/BallPlacementUsFreeKick_8h.html similarity index 87% rename from db/d3e/BallPlacementUs_8h.html rename to db/ddc/BallPlacementUsFreeKick_8h.html index 721aafc3d..3bb088439 100644 --- a/db/d3e/BallPlacementUs_8h.html +++ b/db/ddc/BallPlacementUsFreeKick_8h.html @@ -5,7 +5,7 @@ -Roboteam AI: roboteam_ai/include/roboteam_ai/stp/plays/referee_specific/BallPlacementUs.h File Reference +Roboteam AI: roboteam_ai/include/roboteam_ai/stp/plays/referee_specific/BallPlacementUsFreeKick.h File Reference @@ -65,7 +65,7 @@
    @@ -88,17 +88,17 @@ Classes | Namespaces
    -
    BallPlacementUs.h File Reference
    +
    BallPlacementUsFreeKick.h File Reference
    BallPlacementUs()rtt::ai::stp::play::BallPlacementUs
    calculateInfoForRoles() noexcept overridertt::ai::stp::play::BallPlacementUsvirtual
    decideRoleFlags() const noexcept overridertt::ai::stp::play::BallPlacementUsvirtual
    BallPlacementUsFreeKick()rtt::ai::stp::play::BallPlacementUsFreeKick
    calculateInfoForRoles() noexcept overridertt::ai::stp::play::BallPlacementUsFreeKickvirtual
    decideRoleFlags() const noexcept overridertt::ai::stp::play::BallPlacementUsFreeKickvirtual
    distributeRoles() noexceptrtt::ai::stp::Playprivate
    fieldrtt::ai::stp::Playprotected
    getLastScore() constrtt::ai::stp::Play
    getName() const overridertt::ai::stp::play::BallPlacementUsvirtual
    getName() const overridertt::ai::stp::play::BallPlacementUsFreeKickvirtual
    getRoleStatuses() constrtt::ai::stp::Play
    initialize() noexceptrtt::ai::stp::Play
    isValidPlayToKeep() noexceptrtt::ai::stp::Play
    refreshData() noexceptrtt::ai::stp::Playprivate
    rolesrtt::ai::stp::Playprotected
    roleStatusesrtt::ai::stp::Playprotected
    score(const rtt::Field &field) noexcept overridertt::ai::stp::play::BallPlacementUsvirtual
    score(const rtt::Field &field) noexcept overridertt::ai::stp::play::BallPlacementUsFreeKickvirtual
    scoringrtt::ai::stp::Playprotected
    setWorld(world::World *world) noexceptrtt::ai::stp::Play
    shouldEndPlay() noexceptrtt::ai::stp::Playprotectedvirtual
    - - + +

    Classes

    class  rtt::ai::stp::play::BallPlacementUs
     The ball placement us play is executed when the ball placement us game state is selected. More...
    class  rtt::ai::stp::play::BallPlacementUsFreeKick
     The ball placement us Free kick play is executed when the ball placement us game state is selected and the next ref command is Free Kick Us. More...
     
    + + + diff --git a/dc/d81/namespacertt_1_1ai_1_1stp_1_1evaluation.js b/dc/d81/namespacertt_1_1ai_1_1stp_1_1evaluation.js index bd8dbcd8b..a3f0ee103 100644 --- a/dc/d81/namespacertt_1_1ai_1_1stp_1_1evaluation.js +++ b/dc/d81/namespacertt_1_1ai_1_1stp_1_1evaluation.js @@ -2,6 +2,7 @@ var namespacertt_1_1ai_1_1stp_1_1evaluation = [ [ "BaseEvaluation", "d1/d1a/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BaseEvaluation.html", "d1/d1a/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BaseEvaluation" ], [ "BallPlacementThemGameStateEvaluation", "dc/d07/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementThemGameStateEvaluation.html", "dc/d07/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementThemGameStateEvaluation" ], + [ "BallPlacementUsDirectGameStateEvaluation", "de/dbf/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementUsDirectGameStateEvaluation.html", "de/dbf/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementUsDirectGameStateEvaluation" ], [ "BallPlacementUsGameStateEvaluation", "d7/db7/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementUsGameStateEvaluation.html", "d7/db7/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementUsGameStateEvaluation" ], [ "FreeKickThemGameStateEvaluation", "d5/df9/classrtt_1_1ai_1_1stp_1_1evaluation_1_1FreeKickThemGameStateEvaluation.html", "d5/df9/classrtt_1_1ai_1_1stp_1_1evaluation_1_1FreeKickThemGameStateEvaluation" ], [ "FreeKickUsGameStateEvaluation", "d6/dca/classrtt_1_1ai_1_1stp_1_1evaluation_1_1FreeKickUsGameStateEvaluation.html", "d6/dca/classrtt_1_1ai_1_1stp_1_1evaluation_1_1FreeKickUsGameStateEvaluation" ], diff --git a/dc/d82/TestFixture_8h.html b/dc/d82/TestFixture_8h.html index 60cf0c61a..6066fe7a4 100644 --- a/dc/d82/TestFixture_8h.html +++ b/dc/d82/TestFixture_8h.html @@ -108,9 +108,12 @@ #include "stp/plays/offensive/AttackingPass.h"
    #include "stp/plays/referee_specific/AggressiveStopFormation.h"
    #include "stp/plays/referee_specific/BallPlacementThem.h"
    -#include "stp/plays/referee_specific/BallPlacementUs.h"
    +#include "stp/plays/referee_specific/BallPlacementUsForceStart.h"
    +#include "stp/plays/referee_specific/BallPlacementUsFreeKick.h"
    #include "stp/plays/referee_specific/DefensiveStopFormation.h"
    #include "stp/plays/referee_specific/FreeKickThem.h"
    +#include "stp/plays/referee_specific/FreeKickUsAtGoal.h"
    +#include "stp/plays/referee_specific/FreeKickUsPass.h"
    #include "stp/plays/referee_specific/Halt.h"
    #include "stp/plays/referee_specific/KickOffThem.h"
    #include "stp/plays/referee_specific/KickOffThemPrepare.h"
    diff --git a/dc/d82/TestFixture_8h_source.html b/dc/d82/TestFixture_8h_source.html index 43be54b64..47dc8dfa4 100644 --- a/dc/d82/TestFixture_8h_source.html +++ b/dc/d82/TestFixture_8h_source.html @@ -117,104 +117,115 @@ - - - - - - - - - - - - -
    45 
    -
    46 class RTT_AI_Tests : public ::testing::Test {
    -
    47  protected:
    - -
    49 
    -
    50  // Vector of all plays
    -
    51  std::vector<std::unique_ptr<rtt::ai::stp::Play>> plays;
    + + + + + + + + + + + + + + + +
    48 
    +
    49 class RTT_AI_Tests : public ::testing::Test {
    +
    50  protected:
    +
    52 
    -
    54  void SetUp() override {
    -
    55  // Defaulting to us being left and yellow
    -
    56  // Set these fields just like they are set in roboteam_ai.cpp
    - - - -
    60  rtt::GameSettings::setRobotHubMode(rtt::net::RobotHubMode::SIMULATOR);
    -
    61 
    -
    62  // Set other variables to their default values
    - - - -
    66 
    -
    67  // Make sure all plays exist as new
    - -
    69  }
    -
    70 
    -
    79  static rtt::world::World* generateWorld(int amountYellow = 11, int amountBlue = 11, bool withBall = true, std::optional<proto::SSL_GeometryFieldSize> field = std::nullopt) {
    -
    80  if (!field) field = testhelpers::FieldHelper::generateField();
    -
    81  auto protoWorld = testhelpers::WorldHelper::getWorldMsg(amountYellow, amountBlue, withBall, field.value());
    -
    82  auto const& [_, world] = rtt::world::World::instance();
    -
    83  world->updateWorld(protoWorld);
    -
    84  world->updateField(field.value());
    -
    85  return world;
    -
    86  }
    -
    87 
    -
    88  private:
    -
    92  void constructPlays() {
    -
    93  plays.clear();
    -
    94 
    -
    96  // plays.emplace_back(std::make_unique<rtt::ai::stp::TestPlay>());
    +
    53  // Vector of all plays
    +
    54  std::vector<std::unique_ptr<rtt::ai::stp::Play>> plays;
    +
    55 
    +
    57  void SetUp() override {
    +
    58  // Defaulting to us being left and yellow
    +
    59  // Set these fields just like they are set in roboteam_ai.cpp
    + + + +
    63  rtt::GameSettings::setRobotHubMode(rtt::net::RobotHubMode::SIMULATOR);
    +
    64 
    +
    65  // Set other variables to their default values
    + + + +
    69 
    +
    70  // Make sure all plays exist as new
    + +
    72  }
    +
    73 
    +
    82  static rtt::world::World* generateWorld(int amountYellow = 11, int amountBlue = 11, bool withBall = true, std::optional<proto::SSL_GeometryFieldSize> field = std::nullopt) {
    +
    83  if (!field) field = testhelpers::FieldHelper::generateField();
    +
    84  auto protoWorld = testhelpers::WorldHelper::getWorldMsg(amountYellow, amountBlue, withBall, field.value());
    +
    85  auto const& [_, world] = rtt::world::World::instance();
    +
    86  world->updateWorld(protoWorld);
    +
    87  world->updateField(field.value());
    +
    88  return world;
    +
    89  }
    +
    90 
    +
    91  private:
    +
    95  void constructPlays() {
    +
    96  plays.clear();
    97 
    -
    98  plays.emplace_back(std::make_unique<rtt::ai::stp::play::AttackingPass>());
    -
    99  plays.emplace_back(std::make_unique<rtt::ai::stp::play::Attack>());
    -
    100  plays.emplace_back(std::make_unique<rtt::ai::stp::play::Halt>());
    -
    101  plays.emplace_back(std::make_unique<rtt::ai::stp::play::DefendShot>());
    -
    102  plays.emplace_back(std::make_unique<rtt::ai::stp::play::DefendPass>());
    -
    103  plays.emplace_back(std::make_unique<rtt::ai::stp::play::KeeperKickBall>());
    -
    104  plays.emplace_back(std::make_unique<rtt::ai::stp::play::DefensiveStopFormation>());
    -
    105  plays.emplace_back(std::make_unique<rtt::ai::stp::play::AggressiveStopFormation>());
    -
    106  plays.emplace_back(std::make_unique<rtt::ai::stp::play::BallPlacementUs>());
    -
    107  plays.emplace_back(std::make_unique<rtt::ai::stp::play::BallPlacementThem>());
    -
    108  // plays.emplace_back(std::make_unique<rtt::ai::stp::play::TimeOut>());
    -
    109  // plays.emplace_back(std::make_unique<rtt::ai::stp::play::PenaltyThemPrepare>());
    -
    110  // plays.emplace_back(std::make_unique<rtt::ai::stp::play::PenaltyUsPrepare>());
    -
    111  // plays.emplace_back(std::make_unique<rtt::ai::stp::play::PenaltyThem>());
    -
    112  // plays.emplace_back(std::make_unique<rtt::ai::stp::play::PenaltyUs>());
    -
    113  plays.emplace_back(std::make_unique<rtt::ai::stp::play::KickOffUsPrepare>());
    -
    114  plays.emplace_back(std::make_unique<rtt::ai::stp::play::KickOffThemPrepare>());
    -
    115  // plays.emplace_back(std::make_unique<rtt::ai::stp::play::FreeKickThem>());
    -
    116  plays.emplace_back(std::make_unique<rtt::ai::stp::play::KickOffUs>());
    -
    117  plays.emplace_back(std::make_unique<rtt::ai::stp::play::KickOffThem>());
    -
    118  // plays.emplace_back(std::make_unique<rtt::ai::stp::play::GetBallPossession>());
    -
    119  // plays.emplace_back(std::make_unique<rtt::ai::stp::play::GetBallRisky>());
    -
    120  // plays.emplace_back(std::make_unique<rtt::ai::stp::play::ReflectKick>());
    -
    121  // plays.emplace_back(std::make_unique<rtt::ai::stp::play::GenericPass>());
    -
    122 
    -
    123  // Set the pointer to world for all plays
    -
    124  {
    -
    125  auto const& [_, world] = rtt::world::World::instance();
    -
    126  for (auto& play : plays) {
    -
    127  play->setWorld(world);
    -
    128  }
    -
    129  }
    -
    130  }
    -
    131 };
    -
    132 #endif // RTT_TESTFIXTURE_H
    +
    99  // plays.emplace_back(std::make_unique<rtt::ai::stp::TestPlay>());
    +
    100 
    +
    101  plays.emplace_back(std::make_unique<rtt::ai::stp::play::AttackingPass>());
    +
    102  plays.emplace_back(std::make_unique<rtt::ai::stp::play::Attack>());
    +
    103  plays.emplace_back(std::make_unique<rtt::ai::stp::play::Halt>());
    +
    104  plays.emplace_back(std::make_unique<rtt::ai::stp::play::DefendShot>());
    +
    105  plays.emplace_back(std::make_unique<rtt::ai::stp::play::DefendPass>());
    +
    106  plays.emplace_back(std::make_unique<rtt::ai::stp::play::KeeperKickBall>());
    +
    107  plays.emplace_back(std::make_unique<rtt::ai::stp::play::DefensiveStopFormation>());
    +
    108  plays.emplace_back(std::make_unique<rtt::ai::stp::play::AggressiveStopFormation>());
    +
    109  plays.emplace_back(std::make_unique<rtt::ai::stp::play::BallPlacementUsFreeKick>());
    +
    110  plays.emplace_back(std::make_unique<rtt::ai::stp::play::BallPlacementUsForceStart>());
    +
    111  plays.emplace_back(std::make_unique<rtt::ai::stp::play::BallPlacementThem>());
    +
    112  // plays.emplace_back(std::make_unique<rtt::ai::stp::play::TimeOut>());
    +
    113  plays.emplace_back(std::make_unique<rtt::ai::stp::play::PenaltyThemPrepare>());
    +
    114  plays.emplace_back(std::make_unique<rtt::ai::stp::play::PenaltyUsPrepare>());
    +
    115  plays.emplace_back(std::make_unique<rtt::ai::stp::play::PenaltyThem>());
    +
    116  plays.emplace_back(std::make_unique<rtt::ai::stp::play::PenaltyUs>());
    +
    117  plays.emplace_back(std::make_unique<rtt::ai::stp::play::KickOffUsPrepare>());
    +
    118  plays.emplace_back(std::make_unique<rtt::ai::stp::play::KickOffThemPrepare>());
    +
    119  plays.emplace_back(std::make_unique<rtt::ai::stp::play::FreeKickThem>());
    +
    120  plays.emplace_back(std::make_unique<rtt::ai::stp::play::FreeKickUsAtGoal>());
    +
    121  plays.emplace_back(std::make_unique<rtt::ai::stp::play::FreeKickUsPass>());
    +
    122  plays.emplace_back(std::make_unique<rtt::ai::stp::play::KickOffUs>());
    +
    123  plays.emplace_back(std::make_unique<rtt::ai::stp::play::KickOffUsPrepare>());
    +
    124  plays.emplace_back(std::make_unique<rtt::ai::stp::play::KickOffThem>());
    +
    125  plays.emplace_back(std::make_unique<rtt::ai::stp::play::KickOffThemPrepare>());
    +
    126  // plays.emplace_back(std::make_unique<rtt::ai::stp::play::GetBallPossession>());
    +
    127  // plays.emplace_back(std::make_unique<rtt::ai::stp::play::GetBallRisky>());
    +
    128  // plays.emplace_back(std::make_unique<rtt::ai::stp::play::ReflectKick>());
    +
    129  // plays.emplace_back(std::make_unique<rtt::ai::stp::play::GenericPass>());
    +
    130 
    +
    131  // Set the pointer to world for all plays
    +
    132  {
    +
    133  auto const& [_, world] = rtt::world::World::instance();
    +
    134  for (auto& play : plays) {
    +
    135  play->setWorld(world);
    +
    136  }
    +
    137  }
    +
    138  }
    +
    139 };
    +
    140 #endif // RTT_TESTFIXTURE_H
    - + + + + @@ -229,12 +240,12 @@ -
    Definition: TestFixture.h:46
    -
    void constructPlays()
    Definition: TestFixture.h:92
    -
    static rtt::world::World * generateWorld(int amountYellow=11, int amountBlue=11, bool withBall=true, std::optional< proto::SSL_GeometryFieldSize > field=std::nullopt)
    Definition: TestFixture.h:79
    -
    std::vector< std::unique_ptr< rtt::ai::stp::Play > > plays
    Definition: TestFixture.h:51
    -
    rtt::world::World * world
    Definition: TestFixture.h:48
    -
    void SetUp() override
    This function is called before each test is run, ensuring the default environment for each test.
    Definition: TestFixture.h:54
    +
    Definition: TestFixture.h:49
    +
    void constructPlays()
    Definition: TestFixture.h:95
    +
    static rtt::world::World * generateWorld(int amountYellow=11, int amountBlue=11, bool withBall=true, std::optional< proto::SSL_GeometryFieldSize > field=std::nullopt)
    Definition: TestFixture.h:82
    +
    std::vector< std::unique_ptr< rtt::ai::stp::Play > > plays
    Definition: TestFixture.h:54
    +
    rtt::world::World * world
    Definition: TestFixture.h:51
    +
    void SetUp() override
    This function is called before each test is run, ensuring the default environment for each test.
    Definition: TestFixture.h:57
    static void setLeft(bool left)
    Sets the side we are playing on.
    Definition: Settings.cpp:40
    static bool setYellow(bool yellow)
    Sets the given team.
    Definition: Settings.cpp:28
    static void setPrimaryAI(bool value)
    Sets the ID of this AI.
    Definition: Settings.cpp:24
    diff --git a/dc/d84/GoToPos_8h_source.html b/dc/d84/GoToPos_8h_source.html index ba7ba409d..0ba2e4251 100644 --- a/dc/d84/GoToPos_8h_source.html +++ b/dc/d84/GoToPos_8h_source.html @@ -109,7 +109,7 @@
    Base skill class, inherit from it for making your own skill.
    Definition: Skill.h:18
    Class that defines the go to position skill. This skill is used when the robot should move to a given...
    Definition: GoToPos.h:14
    -
    const char * getName() override
    Gets the skill name.
    Definition: GoToPos.cpp:76
    +
    const char * getName() override
    Gets the skill name.
    Definition: GoToPos.cpp:65
    Status onUpdate(StpInfo const &info) noexcept override
    Definition: GoToPos.cpp:13
    Definition: Chip.h:11
    Status
    The status that a skill/tactic can return.
    Definition: StpInfoEnums.h:34
    diff --git a/dc/d8f/namespacertt.html b/dc/d8f/namespacertt.html index 897d7e098..f90b2de38 100644 --- a/dc/d8f/namespacertt.html +++ b/dc/d8f/namespacertt.html @@ -147,6 +147,9 @@   PENALTY_US = 20 , PENALTY_THEM = 21 , BALL_PLACEMENT_US_DIRECT = 22 +, DIRECT_FREE_US_STOP = 23 +,
    +  DIRECT_FREE_THEM_STOP = 24 , UNDEFINED = -1
    } @@ -239,6 +242,8 @@

    PENALTY_US 

    + +

    @@ -117,7 +117,7 @@ diff --git a/db/d3e/BallPlacementUs_8h_source.html b/db/ddc/BallPlacementUsFreeKick_8h_source.html similarity index 62% rename from db/d3e/BallPlacementUs_8h_source.html rename to db/ddc/BallPlacementUsFreeKick_8h_source.html index db335b4e2..3e7f5b3ba 100644 --- a/db/d3e/BallPlacementUs_8h_source.html +++ b/db/ddc/BallPlacementUsFreeKick_8h_source.html @@ -5,7 +5,7 @@ -Roboteam AI: roboteam_ai/include/roboteam_ai/stp/plays/referee_specific/BallPlacementUs.h Source File +Roboteam AI: roboteam_ai/include/roboteam_ai/stp/plays/referee_specific/BallPlacementUsFreeKick.h Source File @@ -65,7 +65,7 @@
    @@ -85,48 +85,48 @@
    -
    BallPlacementUs.h
    +
    BallPlacementUsFreeKick.h
    -Go to the documentation of this file.
    1 #ifndef RTT_BALLPLACEMENTUS_H
    -
    2 #define RTT_BALLPLACEMENTUS_H
    +Go to the documentation of this file.
    1 #ifndef RTT_BallPlacementUsFreeKick_H
    +
    2 #define RTT_BallPlacementUsFreeKick_H
    3 
    4 #include "stp/Play.hpp"
    5 
    6 namespace rtt::ai::stp::play {
    7 
    -
    11 class BallPlacementUs : public Play {
    +
    11 class BallPlacementUsFreeKick : public Play {
    12  public:
    - +
    17 
    -
    23  uint8_t score(const rtt::Field& field) noexcept override;
    +
    23  uint8_t score(const rtt::Field& field) noexcept override;
    24 
    -
    29  Dealer::FlagMap decideRoleFlags() const noexcept override;
    +
    29  Dealer::FlagMap decideRoleFlags() const noexcept override;
    30 
    -
    34  void calculateInfoForRoles() noexcept override;
    +
    34  void calculateInfoForRoles() noexcept override;
    35 
    -
    40  const char* getName() const override;
    +
    40  const char* getName() const override;
    41 };
    42 } // namespace rtt::ai::stp::play
    43 
    -
    44 #endif // RTT_BALLPLACEMENTUS_H
    +
    44 #endif // RTT_BallPlacementUsFreeKick_H
    std::map< std::string, RoleInfo > FlagMap
    Definition: Dealer.h:71
    Play class that's used in the STP model on update traverses every Role, and updates it.
    Definition: Play.hpp:27
    rtt::Field field
    Definition: Play.hpp:127
    -
    The ball placement us play is executed when the ball placement us game state is selected.
    Definition: BallPlacementUs.h:11
    -
    void calculateInfoForRoles() noexcept override
    Calculates info for the roles.
    Definition: BallPlacementUs.cpp:58
    -
    BallPlacementUs()
    Constructor that initializes roles with roles that are necessary for this play.
    Definition: BallPlacementUs.cpp:13
    -
    Dealer::FlagMap decideRoleFlags() const noexcept override
    Assigns robots to roles of this play.
    Definition: BallPlacementUs.cpp:37
    -
    const char * getName() const override
    Retrieves the name of the play.
    Definition: BallPlacementUs.cpp:88
    -
    uint8_t score(const rtt::Field &field) noexcept override
    Calculates the score of this play to determine which play is best in this situation.
    Definition: BallPlacementUs.cpp:32
    +
    The ball placement us Free kick play is executed when the ball placement us game state is selected an...
    Definition: BallPlacementUsFreeKick.h:11
    +
    BallPlacementUsFreeKick()
    Constructor that initializes roles with roles that are necessary for this play.
    Definition: BallPlacementUsFreeKick.cpp:14
    +
    const char * getName() const override
    Retrieves the name of the play.
    Definition: BallPlacementUsFreeKick.cpp:98
    +
    Dealer::FlagMap decideRoleFlags() const noexcept override
    Assigns robots to roles of this play.
    Definition: BallPlacementUsFreeKick.cpp:46
    +
    uint8_t score(const rtt::Field &field) noexcept override
    Calculates the score of this play to determine which play is best in this situation.
    Definition: BallPlacementUsFreeKick.cpp:41
    +
    void calculateInfoForRoles() noexcept override
    Calculates info for the roles.
    Definition: BallPlacementUsFreeKick.cpp:67
    Definition: DefendPass.h:10
    diff --git a/dc/d52/classrtt_1_1ai_1_1StrategyManager.html b/dc/d52/classrtt_1_1ai_1_1StrategyManager.html index cf13e7816..4147f6e3d 100644 --- a/dc/d52/classrtt_1_1ai_1_1StrategyManager.html +++ b/dc/d52/classrtt_1_1ai_1_1StrategyManager.html @@ -327,6 +327,8 @@

    GameState(RefCommand::BALL_PLACEMENT_THEM, Constants::RULESET_STOP()), + + @@ -354,6 +356,7 @@

    @ PREPARE_KICKOFF_THEM
    + @@ -363,6 +366,7 @@

    @ PENALTY_US
    +

    Vector containing all possible game states.

    diff --git a/dc/d81/namespacertt_1_1ai_1_1stp_1_1evaluation.html b/dc/d81/namespacertt_1_1ai_1_1stp_1_1evaluation.html index 5a053154a..a46ab26cb 100644 --- a/dc/d81/namespacertt_1_1ai_1_1stp_1_1evaluation.html +++ b/dc/d81/namespacertt_1_1ai_1_1stp_1_1evaluation.html @@ -102,6 +102,9 @@

    class  BallPlacementThemGameStateEvaluation
     Class that evaluates the ball placement them game state. More...
     
    class  BallPlacementUsDirectGameStateEvaluation
     Class that evaluates the ball placement us game state when the next command is direct free kick. More...
     
    class  BallPlacementUsGameStateEvaluation
     Class that evaluates the ball placement us game state. More...
     
    PENALTY_THEM 
    BALL_PLACEMENT_US_DIRECT 
    DIRECT_FREE_US_STOP 
    DIRECT_FREE_THEM_STOP 
    UNDEFINED 
    diff --git a/dc/d8f/namespacertt.js b/dc/d8f/namespacertt.js index 22940ffc2..a26fb2ef7 100644 --- a/dc/d8f/namespacertt.js +++ b/dc/d8f/namespacertt.js @@ -28,6 +28,8 @@ var namespacertt = [ "PENALTY_US", "dc/d8f/namespacertt.html#ac458fd2464c54331a04fc2fd54d82843ac8e4285c18e34175148b25b8d4f00e1a", null ], [ "PENALTY_THEM", "dc/d8f/namespacertt.html#ac458fd2464c54331a04fc2fd54d82843af97cec8038d98ef4a331a5e3ba53a429", null ], [ "BALL_PLACEMENT_US_DIRECT", "dc/d8f/namespacertt.html#ac458fd2464c54331a04fc2fd54d82843adc054ff36312758291b2f2f24ea69166", null ], + [ "DIRECT_FREE_US_STOP", "dc/d8f/namespacertt.html#ac458fd2464c54331a04fc2fd54d82843aa0e17303d5ddfc03629d114713d8fa7d", null ], + [ "DIRECT_FREE_THEM_STOP", "dc/d8f/namespacertt.html#ac458fd2464c54331a04fc2fd54d82843ae4a42a36109c1c3e473ec1ed275f2809", null ], [ "UNDEFINED", "dc/d8f/namespacertt.html#ac458fd2464c54331a04fc2fd54d82843a0db45d2a4141101bdfe48e3314cfbca3", null ] ] ], [ "createTestField", "dc/d8f/namespacertt.html#a0d98d219a6e2900e4ec939378b987a81", null ], diff --git a/dc/ddd/FreeKickUsPass_8h_source.html b/dc/ddd/FreeKickUsPass_8h_source.html index b64ccc883..9210e5db4 100644 --- a/dc/ddd/FreeKickUsPass_8h_source.html +++ b/dc/ddd/FreeKickUsPass_8h_source.html @@ -131,12 +131,12 @@
    The free kick us pass play is executed when we want to pass and the free kick us game state is select...
    Definition: FreeKickUsPass.h:17
    PassInfo passInfo
    Definition: FreeKickUsPass.h:61
    bool ballKicked()
    Return true if passer is done with KickAtPos tactic.
    Definition: FreeKickUsPass.cpp:102
    -
    const char * getName() const override
    Retrieves the name of the play.
    Definition: FreeKickUsPass.cpp:126
    +
    const char * getName() const override
    Retrieves the name of the play.
    Definition: FreeKickUsPass.cpp:125
    FreeKickUsPass()
    Constructor that initializes roles with roles that are necessary for this play.
    Definition: FreeKickUsPass.cpp:17
    void calculateInfoForRoles() noexcept override
    Calculates info for the roles.
    Definition: FreeKickUsPass.cpp:71
    uint8_t score(const rtt::Field &field) noexcept override
    Calculate how beneficial we expect this play to be.
    Definition: FreeKickUsPass.cpp:45
    Dealer::FlagMap decideRoleFlags() const noexcept override
    Assigns robots to roles of this play.
    Definition: FreeKickUsPass.cpp:53
    -
    bool shouldEndPlay() noexcept override
    Check if play should end. True if pass arrived, if the ball is not moving anymore after pass,...
    Definition: FreeKickUsPass.cpp:109
    +
    bool shouldEndPlay() noexcept override
    Check if play should end. True if pass arrived, if the ball is not moving anymore after pass,...
    Definition: FreeKickUsPass.cpp:108
    Definition: DefendPass.h:10
    Struct to hold relevant information for passing.
    Definition: PassComputations.h:22
    diff --git a/dd/d16/classrtt_1_1ai_1_1control_1_1ControlModule.html b/dd/d16/classrtt_1_1ai_1_1control_1_1ControlModule.html index c8a054ae4..8f5dd8336 100644 --- a/dd/d16/classrtt_1_1ai_1_1control_1_1ControlModule.html +++ b/dd/d16/classrtt_1_1ai_1_1control_1_1ControlModule.html @@ -101,9 +101,9 @@ - - - + + + @@ -113,15 +113,15 @@

    Static Public Member Functions

    static void addRobotCommand (std::optional< rtt::world::view::RobotView > robot, const rtt::RobotCommand &command) noexcept
     Limits the current robot command and adds it to the list of commands to be sent. More...
     
    static void addRobotCommand (std::optional< rtt::world::view::RobotView > robot, rtt::RobotCommand command) noexcept
     Limits the current robot command and adds it to the list of commands to be sent. More...
     
    static void sendAllCommands ()
     Sends all commands to robothub. More...
     
    - - - + + + - - - + + + @@ -137,8 +137,8 @@

    Control Module as seen in the system architecture. Its job: Receive RobotCommands from Skills, check these and limit and/or change things wherever necessary. For now, it limits the velocity and acceleration that a Skill sends so the robot doesn't do a backflip. And it checks if the command that was sent makes sense (e.g., no kicking and chipping at the same time.

    Author
    Jaro Kuiken

    Member Function Documentation

    - -

    ◆ addRobotCommand()

    + +

    ◆ addRobotCommand()

    @@ -155,7 +155,7 @@

    - + @@ -182,8 +182,8 @@

    -

    ◆ limitAngularVel()

    + +

    ◆ limitAngularVel()

    @@ -200,7 +200,7 @@

    - + @@ -227,8 +227,8 @@

    -

    ◆ limitRobotCommand()

    + +

    ◆ limitRobotCommand()

    @@ -245,7 +245,7 @@

    - + diff --git a/dd/d16/classrtt_1_1ai_1_1control_1_1ControlModule.js b/dd/d16/classrtt_1_1ai_1_1control_1_1ControlModule.js index 0d43ef205..cd054ec7b 100644 --- a/dd/d16/classrtt_1_1ai_1_1control_1_1ControlModule.js +++ b/dd/d16/classrtt_1_1ai_1_1control_1_1ControlModule.js @@ -1,8 +1,8 @@ var classrtt_1_1ai_1_1control_1_1ControlModule = [ - [ "addRobotCommand", "dd/d16/classrtt_1_1ai_1_1control_1_1ControlModule.html#a62d14f97dea3b56e96cfc8117b47c589", null ], - [ "limitAngularVel", "dd/d16/classrtt_1_1ai_1_1control_1_1ControlModule.html#a617266c078a647731d7dcd166b84f541", null ], - [ "limitRobotCommand", "dd/d16/classrtt_1_1ai_1_1control_1_1ControlModule.html#a9705f8be2e44fa106a911b2e07510114", null ], + [ "addRobotCommand", "dd/d16/classrtt_1_1ai_1_1control_1_1ControlModule.html#a15c26394190bfe2514e7200f8afe2856", null ], + [ "limitAngularVel", "dd/d16/classrtt_1_1ai_1_1control_1_1ControlModule.html#a83ed3d4414ee987f51f7264f1b086ef8", null ], + [ "limitRobotCommand", "dd/d16/classrtt_1_1ai_1_1control_1_1ControlModule.html#a8711bcf5096ff5f7e093a114976d35f4", null ], [ "limitVel", "dd/d16/classrtt_1_1ai_1_1control_1_1ControlModule.html#abb4d047769239c8684b254bc7224d93d", null ], [ "rotateRobotCommand", "dd/d16/classrtt_1_1ai_1_1control_1_1ControlModule.html#a7dbb8c2e2347fef7089cf563ae2162a6", null ], [ "sendAllCommands", "dd/d16/classrtt_1_1ai_1_1control_1_1ControlModule.html#a0fadb136765f78b16de7198756c104bc", null ], diff --git a/dd/d23/STPManager_8h_source.html b/dd/d23/STPManager_8h_source.html index 5348e7d80..5051bae5e 100644 --- a/dd/d23/STPManager_8h_source.html +++ b/dd/d23/STPManager_8h_source.html @@ -126,17 +126,17 @@
    Class that describes the STPManager. The STPManager manages the overall strategy of the robots: the p...
    Definition: STPManager.h:12
    STPManager & operator=(STPManager const &)=delete
    delete copy assignment operator
    -
    void start(std::atomic_flag &exitApplication)
    Starts the AI with a synchronized boolean to ensure that AI exits correctly.
    Definition: STPManager.cpp:81
    +
    void start(std::atomic_flag &exitApplication)
    Starts the AI with a synchronized boolean to ensure that AI exits correctly.
    Definition: STPManager.cpp:83
    static ai::stp::Play * currentPlay
    Definition: STPManager.h:33
    -
    STPManager(std::shared_ptr< ai::gui::net::InterfaceGateway > interfaceGateway)
    Constructs the STPManager with an interface.
    Definition: STPManager.cpp:205
    +
    STPManager(std::shared_ptr< ai::gui::net::InterfaceGateway > interfaceGateway)
    Constructs the STPManager with an interface.
    Definition: STPManager.cpp:207
    std::vector< std::unique_ptr< rtt::ai::stp::Play > > PlaysVec
    Definition: STPManager.h:14
    int tickCounter
    Definition: STPManager.h:28
    -
    void decidePlay(world::World *_world, bool ignoreWorldAge=false)
    Function that decides whether to change plays given a world and field.
    Definition: STPManager.cpp:179
    +
    void decidePlay(world::World *_world, bool ignoreWorldAge=false)
    Function that decides whether to change plays given a world and field.
    Definition: STPManager.cpp:181
    bool robotsInitialized
    Definition: STPManager.h:30
    STPManager(STPManager const &)=delete
    Delete copy constructor of the STPManager class.
    bool fieldInitialized
    Definition: STPManager.h:29
    static const PlaysVec plays
    Initialize all plays here (since play vector is static, it's better to do it here to make sure it's i...
    Definition: STPManager.h:49
    -
    void runOneLoopCycle()
    Runs AI for one iteration.
    Definition: STPManager.cpp:132
    +
    void runOneLoopCycle()
    Runs AI for one iteration.
    Definition: STPManager.cpp:134
    std::shared_ptr< ai::gui::net::InterfaceGateway > interfaceGateway
    Definition: STPManager.h:31
    Play class that's used in the STP model on update traverses every Role, and updates it.
    Definition: Play.hpp:27
    Class that represents the world and history of the world.
    Definition: World.hpp:38
    diff --git a/dd/d29/AttackingPass_8h_source.html b/dd/d29/AttackingPass_8h_source.html index fd7818762..65c8c48f5 100644 --- a/dd/d29/AttackingPass_8h_source.html +++ b/dd/d29/AttackingPass_8h_source.html @@ -131,12 +131,12 @@
    rtt::Field field
    Definition: Play.hpp:127
    The attacking pass play is executed when we want to pass the ball to a robot that can shoot at the en...
    Definition: AttackingPass.h:18
    Dealer::FlagMap decideRoleFlags() const noexcept override
    Assigns robots to roles of this play.
    Definition: AttackingPass.cpp:60
    -
    bool shouldEndPlay() noexcept override
    Check if play should end. True if pass arrived, if the ball is not moving anymore after pass,...
    Definition: AttackingPass.cpp:116
    +
    bool shouldEndPlay() noexcept override
    Check if play should end. True if pass arrived, if the ball is not moving anymore after pass,...
    Definition: AttackingPass.cpp:115
    bool ballKicked()
    Check if the ball has been kicked. True if passer is done with KickAtPos tactic, False if it is still...
    Definition: AttackingPass.cpp:109
    PassInfo passInfo
    Definition: AttackingPass.h:62
    AttackingPass()
    Constructor that initializes roles with roles that are necessary for this play.
    Definition: AttackingPass.cpp:21
    void calculateInfoForRoles() noexcept override
    Calculates info for the roles.
    Definition: AttackingPass.cpp:78
    -
    const char * getName() const override
    Retrieves the name of the play.
    Definition: AttackingPass.cpp:132
    +
    const char * getName() const override
    Retrieves the name of the play.
    Definition: AttackingPass.cpp:131
    uint8_t score(const rtt::Field &field) noexcept override
    Calculate how beneficial we expect this play to be.
    Definition: AttackingPass.cpp:52
    Definition: DefendPass.h:10
    Struct to hold relevant information for passing.
    Definition: PassComputations.h:22
    diff --git a/dd/dcc/Play_8hpp_source.html b/dd/dcc/Play_8hpp_source.html index bd0c4e81c..355fdd55b 100644 --- a/dd/dcc/Play_8hpp_source.html +++ b/dd/dcc/Play_8hpp_source.html @@ -178,7 +178,7 @@
    Class that defines the constants used in this code. These constants are stored here so that we don't ...
    Definition: Constants.h:19
    std::map< std::string, RoleInfo > FlagMap
    Definition: Dealer.h:71
    -
    Class that defines the play evaluator. It evaluates each play possible and gives it a score.
    Definition: PlayEvaluator.h:50
    +
    Class that defines the play evaluator. It evaluates each play possible and gives it a score.
    Definition: PlayEvaluator.h:51
    Play class that's used in the STP model on update traverses every Role, and updates it.
    Definition: Play.hpp:27
    std::array< std::unique_ptr< Role >, rtt::ai::Constants::ROBOT_COUNT()> roles
    Definition: Play.hpp:117
    int previousMaxRobots
    Definition: Play.hpp:162
    @@ -189,22 +189,22 @@
    virtual uint8_t score(const rtt::Field &field) noexcept=0
    Scores the play based on how effective this play would be given the current world.
    std::vector< PlayEvaluator::PlayScoring > scoring
    Definition: Play.hpp:119
    virtual void update() noexcept
    Updates (or ticks) all the roles that have robots assigned to them.
    Definition: Play.cpp:31
    -
    bool isValidPlayToStart() const noexcept
    Check if the preconditions of this play are true.
    Definition: Play.cpp:177
    -
    bool isValidPlayToKeep() noexcept
    Check if the invariants necessary to keep this play are true.
    Definition: Play.cpp:173
    +
    bool isValidPlayToStart() const noexcept
    Check if the preconditions of this play are true.
    Definition: Play.cpp:176
    +
    bool isValidPlayToKeep() noexcept
    Check if the invariants necessary to keep this play are true.
    Definition: Play.cpp:172
    int previousKeeperId
    Definition: Play.hpp:161
    virtual const char * getName() const =0
    Gets the current play name.
    -
    uint8_t getLastScore() const
    Gets the last known score.
    Definition: Play.cpp:181
    +
    uint8_t getLastScore() const
    Gets the last known score.
    Definition: Play.cpp:180
    void updateField(Field field) noexcept
    Updates the field in the play.
    Definition: Play.cpp:29
    std::optional< uint8_t > lastScore
    Definition: Play.hpp:108
    virtual Dealer::FlagMap decideRoleFlags() const noexcept=0
    Decides the input for the robot dealer. The result will be used to distribute the roles.
    std::vector< GlobalEvaluation > startPlayEvaluation
    Definition: Play.hpp:31
    -
    virtual bool shouldEndPlay() noexcept
    Optional function to force end plays.
    Definition: Play.cpp:183
    +
    virtual bool shouldEndPlay() noexcept
    Optional function to force end plays.
    Definition: Play.cpp:182
    std::unordered_map< Role *, Status > roleStatuses
    Definition: Play.hpp:121
    void distributeRoles() noexcept
    Assigns robots to roles.
    Definition: Play.cpp:116
    void initialize() noexcept
    Initializes stpInfos struct, distributes roles, sets the previousRobotNum variable and calls onInitia...
    Definition: Play.cpp:11
    void reassignRobots() noexcept
    Re-calculates info for roles and reassigns robots. This function is only used when the amount of robo...
    Definition: Play.cpp:81
    void setWorld(world::World *world) noexcept
    Sets the Play's world pointer to the static world class.
    Definition: Play.cpp:27
    -
    std::unordered_map< Role *, Status > const & getRoleStatuses() const
    Getter for the role -> status mapping.
    Definition: Play.cpp:171
    +
    std::unordered_map< Role *, Status > const & getRoleStatuses() const
    Getter for the role -> status mapping.
    Definition: Play.cpp:170
    void refreshData() noexcept
    This function refreshes the RobotViews, BallViews, and Fields for all StpInfo's. This also sets the m...
    Definition: Play.cpp:87
    size_t previousRobotNum
    Definition: Play.hpp:159
    class with computations about positions
    Definition: PositionComputations.h:37
    diff --git a/de/dbf/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementUsDirectGameStateEvaluation.html b/de/dbf/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementUsDirectGameStateEvaluation.html new file mode 100644 index 000000000..27e9a1db6 --- /dev/null +++ b/de/dbf/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementUsDirectGameStateEvaluation.html @@ -0,0 +1,213 @@ + + + + + + + +Roboteam AI: rtt::ai::stp::evaluation::BallPlacementUsDirectGameStateEvaluation Class Reference + + + + + + + + + + + + + + + +
    +
    +

    Static Protected Member Functions

    static void limitRobotCommand (rtt::RobotCommand &command, std::optional< rtt::world::view::RobotView > robot)
     Applies constraints to the internal robot command. More...
     
    static void limitRobotCommand (rtt::RobotCommand &command, rtt::world::view::RobotView robot)
     Applies constraints to the internal robot command. More...
     
    static void limitVel (rtt::RobotCommand &command)
     Limits the velocity with a control_constants value. More...
     
    static void limitAngularVel (rtt::RobotCommand &command, std::optional< rtt::world::view::RobotView > robot)
     Limits the angular velocity with a control_constants value. More...
     
    static void limitAngularVel (rtt::RobotCommand &command, rtt::world::view::RobotView robot)
     Limits the angular velocity with a control_constants value. More...
     
    static void rotateRobotCommand (rtt::RobotCommand &command)
     Rotates the robot command to the other side of the field. More...
     
    const rtt::RobotCommand & rtt::RobotCommand  command 
    std::optional< rtt::world::view::RobotViewrtt::world::view::RobotView  robot 
    std::optional< rtt::world::view::RobotViewrtt::world::view::RobotView  robot 
    + + + + + + +
    +
    Roboteam AI +
    +
    + + + + + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    rtt::ai::stp::evaluation::BallPlacementUsDirectGameStateEvaluation Class Reference
    +
    +
    + +

    Class that evaluates the ball placement us game state when the next command is direct free kick. + More...

    + +

    #include <BallPlacementUsDirectGameStateEvaluation.h>

    +
    +Inheritance diagram for rtt::ai::stp::evaluation::BallPlacementUsDirectGameStateEvaluation:
    +
    +
    + + +rtt::ai::stp::evaluation::BaseEvaluation + +
    + + + + + + + + +

    +Public Member Functions

    uint8_t metricCheck (const world::World *world, const Field *field) const noexcept override
     Calculates the score for the ball placement us game state when the next command is direct free kick. More...
     
    const char * getName () override
     Retrieves the name of the evaluation. More...
     
    +

    Detailed Description

    +

    Class that evaluates the ball placement us game state when the next command is direct free kick.

    +

    Member Function Documentation

    + +

    ◆ getName()

    + +
    +
    + + + + + +
    + + + + + + + +
    const char* rtt::ai::stp::evaluation::BallPlacementUsDirectGameStateEvaluation::getName ()
    +
    +inlineoverridevirtual
    +
    + +

    Retrieves the name of the evaluation.

    +
    Returns
    A string containing the name of the evaluation
    + +

    Implements rtt::ai::stp::evaluation::BaseEvaluation.

    + +
    +
    + +

    ◆ metricCheck()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    uint8_t rtt::ai::stp::evaluation::BallPlacementUsDirectGameStateEvaluation::metricCheck (const world::Worldworld,
    const Field * field 
    ) const
    +
    +overridevirtualnoexcept
    +
    + +

    Calculates the score for the ball placement us game state when the next command is direct free kick.

    +
    Parameters
    + + + +
    worldThe current world
    fieldThe current field
    +
    +
    +
    Returns
    The score of the ball placement direct us game state
    + +

    Implements rtt::ai::stp::evaluation::BaseEvaluation.

    + +
    +
    +
    The documentation for this class was generated from the following files: +
    +
    + + + + diff --git a/de/dbf/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementUsDirectGameStateEvaluation.js b/de/dbf/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementUsDirectGameStateEvaluation.js new file mode 100644 index 000000000..fffc682ef --- /dev/null +++ b/de/dbf/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementUsDirectGameStateEvaluation.js @@ -0,0 +1,5 @@ +var classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementUsDirectGameStateEvaluation = +[ + [ "getName", "de/dbf/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementUsDirectGameStateEvaluation.html#a085889de9b6250133a9d5783e03622ba", null ], + [ "metricCheck", "de/dbf/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementUsDirectGameStateEvaluation.html#a6ce62134bc1119fbc182911347eb2923", null ] +]; \ No newline at end of file diff --git a/de/dbf/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementUsDirectGameStateEvaluation.png b/de/dbf/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementUsDirectGameStateEvaluation.png new file mode 100644 index 0000000000000000000000000000000000000000..4886d6fb2eab2740d4cc4169ba58a2fca7513623 GIT binary patch literal 1157 zcmeAS@N?(olHy`uVBq!ia0y~yV5|hP12~w0eKsy7I|FP?QQ4Y?|v(C z{p9I$sxR$q-S@S{>K|3y`SsX!(`5>K)bm%J{S`b{YH>DL)~&9Hy{%`n=)oz!?L}H7 ze_BO+e{*7fxt{0ulf5@YODfYbQ4Y4bQ9X-J?>wM4wg7^M595rRS%B3DZ^he@>ph z%sb~{0>mOP*gpgSXRkNchU6dfV^p7r)wDEkBs? zX!{wR_@C!C@XYh++H`tfPPtwA7C+P9%qCLzj@XpGuQU2)KZ!kOw~t)HBEBcAJgq;ZTWxo z8D%P3QfAp6YQDbZN7Z@OD}gy>FFSAio+F=M@jvhEM89pa9lQ!{U!P5zxjEPPoZZBX zTP;gc@1-WbKYK^ZBUk%$f0DN7qogjBZ&HF3Z z`(*jmWgFl7XS~~Ky)ZHS^oNu;$DgQ|Cs+h=uROc5+&s^%ZjG7qOv@8X5^szBnDBY> zZj<$E@4n_$U8P)a_U-)1@1^_x?wOJE`t3WV`UB5b+%hpwSYsBeTmQJyYu{S7@TB)A z%;jf1y{MxjmV0;QeTCg=pM%+Mz5o3t?ECJSS{rVPu2!3I?D4bp(~j-k{y6iF#Q(_| zzMPutw%<5CqqJV@+ccX4?pAvl6j)4jPcT<#0Pzc^$_9Z0`-9L@&V}w8FU{5gC#9YXbpVzb44$rjF6*2UngHURKKuXx literal 0 HcmV?d00001 diff --git a/de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html b/de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html new file mode 100644 index 000000000..16bd73607 --- /dev/null +++ b/de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html @@ -0,0 +1,992 @@ + + + + + + + +Roboteam AI: rtt::ai::stp::play::BallPlacementUsForceStart Class Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Roboteam AI +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + + +
    + +

    The ball placement us Force Start play is executed when the ball placement us game state is selected and the next ref command is not Free kick us, meaning it will be a force start. + More...

    + +

    #include <BallPlacementUsForceStart.h>

    +
    +Inheritance diagram for rtt::ai::stp::play::BallPlacementUsForceStart:
    +
    +
    + + +rtt::ai::stp::Play + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     BallPlacementUsForceStart ()
     Constructor that initializes roles with roles that are necessary for this play. More...
     
    uint8_t score (const rtt::Field &field) noexcept override
     Calculates the score of this play to determine which play is best in this situation. More...
     
    Dealer::FlagMap decideRoleFlags () const noexcept override
     Assigns robots to roles of this play. More...
     
    void calculateInfoForRoles () noexcept override
     Calculates info for the roles. More...
     
    const char * getName () const override
     Retrieves the name of the play. More...
     
    void initialize () noexcept
     Initializes stpInfos struct, distributes roles, sets the previousRobotNum variable and calls onInitialize() More...
     
    void setWorld (world::World *world) noexcept
     Sets the Play's world pointer to the static world class. More...
     
    void updateField (Field field) noexcept
     Updates the field in the play. More...
     
    virtual void update () noexcept
     Updates (or ticks) all the roles that have robots assigned to them. More...
     
    bool isValidPlayToStart () const noexcept
     Check if the preconditions of this play are true. More...
     
    bool isValidPlayToKeep () noexcept
     Check if the invariants necessary to keep this play are true. More...
     
    std::unordered_map< Role *, Status > const & getRoleStatuses () const
     Getter for the role -> status mapping. More...
     
    uint8_t getLastScore () const
     Gets the last known score. More...
     
    + + + + + + + +

    +Public Attributes

    std::vector< GlobalEvaluationkeepPlayEvaluation
     
    std::vector< GlobalEvaluationstartPlayEvaluation
     
    std::optional< uint8_t > lastScore
     
    + + + + +

    +Protected Member Functions

    virtual bool shouldEndPlay () noexcept
     Optional function to force end plays. More...
     
    + + + + + + + + + + + + + +

    +Protected Attributes

    std::array< std::unique_ptr< Role >, rtt::ai::Constants::ROBOT_COUNT()> roles
     
    std::vector< PlayEvaluator::PlayScoringscoring
     
    std::unordered_map< Role *, StatusroleStatuses
     
    std::unordered_map< std::string, StpInfostpInfos
     
    rtt::world::Worldworld {}
     
    rtt::Field field
     
    + + + + + + + + + + +

    +Private Member Functions

    void refreshData () noexcept
     This function refreshes the RobotViews, BallViews, and Fields for all StpInfo's. This also sets the maxRobotVelocity. This is necessary because the views are stored for a limited time; not refreshing will lead to UB. More...
     
    void distributeRoles () noexcept
     Assigns robots to roles. More...
     
    void reassignRobots () noexcept
     Re-calculates info for roles and reassigns robots. This function is only used when the amount of robots in the field changed compared to the previous tick. More...
     
    + + + + + + + +

    +Private Attributes

    size_t previousRobotNum {}
     
    int previousKeeperId = -1
     
    int previousMaxRobots = -1
     
    +

    Detailed Description

    +

    The ball placement us Force Start play is executed when the ball placement us game state is selected and the next ref command is not Free kick us, meaning it will be a force start.

    +

    Constructor & Destructor Documentation

    + +

    ◆ BallPlacementUsForceStart()

    + +
    +
    + + + + + + + +
    rtt::ai::stp::play::BallPlacementUsForceStart::BallPlacementUsForceStart ()
    +
    + +

    Constructor that initializes roles with roles that are necessary for this play.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ calculateInfoForRoles()

    + +
    +
    + + + + + +
    + + + + + + + +
    void rtt::ai::stp::play::BallPlacementUsForceStart::calculateInfoForRoles ()
    +
    +overridevirtualnoexcept
    +
    + +

    Calculates info for the roles.

    + +

    Implements rtt::ai::stp::Play.

    + +
    +
    + +

    ◆ decideRoleFlags()

    + +
    +
    + + + + + +
    + + + + + + + +
    Dealer::FlagMap rtt::ai::stp::play::BallPlacementUsForceStart::decideRoleFlags () const
    +
    +overridevirtualnoexcept
    +
    + +

    Assigns robots to roles of this play.

    +
    Returns
    A map with assigned roles
    + +

    Implements rtt::ai::stp::Play.

    + +
    +
    + +

    ◆ distributeRoles()

    + +
    +
    + + + + + +
    + + + + + + + +
    void rtt::ai::stp::Play::distributeRoles ()
    +
    +privatenoexceptinherited
    +
    + +

    Assigns robots to roles.

    + +
    +
    + +

    ◆ getLastScore()

    + +
    +
    + + + + + +
    + + + + + + + +
    uint8_t rtt::ai::stp::Play::getLastScore () const
    +
    +inherited
    +
    + +

    Gets the last known score.

    +
    Returns
    score, if no value -> 0
    + +
    +
    + +

    ◆ getName()

    + +
    +
    + + + + + +
    + + + + + + + +
    const char * rtt::ai::stp::play::BallPlacementUsForceStart::getName () const
    +
    +overridevirtual
    +
    + +

    Retrieves the name of the play.

    +
    Returns
    The name of the play as a string
    + +

    Implements rtt::ai::stp::Play.

    + +
    +
    + +

    ◆ getRoleStatuses()

    + +
    +
    + + + + + +
    + + + + + + + +
    std::unordered_map< Role *, Status > const & rtt::ai::stp::Play::getRoleStatuses () const
    +
    +inherited
    +
    + +

    Getter for the role -> status mapping.

    +
    Returns
    The internal role -> status mapping, roleStatuses
    + +
    +
    + +

    ◆ initialize()

    + +
    +
    + + + + + +
    + + + + + + + +
    void rtt::ai::stp::Play::initialize ()
    +
    +noexceptinherited
    +
    + +

    Initializes stpInfos struct, distributes roles, sets the previousRobotNum variable and calls onInitialize()

    + +
    +
    + +

    ◆ isValidPlayToKeep()

    + +
    +
    + + + + + +
    + + + + + + + +
    bool rtt::ai::stp::Play::isValidPlayToKeep ()
    +
    +noexceptinherited
    +
    + +

    Check if the invariants necessary to keep this play are true.

    +
    Returns
    true if the play is valid to keep, else false
    + +
    +
    + +

    ◆ isValidPlayToStart()

    + +
    +
    + + + + + +
    + + + + + + + +
    bool rtt::ai::stp::Play::isValidPlayToStart () const
    +
    +noexceptinherited
    +
    + +

    Check if the preconditions of this play are true.

    +
    Returns
    true if the play is allowed to be started, else false
    + +
    +
    + +

    ◆ reassignRobots()

    + +
    +
    + + + + + +
    + + + + + + + +
    void rtt::ai::stp::Play::reassignRobots ()
    +
    +privatenoexceptinherited
    +
    + +

    Re-calculates info for roles and reassigns robots. This function is only used when the amount of robots in the field changed compared to the previous tick.

    + +
    +
    + +

    ◆ refreshData()

    + +
    +
    + + + + + +
    + + + + + + + +
    void rtt::ai::stp::Play::refreshData ()
    +
    +privatenoexceptinherited
    +
    + +

    This function refreshes the RobotViews, BallViews, and Fields for all StpInfo's. This also sets the maxRobotVelocity. This is necessary because the views are stored for a limited time; not refreshing will lead to UB.

    + +
    +
    + +

    ◆ score()

    + +
    +
    + + + + + +
    + + + + + + + + +
    uint8_t rtt::ai::stp::play::BallPlacementUsForceStart::score (const rtt::Field & field)
    +
    +overridevirtualnoexcept
    +
    + +

    Calculates the score of this play to determine which play is best in this situation.

    +
    Parameters
    + + +
    fieldThe current Field
    +
    +
    +
    Returns
    The score of this play (0-255)
    + +

    Implements rtt::ai::stp::Play.

    + +
    +
    + +

    ◆ setWorld()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void rtt::ai::stp::Play::setWorld (world::Worldworld)
    +
    +noexceptinherited
    +
    + +

    Sets the Play's world pointer to the static world class.

    +
    Parameters
    + + +
    pointerto World
    +
    +
    + +
    +
    + +

    ◆ shouldEndPlay()

    + +
    +
    + + + + + +
    + + + + + + + +
    bool rtt::ai::stp::Play::shouldEndPlay ()
    +
    +protectedvirtualnoexceptinherited
    +
    +
    + +

    ◆ update()

    + +
    +
    + + + + + +
    + + + + + + + +
    void rtt::ai::stp::Play::update ()
    +
    +virtualnoexceptinherited
    +
    + +

    Updates (or ticks) all the roles that have robots assigned to them.

    + +
    +
    + +

    ◆ updateField()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void rtt::ai::stp::Play::updateField (Field field)
    +
    +noexceptinherited
    +
    + +

    Updates the field in the play.

    +
    Parameters
    + + +
    fieldthe current field
    +
    +
    + +
    +
    +

    Member Data Documentation

    + +

    ◆ field

    + +
    +
    + + + + + +
    + + + + +
    rtt::Field rtt::ai::stp::Play::field
    +
    +protectedinherited
    +
    +

    The Field

    + +
    +
    + +

    ◆ keepPlayEvaluation

    + +
    +
    + + + + + +
    + + + + +
    std::vector<GlobalEvaluation> rtt::ai::stp::Play::keepPlayEvaluation
    +
    +inherited
    +
    +

    Invariant vector that contains invariants that need to be true to continue execution of this play

    + +
    +
    + +

    ◆ lastScore

    + +
    +
    + + + + + +
    + + + + +
    std::optional<uint8_t> rtt::ai::stp::Play::lastScore
    +
    +inherited
    +
    +

    If score was calculated, save here

    + +
    +
    + +

    ◆ previousKeeperId

    + +
    +
    + + + + + +
    + + + + +
    int rtt::ai::stp::Play::previousKeeperId = -1
    +
    +privateinherited
    +
    +

    The previous keeperId. This is used to check if we need to re-deal (if keeper id was changed from UI or GameController)

    + +
    +
    + +

    ◆ previousMaxRobots

    + +
    +
    + + + + + +
    + + + + +
    int rtt::ai::stp::Play::previousMaxRobots = -1
    +
    +privateinherited
    +
    +

    The previous maxRobots. This is used to check if we need to re-deal

    + +
    +
    + +

    ◆ previousRobotNum

    + +
    +
    + + + + + +
    + + + + +
    size_t rtt::ai::stp::Play::previousRobotNum {}
    +
    +privateinherited
    +
    +

    The previous amount of robots. This is used to check if we need to re-deal (if a robot disappears for example)

    + +
    +
    + +

    ◆ roles

    + +
    +
    + + + + + +
    + + + + +
    std::array<std::unique_ptr<Role>, rtt::ai::Constants::ROBOT_COUNT()> rtt::ai::stp::Play::roles
    +
    +protectedinherited
    +
    +

    The roles, constructed in ctor of a play

    + +
    +
    + +

    ◆ roleStatuses

    + +
    +
    + + + + + +
    + + + + +
    std::unordered_map<Role*, Status> rtt::ai::stp::Play::roleStatuses
    +
    +protectedinherited
    +
    +

    Map that keeps track of the status of each role. It's a Role*, because that's hashable and a unique identifier

    + +
    +
    + +

    ◆ scoring

    + +
    +
    + + + + + +
    + + + + +
    std::vector<PlayEvaluator::PlayScoring> rtt::ai::stp::Play::scoring
    +
    +protectedinherited
    +
    +

    The evaluations with their weight

    + +
    +
    + +

    ◆ startPlayEvaluation

    + +
    +
    + + + + + +
    + + + + +
    std::vector<GlobalEvaluation> rtt::ai::stp::Play::startPlayEvaluation
    +
    +inherited
    +
    +

    Invariant vector that contains invariants that need to be true to start this play

    + +
    +
    + +

    ◆ stpInfos

    + +
    +
    + + + + + +
    + + + + +
    std::unordered_map<std::string, StpInfo> rtt::ai::stp::Play::stpInfos
    +
    +protectedinherited
    +
    +

    The stpInfos. The string is the role_name to be able to update the info in the right role

    + +
    +
    + +

    ◆ world

    + +
    +
    + + + + + +
    + + + + +
    rtt::world::World* rtt::ai::stp::Play::world {}
    +
    +protectedinherited
    +
    +

    The world pointer

    + +
    +
    +
    The documentation for this class was generated from the following files: +
    +
    + + + + diff --git a/de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.js b/de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.js new file mode 100644 index 000000000..225d0f659 --- /dev/null +++ b/de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.js @@ -0,0 +1,32 @@ +var classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart = +[ + [ "BallPlacementUsForceStart", "de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html#a358a48626283256f2578740c456da625", null ], + [ "calculateInfoForRoles", "de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html#a1d25436d84cf05e9d164139d1038591d", null ], + [ "decideRoleFlags", "de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html#a3eee34c793189abc4a9f9b98340a5cdb", null ], + [ "distributeRoles", "de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html#a977b3063d4d26bee4be08d71c2ab7ccc", null ], + [ "getLastScore", "de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html#a7439c6149abbc461640c9ecdad2ba8d6", null ], + [ "getName", "de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html#a185f8b4ba9db2f7c98967dcbda67689b", null ], + [ "getRoleStatuses", "de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html#ab5f09cfa9cd1ddb2a6990cb3c1b4d691", null ], + [ "initialize", "de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html#aa0405b45c69fc25464bec621fbcbe0cc", null ], + [ "isValidPlayToKeep", "de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html#a5be299fd1dab79b7f656ca37631d6ef6", null ], + [ "isValidPlayToStart", "de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html#a58560de6d2d6ca91e467deb1071aadbd", null ], + [ "reassignRobots", "de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html#aa20291b5cee34414dfb81aa0fd33713f", null ], + [ "refreshData", "de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html#ad7b71d56f8b8d8d62b7ec945847a2bec", null ], + [ "score", "de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html#a5cad72522fb5823fbd698b847342df76", null ], + [ "setWorld", "de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html#ab23ad33458ed975661cdc593bdf40968", null ], + [ "shouldEndPlay", "de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html#a8726a464fdb9e614c5cca8c7cd183155", null ], + [ "update", "de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html#a52fc8b6075367b48ae05021829ebcc8f", null ], + [ "updateField", "de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html#a805621fd748e3dfd6399ff69570f7e56", null ], + [ "field", "de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html#a1dc216d51c90eb0e6ddb0298e1ad034e", null ], + [ "keepPlayEvaluation", "de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html#a17fc7a716064d918aa29c072832c2ef8", null ], + [ "lastScore", "de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html#a81d204e55bab023d2937c1420abd04ad", null ], + [ "previousKeeperId", "de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html#a7164f241b13b1aa59b6e6b5c30a3094b", null ], + [ "previousMaxRobots", "de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html#a067c0013eb3e4d70eedd32a504dee10d", null ], + [ "previousRobotNum", "de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html#afc2268677ee563a2f0a7efa4acff465e", null ], + [ "roles", "de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html#a0329d2814e2651902bb05f23659e0084", null ], + [ "roleStatuses", "de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html#a8750ea230c633dcf6a0f09e28e4f47b1", null ], + [ "scoring", "de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html#a4598ba530d29d7f4f53bcec0c9845100", null ], + [ "startPlayEvaluation", "de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html#a859e8c8abae48115eab588736926368f", null ], + [ "stpInfos", "de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html#a08a78e2b6bb5fb4f75d0c9dc572d25fa", null ], + [ "world", "de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html#a0c13cbd482099fa139f3a5f08d964efe", null ] +]; \ No newline at end of file diff --git a/de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.png b/de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.png new file mode 100644 index 0000000000000000000000000000000000000000..f7c675f68168fcb75a52caf410329f90634c75b3 GIT binary patch literal 760 zcmeAS@N?(olHy`uVBq!ia0vp^zkoP^gBeJ&Z=KN&q$C1-LR|m<{|{uoc=NTi|Ih>= z3ycpOIKbL@M;^%KC<*clW&kPzfvcxNj2IZ0+C5zyLn;{G&V5_-%7BOUy1Mb6|H|t9N$9GcQn#&h17d3yDT_+y3@!qcO8*d-dtGZd>r*O{Mf0D84R~^r5 zw|M2-@12af9WOQS?B1{Xj`0g#wd7xX`>yn`C;$KJ7px-#RLh#<RUVggZjQNllQ-#RI^XA4H;4| z7%rMzU<4Y#?1HA?fb^6gFGE+RjukLXSzoemyC3>m&a~CsMm*?wootQKv)B2zw>>rD z-LU+h=g#U5zKCj}z4K1L=%33Ha%~awovY_Od4FvUJ$}*s&9&HlZEDwc8n50W^(FV* z!sm}y)qnP1_51e8+1BNMrMo_dJUhKe^x^{b0=Gr!oL!~YCToKe#Of-S!upvGc&H1Cq=7hWj{*07HzM0-|O<+5dB-O@ix~v z>-lS=<89xSt+To?Z(?LkPt+Hyht)59Pvjo8c6p!TSSmSp_NlCkw_Ea!?k+#*XSCzZ zZRh;H_j*+#ckSQ%wf^9&+P~|K+8@~x@k{O(S95I+DV}Up35<#Ghvw(MZqBQ@dFuYk z)1iO2U(JiYvG&7W|6^gdbt0bc<}1*M=V&}NuZ-gZ+g`c9!6)MT{~12{-^}-c7Z%hn gyXFOXDSqXj#$>wj+1F+dU@~R!boFyt=akR{0Oh4~r~m)} literal 0 HcmV?d00001 diff --git a/df/d59/KickOffUs_8h_source.html b/df/d59/KickOffUs_8h_source.html index 8782f99ce..cfd702077 100644 --- a/df/d59/KickOffUs_8h_source.html +++ b/df/d59/KickOffUs_8h_source.html @@ -122,13 +122,13 @@
    Play class that's used in the STP model on update traverses every Role, and updates it.
    Definition: Play.hpp:27
    rtt::Field field
    Definition: Play.hpp:127
    The kick off us play is executed when the kick off us game state is selected.
    Definition: KickOffUs.h:14
    -
    const char * getName() const override
    Retrieves the name of the play.
    Definition: KickOffUs.cpp:98
    +
    const char * getName() const override
    Retrieves the name of the play.
    Definition: KickOffUs.cpp:96
    bool shouldEndPlay() noexcept override
    Check if the play should end. True after kickoff.
    Definition: KickOffUs.cpp:82
    KickOffUs()
    Constructor that initializes roles with roles that are necessary for this play.
    Definition: KickOffUs.cpp:15
    void calculateInfoForRoles() noexcept override
    Calculates info for the roles.
    Definition: KickOffUs.cpp:63
    Dealer::FlagMap decideRoleFlags() const noexcept override
    Assigns robots to roles of this play.
    Definition: KickOffUs.cpp:40
    uint8_t score(const rtt::Field &field) noexcept override
    Calculates the score of this play to determine which play is best in this situation.
    Definition: KickOffUs.cpp:35
    -
    bool ballKicked()
    Checks if the passer has finished kickAtPos.
    Definition: KickOffUs.cpp:91
    +
    bool ballKicked()
    Checks if the passer has finished kickAtPos.
    Definition: KickOffUs.cpp:90
    Definition: DefendPass.h:10
    diff --git a/df/da1/STPManager_8cpp.html b/df/da1/STPManager_8cpp.html index 1dd6b843a..790970869 100644 --- a/df/da1/STPManager_8cpp.html +++ b/df/da1/STPManager_8cpp.html @@ -111,7 +111,8 @@ #include "stp/plays/offensive/ChippingPass.h"
    #include "stp/plays/referee_specific/AggressiveStopFormation.h"
    #include "stp/plays/referee_specific/BallPlacementThem.h"
    -#include "stp/plays/referee_specific/BallPlacementUs.h"
    +#include "stp/plays/referee_specific/BallPlacementUsForceStart.h"
    +#include "stp/plays/referee_specific/BallPlacementUsFreeKick.h"
    #include "stp/plays/referee_specific/DefensiveStopFormation.h"
    #include "stp/plays/referee_specific/FreeKickThem.h"
    #include "stp/plays/referee_specific/FreeKickUsAtGoal.h"
    diff --git a/df/de7/ChippingPass_8h_source.html b/df/de7/ChippingPass_8h_source.html index 9c46080ca..c6a79391c 100644 --- a/df/de7/ChippingPass_8h_source.html +++ b/df/de7/ChippingPass_8h_source.html @@ -133,8 +133,8 @@
    Dealer::FlagMap decideRoleFlags() const noexcept override
    Assigns robots to roles of this play.
    Definition: ChippingPass.cpp:62
    uint8_t score(const rtt::Field &field) noexcept override
    Calculate how beneficial we expect this play to be.
    Definition: ChippingPass.cpp:52
    void calculateInfoForRoles() noexcept override
    Calculates info for the roles.
    Definition: ChippingPass.cpp:80
    -
    const char * getName() const override
    Gets the name of the play.
    Definition: ChippingPass.cpp:133
    -
    bool shouldEndPlay() noexcept override
    Check if play should end. True if pass arrived, if the ball is not moving anymore after pass,...
    Definition: ChippingPass.cpp:117
    +
    const char * getName() const override
    Gets the name of the play.
    Definition: ChippingPass.cpp:132
    +
    bool shouldEndPlay() noexcept override
    Check if play should end. True if pass arrived, if the ball is not moving anymore after pass,...
    Definition: ChippingPass.cpp:116
    bool ballKicked()
    Return true if passer is done with ChipAtPos tactic.
    Definition: ChippingPass.cpp:110
    ChippingPass()
    Constructor that initializes roles with roles that are necessary for this play.
    Definition: ChippingPass.cpp:21
    Definition: DefendPass.h:10
    diff --git a/dir_319020dd40c89deb6cd7eba6429fada4.html b/dir_319020dd40c89deb6cd7eba6429fada4.html index dd7e6609b..ea106915f 100644 --- a/dir_319020dd40c89deb6cd7eba6429fada4.html +++ b/dir_319020dd40c89deb6cd7eba6429fada4.html @@ -93,6 +93,8 @@ Files

    file  BallPlacementThemGameStateEvaluation.h [code]   +file  BallPlacementUsDirectGameStateEvaluation.h [code] +  file  BallPlacementUsGameStateEvaluation.h [code]   file  FreeKickThemGameStateEvaluation.h [code] diff --git a/dir_319020dd40c89deb6cd7eba6429fada4.js b/dir_319020dd40c89deb6cd7eba6429fada4.js index cb364f754..3dc975694 100644 --- a/dir_319020dd40c89deb6cd7eba6429fada4.js +++ b/dir_319020dd40c89deb6cd7eba6429fada4.js @@ -3,6 +3,9 @@ var dir_319020dd40c89deb6cd7eba6429fada4 = [ "BallPlacementThemGameStateEvaluation.h", "dd/d6e/BallPlacementThemGameStateEvaluation_8h.html", [ [ "BallPlacementThemGameStateEvaluation", "dc/d07/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementThemGameStateEvaluation.html", "dc/d07/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementThemGameStateEvaluation" ] ] ], + [ "BallPlacementUsDirectGameStateEvaluation.h", "d5/df2/BallPlacementUsDirectGameStateEvaluation_8h.html", [ + [ "BallPlacementUsDirectGameStateEvaluation", "de/dbf/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementUsDirectGameStateEvaluation.html", "de/dbf/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementUsDirectGameStateEvaluation" ] + ] ], [ "BallPlacementUsGameStateEvaluation.h", "d6/d14/BallPlacementUsGameStateEvaluation_8h.html", [ [ "BallPlacementUsGameStateEvaluation", "d7/db7/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementUsGameStateEvaluation.html", "d7/db7/classrtt_1_1ai_1_1stp_1_1evaluation_1_1BallPlacementUsGameStateEvaluation" ] ] ], diff --git a/dir_4eacba08721ac3b0e1d4b27ca96b0fbb.html b/dir_4eacba08721ac3b0e1d4b27ca96b0fbb.html index 06c78ef44..6fdaf9969 100644 --- a/dir_4eacba08721ac3b0e1d4b27ca96b0fbb.html +++ b/dir_4eacba08721ac3b0e1d4b27ca96b0fbb.html @@ -95,7 +95,9 @@   file  BallPlacementThem.h [code]   -file  BallPlacementUs.h [code] +file  BallPlacementUsForceStart.h [code] +  +file  BallPlacementUsFreeKick.h [code]   file  DefensiveStopFormation.h [code]   diff --git a/dir_4eacba08721ac3b0e1d4b27ca96b0fbb.js b/dir_4eacba08721ac3b0e1d4b27ca96b0fbb.js index ca47fcc8d..60feec694 100644 --- a/dir_4eacba08721ac3b0e1d4b27ca96b0fbb.js +++ b/dir_4eacba08721ac3b0e1d4b27ca96b0fbb.js @@ -6,8 +6,11 @@ var dir_4eacba08721ac3b0e1d4b27ca96b0fbb = [ "BallPlacementThem.h", "d2/d09/BallPlacementThem_8h.html", [ [ "BallPlacementThem", "d7/d43/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementThem.html", "d7/d43/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementThem" ] ] ], - [ "BallPlacementUs.h", "db/d3e/BallPlacementUs_8h.html", [ - [ "BallPlacementUs", "d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs.html", "d5/d6f/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUs" ] + [ "BallPlacementUsForceStart.h", "d4/db8/BallPlacementUsForceStart_8h.html", [ + [ "BallPlacementUsForceStart", "de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart.html", "de/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsForceStart" ] + ] ], + [ "BallPlacementUsFreeKick.h", "db/ddc/BallPlacementUsFreeKick_8h.html", [ + [ "BallPlacementUsFreeKick", "d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick.html", "d9/de4/classrtt_1_1ai_1_1stp_1_1play_1_1BallPlacementUsFreeKick" ] ] ], [ "DefensiveStopFormation.h", "d2/d2a/DefensiveStopFormation_8h.html", [ [ "DefensiveStopFormation", "df/de3/classrtt_1_1ai_1_1stp_1_1play_1_1DefensiveStopFormation.html", "df/de3/classrtt_1_1ai_1_1stp_1_1play_1_1DefensiveStopFormation" ] diff --git a/dir_966815d6cf7171e42bdbd78f5df9c8eb.html b/dir_966815d6cf7171e42bdbd78f5df9c8eb.html index ff8c7b90f..ea075a1f0 100644 --- a/dir_966815d6cf7171e42bdbd78f5df9c8eb.html +++ b/dir_966815d6cf7171e42bdbd78f5df9c8eb.html @@ -93,6 +93,8 @@ Files file  BallPlacementThemGameStateEvaluation.cpp   +file  BallPlacementUsDirectGameStateEvaluation.cpp +  file  BallPlacementUsGameStateEvaluation.cpp   file  FreeKickThemGameStateEvaluation.cpp diff --git a/dir_966815d6cf7171e42bdbd78f5df9c8eb.js b/dir_966815d6cf7171e42bdbd78f5df9c8eb.js index 270be0fe6..c6e01994c 100644 --- a/dir_966815d6cf7171e42bdbd78f5df9c8eb.js +++ b/dir_966815d6cf7171e42bdbd78f5df9c8eb.js @@ -1,6 +1,7 @@ var dir_966815d6cf7171e42bdbd78f5df9c8eb = [ [ "BallPlacementThemGameStateEvaluation.cpp", "dc/d3a/BallPlacementThemGameStateEvaluation_8cpp.html", null ], + [ "BallPlacementUsDirectGameStateEvaluation.cpp", "d4/d3a/BallPlacementUsDirectGameStateEvaluation_8cpp.html", null ], [ "BallPlacementUsGameStateEvaluation.cpp", "db/dd5/BallPlacementUsGameStateEvaluation_8cpp.html", null ], [ "FreeKickThemGameStateEvaluation.cpp", "d5/d45/FreeKickThemGameStateEvaluation_8cpp.html", null ], [ "FreeKickUsGameStateEvaluation.cpp", "d5/d81/FreeKickUsGameStateEvaluation_8cpp.html", null ], diff --git a/dir_da313de16f3ef3dafe4a78332c822bbd.html b/dir_da313de16f3ef3dafe4a78332c822bbd.html index 80723f2eb..fd6dc5618 100644 --- a/dir_da313de16f3ef3dafe4a78332c822bbd.html +++ b/dir_da313de16f3ef3dafe4a78332c822bbd.html @@ -95,7 +95,9 @@   file  BallPlacementThem.cpp   -file  BallPlacementUs.cpp +file  BallPlacementUsForceStart.cpp +  +file  BallPlacementUsFreeKick.cpp   file  DefensiveStopFormation.cpp   diff --git a/dir_da313de16f3ef3dafe4a78332c822bbd.js b/dir_da313de16f3ef3dafe4a78332c822bbd.js index e675ce1ff..3520bb776 100644 --- a/dir_da313de16f3ef3dafe4a78332c822bbd.js +++ b/dir_da313de16f3ef3dafe4a78332c822bbd.js @@ -2,7 +2,8 @@ var dir_da313de16f3ef3dafe4a78332c822bbd = [ [ "AggressiveStopFormation.cpp", "d1/d2e/AggressiveStopFormation_8cpp.html", null ], [ "BallPlacementThem.cpp", "d5/ddd/BallPlacementThem_8cpp.html", null ], - [ "BallPlacementUs.cpp", "da/dab/BallPlacementUs_8cpp.html", null ], + [ "BallPlacementUsForceStart.cpp", "da/d05/BallPlacementUsForceStart_8cpp.html", null ], + [ "BallPlacementUsFreeKick.cpp", "d9/d90/BallPlacementUsFreeKick_8cpp.html", null ], [ "DefensiveStopFormation.cpp", "d5/d2f/DefensiveStopFormation_8cpp.html", null ], [ "FreeKickThem.cpp", "db/dbe/FreeKickThem_8cpp.html", null ], [ "FreeKickUsAtGoal.cpp", "d5/d8d/FreeKickUsAtGoal_8cpp.html", null ], diff --git a/files.html b/files.html index 3f90f737c..7aa2108bf 100644 --- a/files.html +++ b/files.html @@ -138,23 +138,24 @@   evaluations   game_states  BallPlacementThemGameStateEvaluation.h - BallPlacementUsGameStateEvaluation.h - FreeKickThemGameStateEvaluation.h - FreeKickUsGameStateEvaluation.h - HaltGameStateEvaluation.h - KickOffThemGameStateEvaluation.h - KickOffThemPrepareGameStateEvaluation.h - KickOffUsGameStateEvaluation.h - KickOffUsOrNormalGameStateEvaluation.h - KickOffUsPrepareGameStateEvaluation.h - NormalOrFreeKickUsGameStateEvaluation.h - NormalPlayGameStateEvaluation.h - PenaltyThemGameStateEvaluation.h - PenaltyThemPrepareGameStateEvaluation.h - PenaltyUsGameStateEvaluation.h - PenaltyUsPrepareGameStateEvaluation.h - StopGameStateEvaluation.h - TimeOutGameStateEvaluation.h + BallPlacementUsDirectGameStateEvaluation.h + BallPlacementUsGameStateEvaluation.h + FreeKickThemGameStateEvaluation.h + FreeKickUsGameStateEvaluation.h + HaltGameStateEvaluation.h + KickOffThemGameStateEvaluation.h + KickOffThemPrepareGameStateEvaluation.h + KickOffUsGameStateEvaluation.h + KickOffUsOrNormalGameStateEvaluation.h + KickOffUsPrepareGameStateEvaluation.h + NormalOrFreeKickUsGameStateEvaluation.h + NormalPlayGameStateEvaluation.h + PenaltyThemGameStateEvaluation.h + PenaltyThemPrepareGameStateEvaluation.h + PenaltyUsGameStateEvaluation.h + PenaltyUsPrepareGameStateEvaluation.h + StopGameStateEvaluation.h + TimeOutGameStateEvaluation.h   global  BallInOurDefenseAreaAndStillGlobalEvaluation.h  BallNotInOurDefenseAreaAndStillGlobalEvaluation.h @@ -181,20 +182,21 @@   referee_specific  AggressiveStopFormation.h  BallPlacementThem.h - BallPlacementUs.h - DefensiveStopFormation.h - FreeKickThem.h - FreeKickUsAtGoal.h - FreeKickUsPass.h - Halt.h - KickOffThem.h - KickOffThemPrepare.h - KickOffUs.h - KickOffUsPrepare.h - PenaltyThem.h - PenaltyThemPrepare.h - PenaltyUs.h - PenaltyUsPrepare.h + BallPlacementUsForceStart.h + BallPlacementUsFreeKick.h + DefensiveStopFormation.h + FreeKickThem.h + FreeKickUsAtGoal.h + FreeKickUsPass.h + Halt.h + KickOffThem.h + KickOffThemPrepare.h + KickOffUs.h + KickOffUsPrepare.h + PenaltyThem.h + PenaltyThemPrepare.h + PenaltyUs.h + PenaltyUsPrepare.h   roles   active  BallPlacer.h @@ -322,23 +324,24 @@   evaluations   game_states  BallPlacementThemGameStateEvaluation.cpp - BallPlacementUsGameStateEvaluation.cpp - FreeKickThemGameStateEvaluation.cpp - FreeKickUsGameStateEvaluation.cpp - HaltGameStateEvaluation.cpp - KickOffThemGameStateEvaluation.cpp - KickOffThemPrepareGameStateEvaluation.cpp - KickOffUsGameStateEvaluation.cpp - KickOffUsOrNormalGameStateEvaluation.cpp - KickOffUsPrepareGameStateEvaluation.cpp - NormalOrFreeKickUsGameStateEvaluation.cpp - NormalPlayGameStateEvaluation.cpp - PenaltyThemGameStateEvaluation.cpp - PenaltyThemPrepareGameStateEvaluation.cpp - PenaltyUsGameStateEvaluation.cpp - PenaltyUsPrepareGameStateEvaluation.cpp - StopGameStateEvaluation.cpp - TimeOutGameStateEvaluation.cpp + BallPlacementUsDirectGameStateEvaluation.cpp + BallPlacementUsGameStateEvaluation.cpp + FreeKickThemGameStateEvaluation.cpp + FreeKickUsGameStateEvaluation.cpp + HaltGameStateEvaluation.cpp + KickOffThemGameStateEvaluation.cpp + KickOffThemPrepareGameStateEvaluation.cpp + KickOffUsGameStateEvaluation.cpp + KickOffUsOrNormalGameStateEvaluation.cpp + KickOffUsPrepareGameStateEvaluation.cpp + NormalOrFreeKickUsGameStateEvaluation.cpp + NormalPlayGameStateEvaluation.cpp + PenaltyThemGameStateEvaluation.cpp + PenaltyThemPrepareGameStateEvaluation.cpp + PenaltyUsGameStateEvaluation.cpp + PenaltyUsPrepareGameStateEvaluation.cpp + StopGameStateEvaluation.cpp + TimeOutGameStateEvaluation.cpp   global  BallInOurDefenseAreaAndStillGlobalEvaluation.cpp  BallNotInOurDefenseAreaAndStillGlobalEvaluation.cpp @@ -364,20 +367,21 @@   referee_specific  AggressiveStopFormation.cpp  BallPlacementThem.cpp - BallPlacementUs.cpp - DefensiveStopFormation.cpp - FreeKickThem.cpp - FreeKickUsAtGoal.cpp - FreeKickUsPass.cpp - Halt.cpp - KickOffThem.cpp - KickOffThemPrepare.cpp - KickOffUs.cpp - KickOffUsPrepare.cpp - PenaltyThem.cpp - PenaltyThemPrepare.cpp - PenaltyUs.cpp - PenaltyUsPrepare.cpp + BallPlacementUsForceStart.cpp + BallPlacementUsFreeKick.cpp + DefensiveStopFormation.cpp + FreeKickThem.cpp + FreeKickUsAtGoal.cpp + FreeKickUsPass.cpp + Halt.cpp + KickOffThem.cpp + KickOffThemPrepare.cpp + KickOffUs.cpp + KickOffUsPrepare.cpp + PenaltyThem.cpp + PenaltyThemPrepare.cpp + PenaltyUs.cpp + PenaltyUsPrepare.cpp   roles   active  BallPlacer.cpp diff --git a/functions_a.html b/functions_a.html index 2e0d330d3..636744fe9 100644 --- a/functions_a.html +++ b/functions_a.html @@ -115,7 +115,7 @@

    - a -