"libpointmatcher has failed

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

"libpointmatcher has failed

Masoumeh
hi everyone,

I am working with the simulation environment, i have received an error, would you please help me that how to fix it?

error.png

[ WARN] (2021-05-25 16:06:46.003) OdometryF2M.cpp:529::computeTransform() Registration failed: "libpointmatcher has failed: limit out of bounds: rot: 0.0127313/0.78 tr: 0.329964/0.2" (guess=xyz=-4.094911,-52.946735,-0.052915 rpy=-0.010397,0.002340,1.785476)


thanks
Reply | Threaded
Open this post in threaded view
|

Re: "libpointmatcher has failed

matlabbe
Administrator
Hi,

you can tune Icp/MaxTranslation and Icp/MaxRotation. Those are limits in case ICP does a very bad convergence.
Reply | Threaded
Open this post in threaded view
|

Re: "libpointmatcher has failed

Masoumeh
Dear Mattieu

again I have this warning, as you mentioned I should tune the following two parameters, and as I checked now they are set as:

RTABMAP_PARAM(Icp, MaxTranslation,            float, 0.2,   "Maximum ICP translation correction accepted (m).");
RTABMAP_PARAM(Icp, MaxRotation,               float, 0.78,  "Maximum ICP rotation correction accepted (rad).");


How much should i change them?
Reply | Threaded
Open this post in threaded view
|

Re: "libpointmatcher has failed

matlabbe
Administrator
Hi,

From the error message:
libpointmatcher has failed: limit out of bounds: rot: 0.0127313/0.78 tr: 0.329964/0.2
The actual translation estimated by ICP is 32 cm, try with Icp/MaxTranslation=0.4
Reply | Threaded
Open this post in threaded view
|

Re: "libpointmatcher has failed

Masoumeh
Hi Mattieu,

I have a big issue with this icp, i have increased the Icp/MaxTranslation to 0.4 and even to 0.6, but again i have this error.
when I run rtabmap, and send the goals to the move-base, it is fine for the first minutes, but after a few minutes rtabmap fails becasue of this error, and makes the other files which are using icp-odom, fail as well.

[ WARN] [1634039493.347906000]: Could not get transform from icp_odom to base_link after 0.200000 seconds (for stamp=1634039491.368917)! Error="Lookup would require extrapolation into the future.  Requested time 1634039491.368917465 but the latest data is at time 1634039382.535105467, when looking up transform from frame [base_link] to frame [icp_odom]. canTransform returned after 0.202121 timeout was 0.2.".
[ WARN] (2021-10-12 12:51:33.409) OdometryF2M.cpp:529::computeTransform() Registration failed: "libpointmatcher has failed: ErrorMnimizer: no point to minimize" (guess=xyz=18.544451,50.635197,0.000000 rpy=0.000000,0.000000,-0.827829)

libpointmatcher-error.png

and this is the output of my rtabmap --version:

masoumeh@masoumeh-ThinkPad-T490s:~/catkin_ws$ rtabmap --version
RTAB-Map:               0.20.7
PCL:                     1.7.2
With VTK:                6.2.0
OpenCV:              3.3.1-dev
With OpenCV xfeatures2d:  true
With OpenCV nonfree:      true
With ORB OcTree:          true
With SuperPoint Torch:   false
With Python3:            false
With FastCV:             false
With Madgwick:            true
With TORO:                true
With g2o:                 true
With GTSAM:              false
With Vertigo:             true
With CVSBA:              false
With Ceres:              false
With OpenNI2:            false
With Freenect:            true
With Freenect2:          false
With K4W2:               false
With K4A:                false
With DC1394:             false
With FlyCapture2:        false
With ZED:                false
With RealSense:          false
With RealSense SLAM:     false
With RealSense2:         false
With MYNT EYE S:         false
With libpointmatcher:    false
With octomap:             true
With cpu-tsdf:           false
With open chisel:        false
With Alice Vision:       false
With LOAM:               false
With FOVIS:              false
With Viso2:              false
With DVO:                false
With ORB_SLAM2:          false
With OKVIS:              false
With MSCKF_VIO:          false
With VINS-Fusion:        false


Would you please guide me what should i do to solve this problem?
Reply | Threaded
Open this post in threaded view
|

Re: "libpointmatcher has failed

matlabbe
Administrator
The log warnings show that odometry is lost. Look in the log the first time odometry started to get lost to see the original issue.
Reply | Threaded
Open this post in threaded view
|

Re: "libpointmatcher has failed

Masoumeh
dear Mattieu,

this is the first time that icp-odometry starts failing:
mainERROR.png

and would you please mention what is the topic which generated by icp_odometry?
I have a topic /rtabmap/odom. is this the one which generated by icp?

thanks
Reply | Threaded
Open this post in threaded view
|

Re: "libpointmatcher has failed

matlabbe
Administrator
Hi,
you can increase Icp/MaxTranslation (default 0.2) if the robot is moving fast or lidar frequency is low. This is the maximum icp correction accepted. This limit helps to reject very bad ICP convergences, but should be adjusted based on the speed of the robot and lidar frequency. For example, with a car driving up to 100 km/h and a lidar rotating at 10 Hz, you may increase it to 3 meters, as the biggest possible ICP translation would be 2.78 meters between two consecutive scans.