机器人转弯半径不准确
turning radius is inaccurate of the robot is inaccuarate
#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 程序。我使用钉子作为开始距离。
陀螺仪传感器并不总是从0开始,需要将初始值存入一个变量中,求出读取到的值与初始值的差值。
陀螺传感器也是只读的,所以这个语句
SensorValue[gyro] = 0;
不行。
#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 程序。我使用钉子作为开始距离。
陀螺仪传感器并不总是从0开始,需要将初始值存入一个变量中,求出读取到的值与初始值的差值。
陀螺传感器也是只读的,所以这个语句
SensorValue[gyro] = 0;
不行。