Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Inquiry about running NTU-VIRAL dataset with config_ntu.yaml #6

Open
shenhm516 opened this issue May 28, 2024 · 8 comments
Open

Inquiry about running NTU-VIRAL dataset with config_ntu.yaml #6

shenhm516 opened this issue May 28, 2024 · 8 comments

Comments

@shenhm516
Copy link

Thank you for your excellent open-source lidar odometry.

I evaluated the TRAJ-LO on the NTU-VIRAL dataset with the ./trajlo ../data/config_ntu.yaml, but could not get consistent ATE results with the paper published on RA-L. The ATE is getting from the official evaluation python script from NTU-VIRAL dataset . Could you give me some advice about how to get a consistent ATE with the results illustrated in your paper?
Moreover, the ./trajlo ../data/config_ntu.yaml seems useful for single lidar odometry, but does not work for the multi-lidar odometry. How can I run TRAJ-LO with multiple lidar?

Looking forward to your reply.

@snakehaihai
Copy link

一楼吃瓜

@brytsknguyen
Copy link

*grabs popcorn

@brytsknguyen
Copy link

brytsknguyen commented May 29, 2024

@shenhm516 In SLICT I wrote a mergelidar node. Please check it out here:

https://github.com/brytsknguyen/slict/blob/master/src/MergeLidar.cpp

Not that the output will have the point time stamp in nanosecond relative to the message header time stamp.

Example of how to run the merged lidar with FAST LIO can be found here

https://mcdviral.github.io/SLAMTutorial.html#fast_lio

@shenhm516
Copy link
Author

@shenhm516 In SLICT I wrote a mergelidar node. Please check it out here:

https://github.com/brytsknguyen/slict/blob/master/src/MergeLidar.cpp

Not that the output will have the point time stamp in nanosecond relative to the message header time stamp.

Example of how to run the merged lidar with FAST LIO can be found here

https://mcdviral.github.io/SLAMTutorial.html#fast_lio

Cool!
I have merged two lidar point clouds successfully with the slict_sensorsync node open-sourced in SLICT.
Thank you very much @brytsknguyen .

@snakehaihai
Copy link

And Also don't forget to account for the offset between GT Leica Prism frame and Sensor frame

@shenhm516
Copy link
Author

Hi @snakehaihai,

Thank you for your reminder. The offset between the Leica Prism frame and Sensor frame seems already considered in the evaluation Python script.
image
Please let me know if I have any misunderstanding.

@snakehaihai
Copy link

Thats right. thx

@kevin2431
Copy link
Owner

Thank you for your excellent open-source lidar odometry.

I evaluated the TRAJ-LO on the NTU-VIRAL dataset with the ./trajlo ../data/config_ntu.yaml, but could not get consistent ATE results with the paper published on RA-L. The ATE is getting from the official evaluation python script from NTU-VIRAL dataset . Could you give me some advice about how to get a consistent ATE with the results illustrated in your paper? Moreover, the ./trajlo ../data/config_ntu.yaml seems useful for single lidar odometry, but does not work for the multi-lidar odometry. How can I run TRAJ-LO with multiple lidar?

Looking forward to your reply.

@shenhm516 Sorry for the late reply. I spent the whole June on my graduation road trip in Xinjiang, China, so I didn't respond to this issue immediately. By the way, thanks for the valuable advice from @brytsknguyen and @snakehaihai.

The released code was refactored compared to the original version published in the paper, but the final ATE results should be consistent without significant differences. I used the Python package EVO for the evaluation.

The issue may arise from the frame used for evaluation: LiDAR, body (IMU), or Leica Prism. As @snakehaihai mentioned, you should compensate for the offset between the GT Leica Prism frame and the sensor frame. However, one additional step is needed in our LiDAR-only method. The estimated trajectory in Traj-LO belongs to the LiDAR frame, but the T_Body_Prism in the config file is between the Prism frame and the IMU frame. Therefore, you should transform the trajectory to the IMU frame and then compensate for the offset of the Leica Prism as shown in the following code:

Sophus::SE3d pose_body=config_.T_body_lidar*p.second*config_.T_body_lidar.inverse();
Sophus::SE3d pose_gt=pose_body*config_.T_body_gt;

I have added a pose-saving function in the new commit; you can test it on the NTU-VIRAL dataset. As for the multi-LiDAR odometry, @brytsknguyen has provided a way to merge LiDARs, and I will try my best to update this module in the following commit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants