Dear Stereolabs Support Team,
I am currently working on GNSS-based global localization using ZED SDK 5.0 on a Jetson AGX Orin running JetPack 6.2. I’m feeding GNSS data obtained via GPSD into the SDK for fusion.
Although the GNSS data is accurate, I consistently encounter the following error: Ingest error occurred when ingesting GNSSData: GNSS DATA COVARIANCE MUST VARY
I verified that the covariance values are non-zero and added noise to the covariance fields as recommended in the latest ZED SDK global localization samples. Despite that, the error persists.
To help debug this, I modified my GPSDReader::grabGNSSData()
function to print detailed GNSS output.
std::cout << "currnt_gnss_data: " << current_gnss_data.latitude_std << ", " << current_gnss_data.longitude_std << ", " << current_gnss_data.altitude_std << std::endl;
std::cout << "currnt_gnss_data: " << current_gnss_data.position_covariance[0] << ", " << current_gnss_data.position_covariance[1] << ", " << current_gnss_data.position_covariance[2] << std::endl;
std::cout << "currnt_gnss_data: " << current_gnss_data.position_covariance[3] << ", " << current_gnss_data.position_covariance[4] << ", " << current_gnss_data.position_covariance[5] << std::endl;
std::cout << "currnt_gnss_data: " << current_gnss_data.position_covariance[6] << ", " << current_gnss_data.position_covariance[7] << ", " << current_gnss_data.position_covariance[8] << std::endl;
std::cout << "currnt_gnss_data: " << current_gnss_data.ts.getMicroseconds() << std::endl;
std::cout << "currnt_gnss_data: " << current_gnss_data.gnss_status << ", " << current_gnss_data.gnss_mode << std::endl;
The logs look like this:
currnt_gnss_data: DGNSS, FIX_3D
currnt_gnss_data: 0.001, 0.001, 1
currnt_gnss_data: 0.113569, 0, 0
currnt_gnss_data: 0, 0.113569, 0
currnt_gnss_data: 0, 0, 0.253009
currnt_gnss_data: 1747034141000000
currnt_gnss_data: DGNSS, FIX_3D
Ingest error occurred when ingesting GNSSData: GNSS DATA COVARIANCE MUST VARY
currnt_gnss_data: 0.001, 0.001, 1
currnt_gnss_data: 0.114244, 0, 0
currnt_gnss_data: 0, 0.114244, 0
currnt_gnss_data: 0, 0, 0.255025
currnt_gnss_data: 1747034141200000
currnt_gnss_data: DGNSS, FIX_3D
Ingest error occurred when ingesting GNSSData: GNSS DATA COVARIANCE MUST VARY
currnt_gnss_data: 0.001, 0.001, 1
currnt_gnss_data: 0.114921, 0, 0
currnt_gnss_data: 0, 0.114921, 0
currnt_gnss_data: 0, 0, 0.256036
currnt_gnss_data: 1747034141400000
currnt_gnss_data: DGNSS, FIX_3D
currnt_gnss_data: 0.001, 0.001, 1
currnt_gnss_data: 0.114921, 0, 0
currnt_gnss_data: 0, 0.114921, 0
currnt_gnss_data: 0, 0, 0.256036
currnt_gnss_data: 1747034141400000
currnt_gnss_data: DGNSS, FIX_3D
Ingest error occurred when ingesting GNSSData: GNSS DATA COVARIANCE MUST VARY
currnt_gnss_data: 0.001, 0.001, 1
currnt_gnss_data: 0.114921, 0, 0
currnt_gnss_data: 0, 0.114921, 0
currnt_gnss_data: 0, 0, 0.257049
currnt_gnss_data: 1747034141600000
currnt_gnss_data: DGNSS, FIX_3D
Ingest error occurred when ingesting GNSSData: GNSS DATA COVARIANCE MUST VARY
currnt_gnss_data: 0.001, 0.001, 1
currnt_gnss_data: 0.114921, 0, 0
currnt_gnss_data: 0, 0.114921, 0
currnt_gnss_data: 0, 0, 0.258064
currnt_gnss_data: 1747034141800000
currnt_gnss_data: DGNSS, FIX_3D
currnt_gnss_data: 0.001, 0.001, 1
currnt_gnss_data: 0.114921, 0, 0
currnt_gnss_data: 0, 0.114921, 0
currnt_gnss_data: 0, 0, 0.258064
currnt_gnss_data: 1747034141800000
currnt_gnss_data: DGNSS, FIX_3D
Ingest error occurred when ingesting GNSSData: GNSS DATA COVARIANCE MUST VARY
currnt_gnss_data: 0.001, 0.001, 1
currnt_gnss_data: 0.1156, 0, 0
currnt_gnss_data: 0, 0.1156, 0
currnt_gnss_data: 0, 0, 0.259081
currnt_gnss_data: 1747034142000000
currnt_gnss_data: DGNSS, FIX_3D
Ingest error occurred when ingesting GNSSData: GNSS DATA COVARIANCE MUST VARY
currnt_gnss_data: 0.001, 0.001, 1
currnt_gnss_data: 0.116281, 0, 0
currnt_gnss_data: 0, 0.116281, 0
currnt_gnss_data: 0, 0, 0.2601
currnt_gnss_data: 1747034142200000
currnt_gnss_data: DGNSS, FIX_3D
currnt_gnss_data: 0.001, 0.001, 1
currnt_gnss_data: 0.116281, 0, 0
currnt_gnss_data: 0, 0.116281, 0
currnt_gnss_data: 0, 0, 0.2601
currnt_gnss_data: 1747034142200000
currnt_gnss_data: DGNSS, FIX_3D
Ingest error occurred when ingesting GNSSData: GNSS DATA COVARIANCE MUST VARY
Additionally, I attempted GNSS fusion via the ZED ROS2 wrapper, enabling GNSS fusion in the config file, but encountered the same issue. That’s why I’m now trying to run it outside of ROS entirely.
Is there a specific requirement for covariance variation that I might be missing?
How can I correctly feed GNSS data into the SDK to avoid this ingest error?
My goal is to enhance visual SLAM performance by incorporating GNSS fusion, and any help resolving this would be greatly appreciated.
Best regards,
whypushhh