void Update() { float leftLightSensor; float rightLightSensor; if (gaussian) // caso a boolean gaussiana esteja ativada a strenght das rodas irá ser calculada pela função gaussiana //Read light sensor values { leftLightSensor = LeftLD.GetGaussianOutput(); rightLightSensor = RightLD.GetGaussianOutput(); } else // caso a boolean gaussiana NÃO esteja ativada a strenght das rodas irá ser calculada linearmente //sem sofrer alterações da funçao normal //Read light sensor values { leftLightSensor = LeftLD.GetLinearOutput(); rightLightSensor = RightLD.GetLinearOutput(); } //Read obstacle sensor values float leftObstacleSensor = LeftOD.GetLinearOutput(); float rightObstacleSensor = RightOD.GetLinearOutput(); // Calculate target motor values // LightSensors estão ligados cruzados e ObstacleSensor estão ligados diretamente m_LeftWheelSpeed = (rightLightSensor + leftObstacleSensor) * MaxSpeed; m_RightWheelSpeed = (leftLightSensor + rightObstacleSensor) * MaxSpeed; }
void Update() { //Read sensor values float leftSensor = LeftLD.GetGaussianOutput(); float rightSensor = RightLD.GetGaussianOutput(); // strength if (leftSensor < limiarMinimo) { leftSensor = limiarMinimo; } else if (leftSensor > limiarMaximo) { leftSensor = limiarMaximo; } if (rightSensor < limiarMinimo) { rightSensor = limiarMinimo; } else if (rightSensor > limiarMaximo) { rightSensor = limiarMaximo; } // read sensor values - blocks float leftSensorBlock = LeftBD.GetLinearOutput(); float rightSensorBlock = RightBD.GetLinearOutput(); if (leftSensorBlock < limiarMinimo) { leftSensorBlock = limiarMinimo; } else if (leftSensorBlock > limiarMaximo) { leftSensorBlock = limiarMaximo; } if (rightSensorBlock < limiarMinimo) { rightSensorBlock = limiarMinimo; } else if (rightSensorBlock > limiarMaximo) { rightSensorBlock = limiarMaximo; } //Calculate target motor values m_LeftWheelSpeed = ((leftSensor + leftSensorBlock) * MaxSpeed); m_RightWheelSpeed = ((rightSensor + rightSensorBlock) * MaxSpeed); // output if (m_LeftWheelSpeed < limiteInferior) { m_LeftWheelSpeed = limiteInferior; } else if (m_LeftWheelSpeed > limiteSuperior) { m_LeftWheelSpeed = limiteSuperior; } if (m_RightWheelSpeed < limiteInferior) { m_RightWheelSpeed = limiteInferior; } else if (m_RightWheelSpeed > limiteSuperior) { m_RightWheelSpeed = limiteSuperior; } }