Reference Trajectories

Accurate poses relative to the TLS map

These poses are in ref_trajs/seqname/tls_T_xt32.txt. We generate the reference poses using precise TLS point clouds, similar to Ramezani et al., 2020. But instead of frame-wise ICP, we sequentially align the undistorted lidar frames to the TLS map using a LIO method.

A total of 93 TLS scans were captured by a Leica RTC360 scanner on a sunny day, covering the starlake and the starlake tower routes. In capturing these scans, we ensured sufficient overlap between consecutive scans, with a mean distance of 28.2 m between consecutive scans. These scans were first processed using the Cyclone Register 360 program, with manually identified additional loop constraints between some scans. The TLS scan registration results were further refined by point-to-plane ICP in Open3D and regularized by SE(3) pose graph optimization with uniform weights while considering the two loops within these scans. The pairwise registration results were inspected by three individuals over approximately 10 rounds to ensure proper pairwise matching. The position accuracy of the TLS pairwise registration is expected to be within 5 cm. The final TLS map was created by stitching together these 93 scans.

lioloc_accuracy rig

For the 20231109/3 sequence, positions of lidar frames relative to the TLS map obtained through forward and backward processing using the LIO method in localization mode. By associating forward and backward poses with a time tolerance 0.015 s, we obtain the RMS position error 5.08 cm, and the RMS orientation error 0.45 degrees.

Note

For large-scale sequences, since the TLS map only covers the beginning and end parts of the sequence,we generate the reference trajectory only for the beginning and end subsequences within the TLS coverage, as done in TUM-VI Schubert et al., 2018.

GNSS/INS poses from the X36D

These poses in ref_trajs/seqname/utm50r_T_x36dimu.txt are directly extracted from the UDP packets of the X36D real-time output.

Note

These poses may suffer from significant error in z direction up to a few meters due to GNSS outages.

Full trajectories by PGO

These poses are in full_trajs/seqname/utm50r_T_xt32.txt.

The PGO trajectories are generated by fusing KISS-ICP odometry, FAST-LIO TLS localization, GNSS/INS trajectory, and X36D IMU preintegrated factors, in a least squares problem solved by ceres solver. We used cauchy loss for KISS-ICP relative odometry, and GNSS/INS abs observations, because a. the KISS-ICP suffers large drift in tunnels due to aliasing, b. the GNSS suffers from outages. For the Aug 1 road sequences, 20240116/data2 and 20240123/data2, I manually added a couple of close z constraints, which enforces that the points should have close height, like a naive loop closure.

Quality check

To see how the PGO works, we compare the two trajectories for the two above sequences. They are the most challenging seqs because of the GNSS outage in the long tunnel. From the horizontal traj profile

horizontal traj profile

and the vertical traj profile

vertical traj profile,

we see that horizontally the PGO trajectories are accurate within 0.15 m, but vertically they are only accurate within 1 meter (a bit conservative to be safe).

More details can be found in full_trajs/readme.md.

References

  • Ramezani, M., Palieri, M., Thakker, R., Carlone, L., & Agha-Mohammadi, A. (2020). "The Newer College Dataset: Precise TLS Point Clouds". Journal of Robotics and Automation, 35(4), 123-134.

  • Schubert, D., et al. (2018). "The TUM VI Benchmark for Evaluating Visual-Inertial Odometry". arXiv preprint arXiv:1804.06120.