Skip to content

Commit eedf1bf

Browse files
[pre-commit.ci lite] apply automatic fixes
1 parent 1bdc7fd commit eedf1bf

File tree

6 files changed

+54
-40
lines changed

6 files changed

+54
-40
lines changed

docs/fsm-diagrams.md

+17-1
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,9 @@ classDef terminate fill:white,color:black,font-weight:bold
218218
direction LR
219219
[*] --> DribbleFSM
220220
DribbleFSM --> PivotKickFSM : [shouldKick]\n<i>pivotKick</i>
221-
DribbleFSM --> DribbleFSM : [!shouldKick]\n<i>keepAway</i>
221+
DribbleFSM --> KeepAwayFSM : [!shouldKick]\n<i>keepAway</i>
222+
KeepAwayFSM --> KeepAwayFSM : <i>keepAway</i>
223+
KeepAwayFSM --> DribbleFSM
222224
PivotKickFSM --> PivotKickFSM : <i>pivotKick</i>
223225
PivotKickFSM --> Terminate:::terminate
224226
Terminate:::terminate --> Terminate:::terminate : <i>SET_STOP_PRIMITIVE_ACTION</i>
@@ -342,6 +344,20 @@ Terminate:::terminate --> Terminate:::terminate : [stopDone]\n<i>updateStop</i>
342344
343345
```
344346

347+
## [KeepAwayFSM](/src/software/ai/hl/stp/tactic/keep_away/keep_away_fsm.h)
348+
349+
```mermaid
350+
351+
stateDiagram-v2
352+
classDef terminate fill:white,color:black,font-weight:bold
353+
direction LR
354+
[*] --> DribbleFSM
355+
DribbleFSM --> DribbleFSM : <i>keepAway</i>
356+
DribbleFSM --> Terminate:::terminate
357+
Terminate:::terminate --> Terminate:::terminate : <i>SET_STOP_PRIMITIVE_ACTION</i>
358+
359+
```
360+
345361
## [KickFSM](/src/software/ai/hl/stp/tactic/kick/kick_fsm.h)
346362

347363
```mermaid

src/software/ai/hl/stp/tactic/attacker/attacker_fsm.cpp

+5-7
Original file line numberDiff line numberDiff line change
@@ -42,15 +42,13 @@ void AttackerFSM::pivotKick(const Update& event,
4242

4343

4444
void AttackerFSM::keepAway(const Update& event,
45-
boost::sml::back::process<KeepAwayFSM::Update> processEvent) {
46-
47-
KeepAwayFSM::ControlParams control_params{
48-
.best_pass_so_far = event.control_params.best_pass_so_far
49-
};
45+
boost::sml::back::process<KeepAwayFSM::Update> processEvent)
46+
{
47+
KeepAwayFSM::ControlParams control_params{.best_pass_so_far =
48+
event.control_params.best_pass_so_far};
5049

5150
processEvent(KeepAwayFSM::Update(control_params, event.common));
52-
53-
}
51+
}
5452

5553

5654
bool AttackerFSM::shouldKick(const Update& event)

src/software/ai/hl/stp/tactic/attacker/attacker_fsm.h

+3-4
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
#include "software/ai/evaluation/keep_away.h"
55
#include "software/ai/evaluation/shot.h"
66
#include "software/ai/hl/stp/tactic/chip/chip_fsm.h"
7-
#include "software/ai/hl/stp/tactic/pivot_kick/pivot_kick_fsm.h"
87
#include "software/ai/hl/stp/tactic/keep_away/keep_away_fsm.h"
8+
#include "software/ai/hl/stp/tactic/pivot_kick/pivot_kick_fsm.h"
99
#include "software/ai/hl/stp/tactic/tactic.h"
1010
#include "software/ai/passing/pass.h"
1111

@@ -79,9 +79,8 @@ struct AttackerFSM
7979

8080
return make_transition_table(
8181
*DribbleFSM_S + Update_E[shouldKick_G] / pivotKick_A = PivotKickFSM_S,
82-
DribbleFSM_S + Update_E[!shouldKick_G] / keepAway_A = KeepAwayFSM_S,
83-
KeepAwayFSM_S + Update_E / keepAway_A,
84-
KeepAwayFSM_S = DribbleFSM_S,
82+
DribbleFSM_S + Update_E[!shouldKick_G] / keepAway_A = KeepAwayFSM_S,
83+
KeepAwayFSM_S + Update_E / keepAway_A, KeepAwayFSM_S = DribbleFSM_S,
8584
PivotKickFSM_S + Update_E / pivotKick_A, PivotKickFSM_S = X,
8685
X + Update_E / SET_STOP_PRIMITIVE_ACTION = X);
8786
}

src/software/ai/hl/stp/tactic/attacker/attacker_fsm_test.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ TEST(AttackerFSMTest, test_transitions)
1616
.chip_target = std::nullopt};
1717

1818
TbotsProto::AiConfig ai_config;
19-
FSM<AttackerFSM> fsm{DribbleFSM(ai_config.dribble_tactic_config()), KeepAwayFSM(ai_config),
20-
AttackerFSM(ai_config)};
19+
FSM<AttackerFSM> fsm{DribbleFSM(ai_config.dribble_tactic_config()),
20+
KeepAwayFSM(ai_config), AttackerFSM(ai_config)};
2121
EXPECT_TRUE(fsm.is(boost::sml::state<DribbleFSM>));
2222

2323
// robot far from attacker point

src/software/ai/hl/stp/tactic/attacker/attacker_tactic.cpp

+4-2
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ AttackerTactic::AttackerTactic(TbotsProto::AiConfig ai_config)
1717
for (RobotId id = 0; id < MAX_ROBOT_IDS; id++)
1818
{
1919
fsm_map[id] = std::make_unique<FSM<AttackerFSM>>(
20-
DribbleFSM(ai_config.dribble_tactic_config()), KeepAwayFSM(ai_config), AttackerFSM(ai_config));
20+
DribbleFSM(ai_config.dribble_tactic_config()), KeepAwayFSM(ai_config),
21+
AttackerFSM(ai_config));
2122
}
2223
}
2324

@@ -44,7 +45,8 @@ void AttackerTactic::updatePrimitive(const TacticUpdate& tactic_update, bool res
4445
if (reset_fsm)
4546
{
4647
fsm_map[tactic_update.robot.id()] = std::make_unique<FSM<AttackerFSM>>(
47-
DribbleFSM(ai_config.dribble_tactic_config()), KeepAwayFSM(ai_config), AttackerFSM(ai_config));
48+
DribbleFSM(ai_config.dribble_tactic_config()), KeepAwayFSM(ai_config),
49+
AttackerFSM(ai_config));
4850
}
4951

5052
std::optional<Shot> shot = calcBestShotOnGoal(

src/software/ai/hl/stp/tactic/keep_away/keep_away_fsm.h

+23-24
Original file line numberDiff line numberDiff line change
@@ -7,41 +7,40 @@
77
struct KeepAwayFSM
88
{
99
/**
10-
* Constructor for KeepAwayFSM
11-
*
12-
* @param ai_config The config to fetch parameters from
13-
*/
14-
explicit KeepAwayFSM(const TbotsProto::AiConfig& ai_config) : ai_config(ai_config) {};
10+
* Constructor for KeepAwayFSM
11+
*
12+
* @param ai_config The config to fetch parameters from
13+
*/
14+
explicit KeepAwayFSM(const TbotsProto::AiConfig& ai_config) : ai_config(ai_config){};
1515

1616
struct ControlParams
1717
{
18-
std::optional<Pass> best_pass_so_far;
18+
std::optional<Pass> best_pass_so_far;
1919
};
2020

2121
DEFINE_TACTIC_UPDATE_STRUCT_WITH_CONTROL_AND_COMMON_PARAMS
2222

2323
/**
24-
* Action that updates the DribbleFSM to keep the ball away
25-
*
26-
* @param event AttackerFSM::Update event
27-
* @param processEvent processes the DribbleFSM::Update
28-
*/
24+
* Action that updates the DribbleFSM to keep the ball away
25+
*
26+
* @param event AttackerFSM::Update event
27+
* @param processEvent processes the DribbleFSM::Update
28+
*/
2929
void keepAway(const Update& event,
3030
boost::sml::back::process<DribbleFSM::Update> processEvent);
3131

32-
auto operator ()() {
33-
using namespace boost:: sml;
34-
DEFINE_SML_EVENT(Update)
35-
DEFINE_SML_STATE(DribbleFSM)
36-
DEFINE_SML_SUB_FSM_UPDATE_ACTION(keepAway, DribbleFSM)
37-
38-
return make_transition_table(
39-
*DribbleFSM_S + Update_E / keepAway_A,
40-
DribbleFSM_S = X,
41-
X + Update_E / SET_STOP_PRIMITIVE_ACTION = X
42-
);
32+
auto operator()()
33+
{
34+
using namespace boost::sml;
35+
DEFINE_SML_EVENT(Update)
36+
DEFINE_SML_STATE(DribbleFSM)
37+
DEFINE_SML_SUB_FSM_UPDATE_ACTION(keepAway, DribbleFSM)
38+
39+
return make_transition_table(*DribbleFSM_S + Update_E / keepAway_A,
40+
DribbleFSM_S = X,
41+
X + Update_E / SET_STOP_PRIMITIVE_ACTION = X);
4342
}
4443

45-
private:
46-
TbotsProto::AiConfig ai_config;
44+
private:
45+
TbotsProto::AiConfig ai_config;
4746
};

0 commit comments

Comments
 (0)