mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-02 09:30:25 +08:00
Optimizer: fall back on g2o or gtsam first if one or the other is not available (instead of going TORO). ExportClouds: added ceiling and floor filtering options.
This commit is contained in:
@@ -101,16 +101,16 @@ Optimizer * Optimizer::create(Optimizer::Type type, const ParametersMap & parame
|
||||
}
|
||||
if(!OptimizerG2O::available() && type == Optimizer::kTypeG2O)
|
||||
{
|
||||
if(OptimizerTORO::available())
|
||||
{
|
||||
UWARN("g2o optimizer not available. TORO will be used instead.");
|
||||
type = Optimizer::kTypeTORO;
|
||||
}
|
||||
else if(OptimizerGTSAM::available())
|
||||
if(OptimizerGTSAM::available())
|
||||
{
|
||||
UWARN("g2o optimizer not available. GTSAM will be used instead.");
|
||||
type = Optimizer::kTypeGTSAM;
|
||||
}
|
||||
else if(OptimizerTORO::available())
|
||||
{
|
||||
UWARN("g2o optimizer not available. TORO will be used instead.");
|
||||
type = Optimizer::kTypeTORO;
|
||||
}
|
||||
else if(OptimizerCeres::available())
|
||||
{
|
||||
UWARN("g2o optimizer not available. ceres will be used instead.");
|
||||
@@ -119,16 +119,16 @@ Optimizer * Optimizer::create(Optimizer::Type type, const ParametersMap & parame
|
||||
}
|
||||
if(!OptimizerGTSAM::available() && type == Optimizer::kTypeGTSAM)
|
||||
{
|
||||
if(OptimizerTORO::available())
|
||||
{
|
||||
UWARN("GTSAM optimizer not available. TORO will be used instead.");
|
||||
type = Optimizer::kTypeTORO;
|
||||
}
|
||||
else if(OptimizerG2O::available())
|
||||
if(OptimizerG2O::available())
|
||||
{
|
||||
UWARN("GTSAM optimizer not available. g2o will be used instead.");
|
||||
type = Optimizer::kTypeG2O;
|
||||
}
|
||||
else if(OptimizerTORO::available())
|
||||
{
|
||||
UWARN("GTSAM optimizer not available. TORO will be used instead.");
|
||||
type = Optimizer::kTypeTORO;
|
||||
}
|
||||
else if(OptimizerCeres::available())
|
||||
{
|
||||
UWARN("GTSAM optimizer not available. ceres will be used instead.");
|
||||
@@ -137,26 +137,11 @@ Optimizer * Optimizer::create(Optimizer::Type type, const ParametersMap & parame
|
||||
}
|
||||
if(!OptimizerCVSBA::available() && type == Optimizer::kTypeCVSBA)
|
||||
{
|
||||
if(OptimizerTORO::available())
|
||||
{
|
||||
UWARN("CVSBA optimizer not available. TORO will be used instead.");
|
||||
type = Optimizer::kTypeTORO;
|
||||
}
|
||||
else if(OptimizerGTSAM::available())
|
||||
{
|
||||
UWARN("CVSBA optimizer not available. GTSAM will be used instead.");
|
||||
type = Optimizer::kTypeGTSAM;
|
||||
}
|
||||
else if(OptimizerG2O::available())
|
||||
if(OptimizerG2O::available())
|
||||
{
|
||||
UWARN("CVSBA optimizer not available. g2o will be used instead.");
|
||||
type = Optimizer::kTypeG2O;
|
||||
}
|
||||
else if(OptimizerCeres::available())
|
||||
{
|
||||
UWARN("CVSBA optimizer not available. ceres will be used instead.");
|
||||
type = Optimizer::kTypeCeres;
|
||||
}
|
||||
}
|
||||
if(!OptimizerCeres::available() && type == Optimizer::kTypeCeres)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user