@Override public void updateService(boolean forced) { // updatePosition( new RobotPosition( pos, angle.getTheta(), speed.getSpeed(), angularRate.getAngularRate(), 0.0f)); }
@Override public void gotNewData(DeadReckoning source) { Position curDrPos = source.getCurrentPosition(); PolarVector vector = new PolarVector(lastDrPos, curDrPos); lastDrPos = curDrPos; vector.setTheta(angle.getTheta()); // Set new speed speed.setSpeed(source.getCurrentSpeed()); speed.setTimeStamp(curDrPos.getTimeStamp()); // Get new DeadReckoning theta (used to calculate GyroBias) drAngle.setTheta(source.getCurrentTheta()); drAngle.setTimeStamp(curDrPos.getTimeStamp()); // Theta Bias thetaBias = Math2.angularIncrement(drAngle.getTheta(), angle.getTheta()); deadReckoning.setThetaBias(thetaBias); // Set new position base on encoder displacement pos.add(vector); pos.setTimeStamp(curDrPos.getTimeStamp()); // // System.out.println(vector.toString() + "\t\t" + lastDrPos.toString() + "\t\t" + // curDrPos.toString() + "\n"); }