Question About libpointmatcher vs g2o

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Question About libpointmatcher vs g2o

seanxu112
Hello Mathieu,

I am working on a mobile robot with 2d lidar. It seems like with the lidar data, rtabmap is always trying to do icp. That is exactly what we want, but sometimes it fails to do so after a 2d_pose_estimate, and gives out this warning:

OptimizationG2O.cpp::1061::optimize() Computing marginals:vertex xxx  has negative hessian index (-1). Cannot compute last pose covaraince.

I wonder if this error message is first of all the reason why it does not seem to perform icp. And is this problem going to be solved by libpointmatcher? Since you recommended libpointmatcher when using a lidar, I wonder if this is the reason why.

Sincerely,
Sean
Reply | Threaded
Open this post in threaded view
|

Re: Question About libpointmatcher vs g2o

matlabbe
Administrator
Hi,

This warning is independent of icp, g2o is used for graph optimization. Using libpointmatcher may not remove this warning in your case. There is however no clear answer why marginals cannot be computed sometimes :(.

When libpointmatcher is not installed, ICP is done with the standard approach from the PointCloudLibrary (PCL), which lacks robustness (against outliers) in comparison to libpointmatcher's ICP.

cheers,
Mathieu
Reply | Threaded
Open this post in threaded view
|

Re: Question About libpointmatcher vs g2o

seanxu112
I see. In that case using libpointmatcher would definitely be more ideal in our case. I will try it out soon. Thank you so much for the information!