carrot/selfdrive/locationd/models/gnss_helpers.py
Vehicle Researcher b2f2dabe71 openpilot v0.9.5 release
date: 2023-11-17T23:53:40
master commit: d3aad9ca4601ae0a448ed971c1cd151c7c1eb690
2023-11-17 23:53:40 +00:00

36 lines
1018 B
Python

import numpy as np
# source: GNSSMeasurement (https://github.com/commaai/laika/blob/master/laika/raw_gnss.py)
class RawGNSSMeasurementIndices:
PRN = 0
RECV_TIME_WEEK = 1
RECV_TIME_SEC = 2
GLONASS_FREQ = 3
PR = 4
PR_STD = 5
PRR = 6
PRR_STD = 7
SAT_POS = slice(8, 11)
SAT_VEL = slice(11, 14)
def parse_prr(m):
sat_pos_vel_i = np.concatenate((m[RawGNSSMeasurementIndices.SAT_POS],
m[RawGNSSMeasurementIndices.SAT_VEL]))
R_i = np.atleast_2d(m[RawGNSSMeasurementIndices.PRR_STD]**2)
z_i = m[RawGNSSMeasurementIndices.PRR]
return z_i, R_i, sat_pos_vel_i
def parse_pr(m):
pseudorange = m[RawGNSSMeasurementIndices.PR]
pseudorange_stdev = m[RawGNSSMeasurementIndices.PR_STD]
sat_pos_freq_i = np.concatenate((m[RawGNSSMeasurementIndices.SAT_POS],
np.array([m[RawGNSSMeasurementIndices.GLONASS_FREQ]])))
z_i = np.atleast_1d(pseudorange)
R_i = np.atleast_2d(pseudorange_stdev**2)
return z_i, R_i, sat_pos_freq_i