Program: 42673
Project: 42673
Buggy source:
/** 
 * the main method
 * @param args args
 */
public static void main(String[] args){
  double currentHeading=0;
  final double latErrorFinal=2 / 111131.745;
  final double lonErrorFinal=2 / 78846.81;
  Map m;
  try {
    RobobuggyConfigFile.loadConfigFile();
    JFrame f=new JFrame("String_Node_Str");
    f.setBounds(0,0,500,500);
    m=new Map();
    m.setBounds(0,0,500,500);
    m.setVisible(true);
    f.add(m);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true);
    ArrayList<GpsMeasurement> wayPoints=WayPointUtil.createWayPointsFromWaypointList(RobobuggyConfigFile.getWaypointSourceLogFile());
    for (int i=0; i < wayPoints.size(); i++) {
      m.addPointsToMapTree(Color.BLUE,new LocTuple(wayPoints.get(i).getLatitude(),wayPoints.get(i).getLongitude()));
      m.repaint();
    }
    WayPointFollowerPlanner planer=new WayPointFollowerPlanner(wayPoints);
    for (int i=1; i < wayPoints.size(); i++) {
      for (double latError=-latErrorFinal; latError <= latErrorFinal; latError+=5 * latErrorFinal) {
        for (double lonError=-lonErrorFinal; lonError <= lonErrorFinal; lonError+=5 * lonErrorFinal) {
          double lat=wayPoints.get(i).getLatitude() + latError;
          double lon=wayPoints.get(i).getLongitude() + lonError;
          planer.updatePositionEstimate(new GPSPoseMessage(new Date(),lat,lon,currentHeading));
          double angle=Math.PI * planer.getCommandedSteeringAngle() / 180;
          double dlat=wayPoints.get(i).getLatitude() - wayPoints.get(i - 1).getLatitude();
          double dlon=wayPoints.get(i).getLongitude() - wayPoints.get(i - 1).getLongitude();
          currentHeading=Math.toDegrees(Math.atan2(dlat,dlon));
          m.addPointsToMapTree(Color.RED,new LocTuple(lat,lon));
          m.addLineToMap(new LocTuple(lat,lon),angle,Color.RED,false);
          m.addLineToMap(new LocTuple(wayPoints.get(i).getLatitude(),wayPoints.get(i).getLongitude()),currentHeading,Color.YELLOW,false);
          m.repaint();
        }
      }
    }
  }
 catch (  IOException e) {
    e.printStackTrace();
  }
}

Fixed version (ground truth):
/** 
 * the main method
 * @param args args
 */
public static void main(String[] args){
  double currentHeading=0;
  final double latErrorFinal=2 / 111131.745;
  final double lonErrorFinal=2 / 78846.81;
  Map m;
  try {
    RobobuggyConfigFile.loadConfigFile();
    JFrame f=new JFrame("String_Node_Str");
    f.setBounds(0,0,500,500);
    m=new Map();
    m.setBounds(0,0,500,500);
    m.setVisible(true);
    f.add(m);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true);
    ArrayList<GpsMeasurement> wayPoints=WayPointUtil.createWayPointsFromWaypointList(RobobuggyConfigFile.getWaypointSourceLogFile());
    for (int i=0; i < wayPoints.size(); i++) {
      m.addPointsToMapTree(Color.BLUE,new LocTuple(wayPoints.get(i).getLatitude(),wayPoints.get(i).getLongitude()));
      m.repaint();
    }
    WayPointFollowerPlanner planer=new WayPointFollowerPlanner(wayPoints);
    for (int i=1; i < wayPoints.size(); i++) {
      for (double latError=-latErrorFinal; latError <= latErrorFinal; latError+=5 * latErrorFinal) {
        for (double lonError=-lonErrorFinal; lonError <= lonErrorFinal; lonError+=5 * lonErrorFinal) {
          double lat=wayPoints.get(i).getLatitude() + latError;
          double lon=wayPoints.get(i).getLongitude() + lonError;
          planer.updatePositionEstimate(new GPSPoseMessage(new Date(),lat,lon,currentHeading));
          double angle=Math.PI * planer.getCommandedSteeringAngle() / 180;
          m.addPointsToMapTree(Color.RED,new LocTuple(lat,lon));
          m.addLineToMap(new LocTuple(lat,lon),angle,Color.RED,false);
          m.addLineToMap(new LocTuple(wayPoints.get(i).getLatitude(),wayPoints.get(i).getLongitude()),currentHeading,Color.YELLOW,false);
          m.repaint();
        }
      }
    }
  }
 catch (  IOException e) {
    e.printStackTrace();
  }
}