rodrigojmlourenco / Scout

CycleOurCity goes Mobile - Scout
0 stars 0 forks source link

ISSUE 042501 : InfinitySpeed #7

Closed rodrigojmlourenco closed 9 years ago

rodrigojmlourenco commented 9 years ago

Muitas das amostras de localização estão a ser discartadas na HeuristicsAdmissionControlStage devido à heurística 5. Esta heurística é responsável por discartar amostras, em que dada a localização anterior, a velocidade necessário para viajar entre os dois ponto tem que ser muito elevada.

Esta heurística está actualmente a calcular velocidade infinita, pelo que o problema deve-se ao cálculo dessa velocidade, que ocorre na classe pt.ulisboa.tecnico.cycleourcity.scout.mobilesensing.state.data.Location.

rodrigojmlourenco commented 9 years ago
public float getTraveledSpeed(Location l){
        double distance = getTraveledDistance(l);
        long elapsedTimeSeconds =
                (long) Math.abs(((l.getRealElapsedTime() - this.getRealElapsedTime()) * nanos2Seconds));

        return (float) (distance / elapsedTimeSeconds);
    }

O problema foi resolvido passando a usar o realTimeNanos em vez de timestamp, e fazendo o absoluto do delta temporal.