protected void act() {
		if(state == -1) {
			doBehavior(new WaitMoveBehavior());
		}
		else if(state == 0) {
			// On cherche a savoir si on es bien sur une ligne.
			if(Robot.getInstance().getEyes().onNoise()) {
				stop("I am not along a line !!");
			}
			else {
				Robot.getInstance().getMotion().getPilot().arcForward(-radiusCalibration * left);
			}
		}
		else if(state == 1) {
			Robot.getInstance().getMotion().getPilot().arcForward(-radiusCalibration * left);
			if(Robot.getInstance().getOdometryPoseProvider().getPose().distanceTo(start.getLocation()) > distance) {
				Geometry.adjustHeading();
				ActionFactory.stopMotion(true);
				stop("End");
			}
				
		}
		else if(state == 2) {
			Robot.getInstance().getMotion().getPilot().arcForward(radiusCalibration * left);
			if(Robot.getInstance().getOdometryPoseProvider().getPose().distanceTo(start.getLocation()) > distance) {
				Geometry.adjustHeading();
				ActionFactory.stopMotion(true);
				stop("End");
			}
		}
		else if(state == 3) {
			Geometry.adjustHeading();
			Geometry.adjustXBump();
			stop("BUMP");
		}
	}