Thunderbots Project
Loading...
Searching...
No Matches
move_tactic.h
1#pragma once
2
3#include "software/ai/hl/stp/tactic/move/move_fsm.h"
4#include "software/ai/hl/stp/tactic/tactic.h"
5
10class MoveTactic : public Tactic
11{
12 public:
16 explicit MoveTactic();
17
32 Point destination, Angle final_orientation,
33 TbotsProto::DribblerMode dribbler_mode = TbotsProto::DribblerMode::OFF,
34 TbotsProto::BallCollisionType ball_collision_type =
35 TbotsProto::BallCollisionType::AVOID,
36 AutoChipOrKick auto_chip_or_kick = {AutoChipOrKickMode::OFF, 0},
37 TbotsProto::MaxAllowedSpeedMode max_allowed_speed_mode =
38 TbotsProto::MaxAllowedSpeedMode::PHYSICAL_LIMIT,
39 TbotsProto::ObstacleAvoidanceMode obstacle_avoidance_mode =
40 TbotsProto::ObstacleAvoidanceMode::AGGRESSIVE);
41
53 void updateControlParams(Point destination, Angle final_orientation,
54 TbotsProto::MaxAllowedSpeedMode max_allowed_speed_mode,
55 TbotsProto::ObstacleAvoidanceMode obstacle_avoidance_mode);
56
57 void accept(TacticVisitor& visitor) const override;
58
59 DEFINE_TACTIC_DONE_AND_GET_FSM_STATE
60
61 private:
62 void updatePrimitive(const TacticUpdate& tactic_update, bool reset_fsm) override;
63
64 std::map<RobotId, std::unique_ptr<FSM<MoveFSM>>> fsm_map;
65
66 MoveFSM::ControlParams control_params;
67};
68
69// Creates duplicates of MoveTactic for various situations
70COPY_TACTIC(PenaltySetupTactic, MoveTactic)
71COPY_TACTIC(MoveGoalieToGoalLineTactic, MoveTactic)
72COPY_TACTIC(PrepareKickoffMoveTactic, MoveTactic)
73COPY_TACTIC(PlaceBallMoveTactic, MoveTactic)
74COPY_TACTIC(AvoidInterferenceTactic, MoveTactic)
Definition angle.h:15
Definition move_tactic.h:11
void accept(TacticVisitor &visitor) const override
Definition move_tactic.cpp:64
void updateControlParams(Point destination, Angle final_orientation, TbotsProto::DribblerMode dribbler_mode=TbotsProto::DribblerMode::OFF, TbotsProto::BallCollisionType ball_collision_type=TbotsProto::BallCollisionType::AVOID, AutoChipOrKick auto_chip_or_kick={AutoChipOrKickMode::OFF, 0}, TbotsProto::MaxAllowedSpeedMode max_allowed_speed_mode=TbotsProto::MaxAllowedSpeedMode::PHYSICAL_LIMIT, TbotsProto::ObstacleAvoidanceMode obstacle_avoidance_mode=TbotsProto::ObstacleAvoidanceMode::AGGRESSIVE)
Definition move_tactic.cpp:23
MoveTactic()
Definition move_tactic.cpp:5
Definition point.h:14
Definition tactic_visitor.h:39
Definition tactic.h:39
Definition primitive_types.h:9
Definition move_fsm.h:15
Definition tactic_fsm.h:16