microsoft / lamar-benchmark

Source code for the ECCV 2022 paper "Benchmarking Localization and Mapping for Augmented Reality".
Creative Commons Attribution 4.0 International
385 stars 36 forks source link

Intended specification of covariance in Capture #79

Closed tianyilim closed 2 weeks ago

tianyilim commented 2 weeks ago

Hello!

I would like to also include some covariance information into the trajectory estimates. I see that the header of trajectories.txt is as follows:

# timestamp, device_id, qw, qx, qy, qz, tx, ty, tz, *covar

So far, I haven't seen any specification of how *covar should be specified. Is there a specific way to do so?

For instance, the OpenVINS project reports their trajectories with covariance as:

# timestamp(s) tx ty tz qx qy qz qw Pr11 Pr12 Pr13 Pr22 Pr23 Pr33 Pt11 Pt12 Pt13 Pt22 Pt23 Pt33

Where PrXX make up the covariance of the rotation, PtXX.

sarlinpe commented 2 weeks ago

The Pose class expects a 6x6 covariance, which includes the rotation-translation cross-covariance: https://github.com/microsoft/lamar-benchmark/blob/4a3b2d84a040f2ff57555e31f4723ed0c56dd8d6/scantools/capture/pose.py#L54 IIRC we define it on the right side, e.g. in the camera frame for a world-from-camera transform: https://github.com/microsoft/lamar-benchmark/blob/4a3b2d84a040f2ff57555e31f4723ed0c56dd8d6/scantools/proc/alignment/sequence.py#L395-L397