This commit is contained in:
matlabbe
2015-11-27 11:10:53 -05:00
parent 27d40dee2b
commit b8307449bd
2 changed files with 11 additions and 10 deletions
+2 -2
View File
@@ -383,7 +383,7 @@ CoreWrapper::CoreWrapper(bool deleteDbOnStart) :
setupCallbacks(subscribeDepth, subscribeScan2d, subscribeScan3d, subscribeStereo, queueSize, stereoApproxSync, depthCameras); setupCallbacks(subscribeDepth, subscribeScan2d, subscribeScan3d, subscribeStereo, queueSize, stereoApproxSync, depthCameras);
int optimizeIterations = 0; int optimizeIterations = 0;
Parameters::parse(parameters_, Parameters::kRGBDOptimizeIterations(), optimizeIterations); Parameters::parse(parameters_, Parameters::kOptimizerIterations(), optimizeIterations);
if(publishTf && optimizeIterations != 0) if(publishTf && optimizeIterations != 0)
{ {
transformThread_ = new boost::thread(boost::bind(&CoreWrapper::publishLoop, this, tfDelay)); transformThread_ = new boost::thread(boost::bind(&CoreWrapper::publishLoop, this, tfDelay));
@@ -391,7 +391,7 @@ CoreWrapper::CoreWrapper(bool deleteDbOnStart) :
else if(publishTf) else if(publishTf)
{ {
UWARN("Graph optimization is disabled (%s=0), the tf between frame \"%s\" and odometry frame will not be published. You can safely ignore this warning if you are using map_optimizer node.", UWARN("Graph optimization is disabled (%s=0), the tf between frame \"%s\" and odometry frame will not be published. You can safely ignore this warning if you are using map_optimizer node.",
Parameters::kRGBDOptimizeIterations().c_str(), mapFrameId_.c_str()); Parameters::kOptimizerIterations().c_str(), mapFrameId_.c_str());
} }
} }
+9 -8
View File
@@ -31,6 +31,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "rtabmap_ros/MsgConversion.h" #include "rtabmap_ros/MsgConversion.h"
#include <rtabmap/core/util3d.h> #include <rtabmap/core/util3d.h>
#include <rtabmap/core/Graph.h> #include <rtabmap/core/Graph.h>
#include <rtabmap/core/Optimizer.h>
#include <rtabmap/core/Parameters.h> #include <rtabmap/core/Parameters.h>
#include <rtabmap/utilite/ULogger.h> #include <rtabmap/utilite/ULogger.h>
#include <rtabmap/utilite/UTimer.h> #include <rtabmap/utilite/UTimer.h>
@@ -79,13 +80,13 @@ public:
UASSERT(iterations > 0); UASSERT(iterations > 0);
ParametersMap parameters; ParametersMap parameters;
parameters.insert(ParametersPair(Parameters::kRGBDOptimizeStrategy(), uNumber2Str(strategy))); parameters.insert(ParametersPair(Parameters::kOptimizerStrategy(), uNumber2Str(strategy)));
parameters.insert(ParametersPair(Parameters::kRGBDOptimizeEpsilon(), uNumber2Str(epsilon))); parameters.insert(ParametersPair(Parameters::kOptimizerEpsilon(), uNumber2Str(epsilon)));
parameters.insert(ParametersPair(Parameters::kRGBDOptimizeIterations(), uNumber2Str(iterations))); parameters.insert(ParametersPair(Parameters::kOptimizerIterations(), uNumber2Str(iterations)));
parameters.insert(ParametersPair(Parameters::kRGBDOptimizeRobust(), uBool2Str(robust))); parameters.insert(ParametersPair(Parameters::kOptimizerRobust(), uBool2Str(robust)));
parameters.insert(ParametersPair(Parameters::kRGBDOptimizeSlam2D(), uBool2Str(slam2d))); parameters.insert(ParametersPair(Parameters::kOptimizerSlam2D(), uBool2Str(slam2d)));
parameters.insert(ParametersPair(Parameters::kRGBDOptimizeVarianceIgnored(), uBool2Str(ignoreVariance))); parameters.insert(ParametersPair(Parameters::kOptimizerVarianceIgnored(), uBool2Str(ignoreVariance)));
optimizer_ = graph::Optimizer::create(parameters); optimizer_ = Optimizer::create(parameters);
double tfDelay = 0.05; // 20 Hz double tfDelay = 0.05; // 20 Hz
bool publishTf = true; bool publishTf = true;
@@ -317,7 +318,7 @@ private:
std::string odomFrameId_; std::string odomFrameId_;
bool globalOptimization_; bool globalOptimization_;
bool optimizeFromLastNode_; bool optimizeFromLastNode_;
graph::Optimizer * optimizer_; Optimizer * optimizer_;
rtabmap::Transform mapToOdom_; rtabmap::Transform mapToOdom_;
boost::mutex mapToOdomMutex_; boost::mutex mapToOdomMutex_;