task FlywheelSpeedControl() {
	while(true) {
		float spd = isFlywheelOn ? targetFlywheelSpeed : 0;

		setTargetSpeed(ctlrL, spd);
		setTargetSpeed(ctlrR, spd);
		update(ctlrL);
		update(ctlrR);

		delay(30);
	}
}
float
InsideTrackA::get_accel(CarState &cs) {
    setTargetSpeed(cs);
    float Front, max10, max20;

    Front = cs.getTrack(10);
    max10 = max(cs.getTrack(9), cs.getTrack(11));
    max20 = max(cs.getTrack(8), cs.getTrack(12));

    float accel = (cs.getSpeedX() > target_speed ? 0 : (Front+max10+max20)/(3*200));

    if(Front >= 70) accel = 1;

    if(Front <= 20 && cs.getSpeedX() <= 30) accel = 1;  /*Resolve o caso em que o carro está preso com a frente voltada para a borda da pista*/

    //printf("%.0f, %.0f, %.0f --> accel: %.2f\n", Front, max10, max20, accel);

    return accel ;
}
Esempio n. 3
0
void Dribbler::start() {
	setTargetSpeed(-conf->robot.dribblerSpeed);

	stopRequestedTime = -1.0;
}
Esempio n. 4
0
void Dribbler::prime() {
	setTargetSpeed(-conf->robot.dribblerSpeed);
	//setTargetSpeed(-Config::robotDribblerSpeed / 2);

	stopRequestedTime = -1.0;
}