From ac6787948e33587485acf7bd3b5f114095121738 Mon Sep 17 00:00:00 2001 From: Xiaohan Fei Date: Fri, 6 Sep 2019 01:17:32 -0700 Subject: [PATCH] bugfix: NULL optimizer instance ... --- CMakeLists.txt | 5 +++-- src/estimator.cpp | 7 +++++++ src/optimizer.cpp | 1 + src/optimizer_types.h | 6 ++---- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index dbb03bfa..be9a5503 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,9 +18,9 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mtune=native -march=native") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -funroll-loops") -set(CMAKE_BUILD_TYPE "Debug") +# set(CMAKE_BUILD_TYPE "Debug") # set(CMAKE_BUILD_TYPE "RelWithDebInfo") -# set(CMAKE_BUILD_TYPE "Release") +set(CMAKE_BUILD_TYPE "Release") add_definitions(-DNDEBUG) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin) @@ -55,6 +55,7 @@ include_directories( ${PROJECT_SOURCE_DIR}/thirdparty/jsoncpp/include ${PROJECT_SOURCE_DIR}/thirdparty/eigen-3.3.7/include/eigen3 ${PROJECT_SOURCE_DIR}/thirdparty/gperftools/include + # ${PROJECT_SOURCE_DIR}/thirdparty/abseil-cpp ${PROJECT_SOURCE_DIR}/thirdparty/pybind11/include ${JSONCPP_INCLUDE_DIRS} diff --git a/src/estimator.cpp b/src/estimator.cpp index e6abd947..25bf449e 100644 --- a/src/estimator.cpp +++ b/src/estimator.cpp @@ -15,6 +15,10 @@ #include "param.h" #include "tracker.h" +#ifdef USE_G2O +#include "optimizer.h" +#endif + namespace xivo { static const Mat3 I3{Mat3::Identity()}; @@ -291,6 +295,9 @@ Estimator::Estimator(const Json::Value &cfg) // Initialize the visibility graph // ///////////////////////////// Graph::Create(); +#ifdef USE_G2O + Optimizer::Create(cfg_["optimizer"]); +#endif // ///////////////////////////// // Load initial std on feature state diff --git a/src/optimizer.cpp b/src/optimizer.cpp index eb5e8611..2aecea2f 100644 --- a/src/optimizer.cpp +++ b/src/optimizer.cpp @@ -22,6 +22,7 @@ OptimizerPtr Optimizer::Create(const Json::Value &cfg) { } OptimizerPtr Optimizer::instance() { + CHECK(instance_ != nullptr); return instance_.get(); } diff --git a/src/optimizer_types.h b/src/optimizer_types.h index 238b59ce..6444bb4b 100644 --- a/src/optimizer_types.h +++ b/src/optimizer_types.h @@ -116,10 +116,8 @@ struct GroupAdapter { }; using ObsAdapterG = std::tuple; -using VectorObsAdapterG = std::vector>; +using VectorObsAdapterG = std::vector; using ObsAdapterF = std::tuple; -using VectorObsAdapterF = std::vector>; +using VectorObsAdapterF = std::vector; } // namespace xivo