wh200720041 / floam

Fast LOAM: Fast and Optimized Lidar Odometry And Mapping for indoor/outdoor localization IROS 2021
Other
1.07k stars 278 forks source link

question about optimization #15

Open AlexSeongJu-sr opened 3 years ago

AlexSeongJu-sr commented 3 years ago

Hi. For the first, thank you for sharing ur excellent work to us. By the way, I'm confused with some implementation.

As far as I know, LOAM algorithms uses 2 optimizations - 1 for lidar odometry, the other for lidar mapping. but as I look through ur code, I see just 1 optimization in 'odomEstimationClass.cpp in OdomEstimationClass::updatePointsToMap' function. and from the name of kdtree - kdtreeSurfMap, I guess it is for lidar-mapping algorithm. Where is the other lidar-odometry algorithm gone? Am I missing something?

Another question : in function 'updatePointsToMap' in odomEstimationClass.cpp, there is a variable odom_prediction. Eigen::Isometry3d odom_prediction = odom (last_odom.inverse() odom);
What does this mean? is it predicting the next odometry by previous displacement? is it in the original paper?

Thank you.

wh200720041 commented 3 years ago

Hi @djflstkddk:

Thanks for posting questions here.

The first optimization is often used for distortion compensation. However, it is not significant for vehicles moving in low speed. To reduce the computational cost, it is removed.

the second question, it is a linear motion prediction of the next pose, which helps to speed up pose convergence. It is different from the original paper.

gitouni commented 1 year ago

Hi @djflstkddk:

Thanks for posting questions here.

The first optimization is often used for distortion compensation. However, it is not significant for vehicles moving in low speed. To reduce the computational cost, it is removed.

the second question, it is a linear motion prediction of the next pose, which helps to speed up pose convergence. It is different from the original paper.

Many thanks for your answer. It is true that removing motion compensation saves computational time. But it would be a better way to add this function as an alternative option and let the user to choose whether to use it.