Радиус поворота неточный робота неточный

#pragma config(StandardModel, "RVW SQUAREBOT")

task main(){
int begindistance = SensorValue[sonarSensor];
while (SensorValue[gyro] < 900){

motor[leftMotor] = 20;
motor[rightMotor] = -20;
}
motor[leftMotor] = 0;
motor[rightMotor] = 0;

SensorValue[leftEncoder] = 0;
SensorValue[rightEncoder] = 0;

while (SensorValue[sonarSensor] > 25){
motor[leftMotor] = 50;
motor[rightMotor] =50;
}

SensorValue[gyro] = 0;

int z = 180 - atan(begindistance/SensorValue[leftEncoder]);
while (SensorValue[gyro] > -z){
motor[leftMotor]  = -31;
motor[rightMotor]  = 31;
}
motor[leftMotor] = 0;
motor[rightMotor] = 0;
}

кстати, начальное расстояние 178, я не знаю, почему робот переворачивается, но я не знаю почему. Я также использую квадратный бот. Я использую программу Robocci. и я использую колышек для начала расстояния.

1 ответ

Решение

Гиродатчик не всегда начинается с 0. Вам нужно сохранить начальное значение в переменной и найти разницу между считанным значением и начальным значением.

Гиросенсор также доступен только для чтения, поэтому это утверждение

SensorValue[gyro] = 0;

не сработает

Другие вопросы по тегам