9 #include <walk_and_kick/wak_common.h>
10 #include <walk_and_kick/wak_config.h>
11 #include <rcup_game_controller/GCData.h>
14 #define DEFAULT_GCFRESH_TIME 5.0f
15 #define DEFAULT_SMOOTHING_TIME 1.0f
16 #define DEFAULT_TIMEOUT_KICKOFF_TYPE 11.0f
19 namespace walk_and_kick
43 bool update(
const rcup_game_controller::GCData& data,
const ros::Time& now);
52 GS_INITIAL = rcup_game_controller::GCData::STATE_INITIAL,
53 GS_READY = rcup_game_controller::GCData::STATE_READY,
54 GS_SET = rcup_game_controller::GCData::STATE_SET,
55 GS_PLAYING = rcup_game_controller::GCData::STATE_PLAYING,
56 GS_FINISHED = rcup_game_controller::GCData::STATE_FINISHED
62 GP_NORMAL = rcup_game_controller::GCData::SECSTATE_NORMAL,
63 GP_PENALTY = rcup_game_controller::GCData::SECSTATE_PENALTYSHOOT,
64 GP_OVERTIME = rcup_game_controller::GCData::SECSTATE_OVERTIME,
65 GP_TIMEOUT = rcup_game_controller::GCData::SECSTATE_TIMEOUT
71 PS_NONE = rcup_game_controller::GCRobotInfo::PENALTY_NONE,
72 PS_BALL_MANIPULATION = rcup_game_controller::GCRobotInfo::PENALTY_BALL_MANIPULATION,
73 PS_PHYSICAL_CONTACT = rcup_game_controller::GCRobotInfo::PENALTY_PHYSICAL_CONTACT,
74 PS_ILLEGAL_ATTACK = rcup_game_controller::GCRobotInfo::PENALTY_ILLEGAL_ATTACK,
75 PS_ILLEGAL_DEFENSE = rcup_game_controller::GCRobotInfo::PENALTY_ILLEGAL_DEFENSE,
76 PS_REQ_PICKUP = rcup_game_controller::GCRobotInfo::PENALTY_REQUEST_FOR_PICKUP,
77 PS_REQ_SERVICE = rcup_game_controller::GCRobotInfo::PENALTY_REQUEST_FOR_SERVICE,
78 PS_REQ_PICKUP_SERVICE = rcup_game_controller::GCRobotInfo::PENALTY_REQUEST_FOR_PICKUP_2_SERVICE,
79 PS_ON_THE_BENCH = rcup_game_controller::GCRobotInfo::PENALTY_SUBSTITUTE,
80 PS_MANUAL = rcup_game_controller::GCRobotInfo::PENALTY_MANUAL
94 unsigned int numNotOnBench;
95 unsigned int numPenalised;
96 unsigned int numPlaying;
104 explicit SmoothTime(
WAKConfig* config) : config(config) { reset(ros::Time()); }
107 void reset(
const ros::Time& now);
110 void setValue(
int timeRemaining,
const ros::Time& timestamp,
const ros::Time& now);
119 ros::Time elapseTime;
123 ros::Time m_rawTimestamp;
133 ros::Time stampExtra;
137 unsigned int playersPerTeam;
140 KickoffType kickoffType;
142 SmoothTime timeRemaining;
143 SmoothTime secondaryTime;
144 SmoothTime timeToBallInPlay;
147 PenaltyState ownPenaltyState;
148 SmoothTime ownPenaltyTimeRemaining;
162 bool baseDataIsFresh(
const ros::Time& now)
const {
return (!stampBase.isZero() && (now - stampBase).toSec() <= (config ? config->gcFreshTime() : DEFAULT_GCFRESH_TIME)); }
163 bool extraDataIsFresh(
const ros::Time& now)
const {
return (!extraOutOfDate && !stampExtra.isZero() && (now - stampExtra).toSec() <= (config ? config->gcFreshTime() : DEFAULT_GCFRESH_TIME)); }
167 plot_msgs::PlotManagerFS* PM;
173 static void updateTeamState(TeamState& team,
const rcup_game_controller::GCTeamInfo& data);
176 ros::Time m_stampStartPlaying;
Configuration struct for the walk and kick node.
Definition: wak_config.h:20
Visualisation marker manager for the walk and kick node.
Definition: wak_vis.h:21
A class that encapsulates all of the game controller input data to the walk and kick node...
Definition: wak_gc_vars.h:29