commaai / laika

Simple Python GNSS processing library

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

read_raw_ublox C1C observable std calculation

giovannix opened this issue · comments

Could you please explain why in the read_raw_ublox function of raw_gnss.py you calculate the C1C standard deviation according to the transcript below?

observables_std['C1C'] = np.sqrt(i.pseudorangeStdev)*10

Why not just use i.pseudorangeStdev?

Best regards,
Giovanni.

Ah there are actually 2 effects here. Firstly experimentally I found the reported std behaves exactly like a variance. I suspect this is just a bug in the ublox module.

The factor 10 is added to make the output standard deviations of an optimizer be closer to realistic value. The error is temporally correlated so if you input the normal std at 10Hz into a filter it will generally become too certain. But really that adjustment should belong in the filter, not here.

Thanks, Harald.

And about the D1C std, some explanation about this value 1:

observables_std['D1C'] = (constants.SPEED_OF_LIGHT / constants.GPS_L1) * i.dopplerStdev * 1

Best regards,
Giovanni.

That's just ugly code, fixed!