Added RGBD/ProximityGlobalScanMap for proximity detection using the whole scan map in localization mode. Added Icp RMS statistics (CCCorelib). Updated how localization is corrected with gravity when available (simply use roll and pitch of current gravity constraint).

This commit is contained in:
matlabbe
2021-06-23 17:13:07 -04:00
parent dddf6378ae
commit 11e9837b82
18 changed files with 522 additions and 161 deletions

View File

@@ -43,6 +43,7 @@ rtabmap::Transform icpCC(
double finalOverlapRatio = 0.85,
bool filterOutFarthestPoints = false,
double maxFinalRMS = 0.2,
float * finalRMS = 0,
std::string * errorMsg = 0)
{
UDEBUG("maxIterations=%d", maxIterations);
@@ -119,6 +120,11 @@ rtabmap::Transform icpCC(
UDEBUG("CC Final error: %f . Finall Pointcount: %d", finalError, finalPointCount);
UDEBUG("CC ICP success Trans: %f %f %f", transform.T.x,transform.T.y,transform.T.z);
if(finalRMS)
{
*finalRMS = (float)finalError;
}
if(result != 1)
{
std::string msg = uFormat("CCCoreLib has failed: Rejecting transform as result %d !=1", result);
@@ -131,9 +137,9 @@ rtabmap::Transform icpCC(
icpTransformation.setNull();
return icpTransformation;
}
else if(finalPointCount <10)
else if(finalPointCount < 50)
{
std::string msg = uFormat("CCCoreLib has failed: Rejecting transform as finalPointCount %d < 10 ", finalPointCount);
std::string msg = uFormat("CCCoreLib has failed: Rejecting transform as finalPointCount %d < 50 ", finalPointCount);
UDEBUG(msg.c_str());
if(errorMsg)
{