novatel_span_driver
novatel_span_driver copied to clipboard
Missing covariance for the position estimate
Hi,
thanks for providing this driver. I was testing this driver with a PwrPak7D and I noticed that covariance for x, y and z is zero all the time. As it turns out the covariance is read from the GNSS message but not written into the navsat/odom msg (see inspvax_handler() in novatel_span_driver/src/novatel_span_driver/publisher.py line 185-214).
Basically we need only to add something like:
odom.pose.covariance[0] = pow(inspvax.latitude_std, 2)
--> x covariance
odom.pose.covariance[7] = pow(inspvax.longitude_std, 2)
--> y covariance
odom.pose.covariance[14] = pow(inspvax.altitude_std, 2)
--> z covariance
before publishing odom.
Since UTM coordinates (as far as I understand) have an associated distortion (which depends on x,y), I do not know if we can straight forward convert the standard deviation given in long, lat and altitude into UTM x,y,z.
Does anyone know how to handle this correctly?