minwoo0611 / MA-LIO

Asynchronous Multiple LiDAR-Inertial Odometry using Point-wise Inter-LiDAR Uncertainty Propagation
GNU General Public License v2.0
287 stars 36 forks source link

compoundPoseWithCov() seems to be ineffective #17

Closed Liansheng-Wang closed 6 months ago

Liansheng-Wang commented 6 months ago

In the code laserMapping.cpp, it seems that the functions compoundPoseWithCov() and compoundInvPoseWithCov() have not updated any cov. The calculated result only gave a temporary variable, is it because I didn't understand the logic of the code? Can you tell me about the calculation logic here? Thanks so much.

minwoo0611 commented 6 months ago

Hello @Liansheng-Wang,

Thank you for reaching out with your question regarding the functions compoundPoseWithCov() and compoundInvPoseWithCov() in laserMapping.cpp. I appreciate your attention to the details in the code.

From your query, it seems you are referring to these specific lines: https://github.com/minwoo0611/MA-LIO/blob/b911ad69c3a8bf43133333e8913d0d42cb5dabba/MA_LIO/src/laserMapping.cpp#L1040-L1042

In the original code, the line was:

pose_unc[num].push_back(kf.lidar_uncertainty[num][i]);

You've correctly identified an issue. The intention was to update the pose_unc[num] with the calculated pose_point resulting from the compoundPoseWithCov() and compoundInvPoseWithCov() functions. However, the initial implementation mistakenly did not update the covariance values as expected.

I've now revised the code to correctly save the pose_point, including its covariance, into pose_unc[num]. This should resolve the issue you observed where the covariance wasn't being updated as it should have been.

If your question pertains to a different aspect or if there's anything else unclear about the calculation logic, please feel free to add further comments. Again, thank you for pointing out this issue!

Liansheng-Wang commented 6 months ago

Thank you for your reply, and also for the project you have open-sourced.