22 DEFINE_TACTIC_UPDATE_STRUCT_WITH_CONTROL_AND_COMMON_PARAMS
56 void shoot(
const Update &event,
57 boost::sml::back::process<KickFSM::Update> processEvent);
66 boost::sml::back::process<DribbleFSM::Update> processEvent);
75 const Update &event, boost::sml::back::process<DribbleFSM::Update> processEvent);
100 using namespace boost::sml;
105 DEFINE_SML_EVENT(Update)
114 return make_transition_table(
116 *DribbleFSM_S + Update_E[!takePenaltyShot_G] / updateApproachKeeper_A,
117 DribbleFSM_S + Update_E[timeOutApproach_G] / shoot_A = KickFSM_S,
118 DribbleFSM_S + Update_E / adjustOrientationForShot_A,
119 DribbleFSM_S = KickFSM_S, KickFSM_S + Update_E / shoot_A, KickFSM_S = X,
120 X + Update_E / SET_STOP_PRIMITIVE_ACTION = X);
124 static constexpr double PENALTY_KICK_POST_OFFSET = 0.03;
125 static constexpr double PENALTY_KICK_SHOT_SPEED = 5.0;
128 static constexpr double PENALTY_KICK_GOALIE_MAX_ACC = 1.5;
129 static constexpr double SSL_VISION_DELAY = 0.30;
134 static constexpr double PENALTY_KICK_MIN_SHOT_X_DISTANCE_FACTOR = 1.0 / 3.0;
140 static const inline Duration PENALTY_FINISH_APPROACH_TIMEOUT =
144 std::optional<Timestamp> complete_approach;
static DEFINE_TACTIC_UPDATE_STRUCT_WITH_CONTROL_AND_COMMON_PARAMS bool evaluatePenaltyShot(std::optional< Robot > enemy_goalie, Field field, Point ball_position, Robot robot)
Definition penalty_kick_fsm.cpp:5