end of rcj 2021

Co-authored-by: u-siri-ous  <sanninosiria@gmail.com>
robocup
EmaMaker 2021-06-27 13:51:58 +02:00
parent 39a3a26249
commit 788684ef0a
2 changed files with 29 additions and 23 deletions

View File

@ -33,16 +33,15 @@ void CornerKick::kick(){
kick_flag = false;
} else if(kick_state == 1){
drive->prepareDrive(0, 0, CURRENT_DATA_READ.ballAngleFix);
if((CURRENT_DATA_READ.ballAngle >= 350 || CURRENT_DATA_READ.ballAngle <= 10) && millis() - kicktimer > 250) kick_state ++;
if((CURRENT_DATA_READ.ballAngle >= 350 || CURRENT_DATA_READ.ballAngle <= 10) && millis() - kicktimer > 1000) kick_state ++;
} else if(kick_state==2){
drive->prepareDrive(0, 60, CURRENT_DATA_READ.ballAngleFix);
drive->prepareDrive(0, 100, 350);
if(ball->isInMouth()){
kick_state++;
if(!kick_flag) {
kick_flag = true;
kicktimer = millis();
}else{
if(kick_flag && millis() - kicktimer > 700){
if(kick_flag && millis() - kicktimer > 425 ){
kick_flag = false;
kick_state++;
kicktimer = millis();
@ -50,15 +49,15 @@ void CornerKick::kick(){
}
}
} else if(kick_state==3){
drive->prepareDrive(0, 150, CURRENT_DATA_READ.ballAngleFix);
if(millis()-kicktimer > 400){
drive->prepareDrive(270, 60,0);
if(millis()-kicktimer > 300){
kick_state++;
}
} else if(kick_state==4){
if(((PositionSysCamera*)ps)->isAtDistanceFrom(0, -28, 5)) {
if(((PositionSysCamera*)ps)->isAtDistanceFrom(1, -28, 2)) {
kick_state++;
kicktimer = millis();
}else (((PositionSysCamera*)ps)->setMoveSetpoints(0, -28));
}else (((PositionSysCamera*)ps)->setMoveSetpoints(1, -28));
} else if(kick_state == 5){
drive->prepareDrive(0,0,0);
bt->can_send = true;

View File

@ -17,22 +17,29 @@ void CornerKick2::realPlay() {
tone(BUZZER, 320, 250);
timer = millis();
state=1;
ball_catch_state = 0;
ball_catch_tilt = 0;
spinner_state = 0;
spinner_tilt = 0;
ball_catch_flag = false;
spinner_flag = false;
}
if(state == 1){
drive->prepareDrive(265, 50, 0);
if(CURRENT_DATA_READ.bSeen && millis() - timer > 500) {
if(CURRENT_DATA_READ.bSeen && millis() - timer > 1000) {
state ++;
timer = millis();
}
}else if(state == 2){
drive->prepareDrive(315, 50, 0);
if(millis() - timer > 200) state++;
if(millis() - timer > 400) state++;
}else if(state == 3){
catchBall();
}else if(state == 4){
spinner(0);
spinner(-5);
}else if(state == 5){
drive->stopAll();
drive->prepareDrive(0,0,0);
}
}
@ -59,8 +66,8 @@ void CornerKick2::catchBall(){
ball_catch_tilt = CURRENT_DATA_READ.IMUAngle;
}
}else if(ball_catch_state == 1){
if(ball_catch_tilt > 180) ball_catch_tilt += 0.01;
else if(ball_catch_tilt <= 180) ball_catch_tilt -= 0.01;
if(ball_catch_tilt > 180) ball_catch_tilt += 0.0075;
else if(ball_catch_tilt <= 180) ball_catch_tilt -= 0.0075;
drive->prepareDrive(0,0,ball_catch_tilt);
@ -90,7 +97,7 @@ void CornerKick2::spinner(int targetx){
// if(targetx >= 0) spotx = targetx-CK2_SPINNER_OVERHEAD;
// else spotx = targetx+CK2_SPINNER_OVERHEAD;
if(((PositionSysCamera*)ps)->isInTheVicinityOf(spotx, 0)) {
if(((PositionSysCamera*)ps)->isInTheVicinityOf(spotx, -1)) {
if( !spinner_flag){
spinner_flag = true;
@ -103,19 +110,19 @@ void CornerKick2::spinner(int targetx){
spinner_tilt = CURRENT_DATA_READ.IMUAngle;
}
if(targetx >= 0) {
tilt1 = -0.01;
// if(targetx >= 0) {
tilt1 = -0.0075;
tilt2 = 0.55;
limitx = 360-CK2_KICK_LIMIT_TILT1;
}else{
tilt1 = 0.01;
tilt2 = -0.55;
// }else{
// tilt1 = 0.01;
// tilt2 = -0.55;
limitx = CK2_KICK_LIMIT_TILT1;
}
// limitx = CK2_KICK_LIMIT_TILT1;
// }
}else ((PositionSysCamera*)ps)->setMoveSetpoints(spotx, 0);
}else ((PositionSysCamera*)ps)->setMoveSetpoints(spotx, -1);
}else if(spinner_state == 2){
roller->speed(roller->MAX);