54 lines
1.3 KiB
C
54 lines
1.3 KiB
C
|
#pragma once
|
||
|
|
||
|
#include "sensors/data_source_camera_vshapedmirror.h"
|
||
|
#include "behaviour_control/complementary_filter.h"
|
||
|
#include "sensors/sensors.h"
|
||
|
#include "strategy_roles/game.h"
|
||
|
|
||
|
#define RR_ATTACK_DISTANCE 110
|
||
|
#define RR_TILT_STOP_DISTANCE 140
|
||
|
#define RR_PLUSANG 55
|
||
|
#define RR_PLUSANG_VISIONCONE 10
|
||
|
|
||
|
// There needs to be a little bit of space between the target point and the spot to be in
|
||
|
#define RR_SPINNER_OVERHEAD 7
|
||
|
|
||
|
#define RR_KICK_LIMIT_TILT1 135
|
||
|
#define RR_KICK_LIMIT_MAX 335
|
||
|
#define RR_KICK_LIMIT_MIN 25
|
||
|
|
||
|
#define ROUND_ROBIN_VEL 30
|
||
|
#define RR_YCOORD -8
|
||
|
#define RR_ROLLER_SPD 1500
|
||
|
|
||
|
class RoundRobin : public Game{
|
||
|
|
||
|
public:
|
||
|
RoundRobin();
|
||
|
RoundRobin(LineSystem* ls, PositionSystem* ps);
|
||
|
|
||
|
private:
|
||
|
void realPlay() override;
|
||
|
void init() override;
|
||
|
void catchBall();
|
||
|
void spinner(int);
|
||
|
|
||
|
private:
|
||
|
int atk_speed, atk_direction, atk_tilt;
|
||
|
float cstorc;
|
||
|
bool gotta_tilt;
|
||
|
ComplementaryFilter* ballAngleFilter;
|
||
|
|
||
|
float tilt1 = 0;
|
||
|
float tilt2 = 0;
|
||
|
int spinner_state = 0;
|
||
|
bool spinner_flag = false;
|
||
|
unsigned long spinner_timer = 0;
|
||
|
float spinner_tilt = 0;
|
||
|
int ball_catch_state = 0;
|
||
|
bool ball_catch_flag = false;
|
||
|
unsigned long ball_catch_timer = 0;
|
||
|
float ball_catch_tilt = 0;
|
||
|
int limitx = 0;
|
||
|
};
|