kevin2431 / Traj-LO

[RA-L 2024] In Defense of LiDAR-Only Odometry Using an Effective Continuous-Time Trajectory
MIT License
234 stars 15 forks source link

Loop Closure And Map Saving #3

Closed Omar-Nour closed 2 months ago

Omar-Nour commented 2 months ago

You have done a really amazing job regarding map quality!

But I would like to know if there is a loop closure module as from my tests, it seems that there is no loop closure.

For the map, is there a way to save a generated map in pcd? Also, can i extract the path to be used with evo evaluation tool?

kevin2431 commented 2 months ago

Thanks for your attention. 😄

But I would like to know if there is a loop closure module as from my tests, it seems that there is no loop closure.

Traj-LO is a state estimator without a loop closure module. Since we maintain a local map with a fixed radius, it can be regarded as having implicit loop constraints. Of course, drift in long-term estimation is inevitable; we may plan to add a pose graph module in the future.

For the map, is there a way to save a generated map in pcd? Also, can i extract the path to be used with evo evaluation tool?

Yes, you can save the map. The map saving process is similar to transferring points to the visualizer, so you can use the following code as a reference. It's important to note that measure->points are the raw points, while visData->data are the undistorted points, with the reference coordinates being visData->T_w = pp.first. Just concatenate all undistorted points from each scan to generate a global map. https://github.com/kevin2431/Traj-LO/blob/dc7d2c85f3f14c9b7bb9079f32ea7b964db84276/src/core/odometry.cpp#L131-L142

As for the estimated trajectory, it is already stored in trajectory_, which is a pair of timestamp and its corresponding pose. You can save them to a TXT file when the odometry is finished. https://github.com/kevin2431/Traj-LO/blob/dc7d2c85f3f14c9b7bb9079f32ea7b964db84276/src/core/odometry.cpp#L150-L158

We will update these functions in a future commit.