NimbRo ROS Soccer Package
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
beh_dribble_ball.h
1 // Walk and kick behaviour state: Dribble ball
2 // Author: Philipp Allgeuer <pallgeuer@ais.uni-bonn.de>
3 
4  // Ensure header is only included once
5 #ifndef BEH_DRIBBLE_BALL_H
6 #define BEH_DRIBBLE_BALL_H
7 
8 // Includes
9 #include <walk_and_kick/wak_beh_state.h>
10 #include <walk_and_kick/beh_states/gaze_beh_look_for_ball.h>
11 
12 // Walk and kick namespace
13 namespace walk_and_kick
14 {
21  {
22  public:
23  // Constructor
24  BehDribbleBall(WAKConfig& config, const SensorVars& SV, const WAKBehShared& WBS, const WAKGameShared& WGS, int ID);
25 
26  // Execute function
27  virtual void execute(ActuatorVars& AV, const ActuatorVars& lastAV, bool justActivated);
28 
29  // Dribble check functions
30  bool okToDribble() const;
31  bool stillOkToDribble() const;
32 
33  // Helper functions
34  float minBallTargetWedge() const;
35  float calcArcTheta(const Vec2f& vector) const;
36  float calcPathAngle(bool useRightFoot, const Vec2f& robotE, Vec2f& robotToBehindBallE, Vec2f& robotToPathTargetE) const;
37  float calcPathInterpFactor(const Vec2f& robotToBehindBallE, float localPathAngle) const;
38  float calcWalkAngle(const Vec2f& robotToBehindBallE, float interpFactor, float localPathAngle, float pathAngle) const;
39 
40  protected:
41  // Handle activation function
42  virtual void handleActivation(bool nowActive);
43 
44  private:
45  // State variables
46  bool m_useRightFoot;
47  TheWorm m_changeToRightFoot;
48  };
49 }
50 
51 #endif
52 // EOF
Configuration struct for the walk and kick node.
Definition: wak_config.h:20
An interface class for encapsulating all of the ROS input data to the walk and kick node...
Definition: wak_sensor_vars.h:29
A class that shares the required walk and kick variables amongst the game state classes.
Definition: wak_game_shared.h:31
A walk and kick behaviour state that dribbles the ball towards a target.
Definition: beh_dribble_ball.h:20
A walk and kick gaze behaviour state that looks for the ball.
Definition: gaze_beh_look_for_ball.h:20
A class that shares the required walk and kick variables amongst the behaviour state classes...
Definition: wak_beh_shared.h:48
A class that implements the worm, for making a live decision between two opposites.
Definition: wak_utils.h:83
An interface class for encapsulating all of the data that the walk and kick behaviour states should c...
Definition: wak_actuator_vars.h:22