static void init() throws InterruptedException {
    Sound.beep();
    try {
      File f = new File("CalibrationData.dat");

      FileInputStream is = new FileInputStream(f);
      colors = RescueColors.readObject(is);
      is.close();
      LCD.drawString("File read", 0, 0);
      LCD.drawString("sucessfully", 0, 0);
    } catch (IOException e) {
      LCD.drawString("Error reading", 0, 0);
      LCD.drawString("file", 0, 1);
      Thread.sleep(1000);
      System.exit(-1);
    }
    colors.printToLCD();
    robot = new RescueRobot(colors);
    Button.ENTER.waitForPressAndRelease();

    logger = new MovementLogger(robot);
    Thread t = new Thread(logger);
    t.setDaemon(true);
    t.start();
  }
 public static boolean findline() {
   TachoPilot p = robot.pilot;
   int[] angles = new int[] {30, -30, 60, -60, 90, -90, 0};
   int lastangle = 0;
   for (int angle : angles) {
     p.rotate((lastangle - angle) * 4, true);
     while (p.isMoving()) {
       if (linefound()) {
         Sound.beepSequence();
         p.stop();
         return true;
       }
       Thread.yield();
     }
     p.stop();
     lastangle = angle;
     Delay.msDelay(250);
   }
   return false;
 }