diff --git a/selfdrive/ui/navd/route_engine.cc b/selfdrive/ui/navd/route_engine.cc index c4ed872e19..09ac84d9a5 100644 --- a/selfdrive/ui/navd/route_engine.cc +++ b/selfdrive/ui/navd/route_engine.cc @@ -131,14 +131,14 @@ void RouteEngine::timerUpdate() { } auto location = (*sm)["liveLocationKalman"].getLiveLocationKalman(); + auto pos = location.getPositionGeodetic(); + auto orientation = location.getCalibratedOrientationNED(); + gps_ok = location.getGpsOK(); - localizer_valid = location.getStatus() == cereal::LiveLocationKalman::Status::VALID; + localizer_valid = (location.getStatus() == cereal::LiveLocationKalman::Status::VALID) && pos.getValid(); if (localizer_valid) { - auto pos = location.getPositionGeodetic(); - auto orientation = location.getCalibratedOrientationNED(); - last_bearing = RAD2DEG(orientation.getValue()[2]); last_position = QMapbox::Coordinate(pos.getValue()[0], pos.getValue()[1]); } diff --git a/selfdrive/ui/qt/maps/map.cc b/selfdrive/ui/qt/maps/map.cc index 6c96edfb3c..1daed310b7 100644 --- a/selfdrive/ui/qt/maps/map.cc +++ b/selfdrive/ui/qt/maps/map.cc @@ -112,13 +112,12 @@ void MapWindow::timerUpdate() { sm->update(0); if (sm->updated("liveLocationKalman")) { auto location = (*sm)["liveLocationKalman"].getLiveLocationKalman(); + auto pos = location.getPositionGeodetic(); + auto orientation = location.getCalibratedOrientationNED(); - localizer_valid = location.getStatus() == cereal::LiveLocationKalman::Status::VALID; + localizer_valid = (location.getStatus() == cereal::LiveLocationKalman::Status::VALID) && pos.getValid(); if (localizer_valid) { - auto pos = location.getPositionGeodetic(); - auto orientation = location.getCalibratedOrientationNED(); - float velocity = location.getVelocityCalibrated().getValue()[0]; float bearing = RAD2DEG(orientation.getValue()[2]); auto coordinate = QMapbox::Coordinate(pos.getValue()[0], pos.getValue()[1]);