From 02abc53fc15ebb45a3a468293b737e8352c2b549 Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Tue, 5 Jan 2021 10:07:06 -0500 Subject: [PATCH 1/7] fix metis based warnings in CMake and compiling --- gtsam/3rdparty/metis/CMakeLists.txt | 2 +- gtsam/3rdparty/metis/libmetis/CMakeLists.txt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/gtsam/3rdparty/metis/CMakeLists.txt b/gtsam/3rdparty/metis/CMakeLists.txt index de46165ff..dc26aecb2 100644 --- a/gtsam/3rdparty/metis/CMakeLists.txt +++ b/gtsam/3rdparty/metis/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 2.8) +cmake_minimum_required(VERSION 3.0) project(METIS) # Add flags for currect directory and below diff --git a/gtsam/3rdparty/metis/libmetis/CMakeLists.txt b/gtsam/3rdparty/metis/libmetis/CMakeLists.txt index 330e989fa..92f931b98 100644 --- a/gtsam/3rdparty/metis/libmetis/CMakeLists.txt +++ b/gtsam/3rdparty/metis/libmetis/CMakeLists.txt @@ -12,6 +12,7 @@ endif() if(WIN32) set_target_properties(metis-gtsam PROPERTIES PREFIX "" + COMPILE_FLAGS /w RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/../../../bin") endif() From a650a6f8b1fb68da84b2fab17fedfbbe26d407cb Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Tue, 5 Jan 2021 10:43:31 -0500 Subject: [PATCH 2/7] add std namespacing --- gtsam/geometry/Pose3.cpp | 4 ++-- gtsam/geometry/SOn-inl.h | 4 +--- gtsam/sfm/ShonanAveraging.h | 4 ++-- gtsam/slam/dataset.h | 8 ++++---- 4 files changed, 9 insertions(+), 11 deletions(-) diff --git a/gtsam/geometry/Pose3.cpp b/gtsam/geometry/Pose3.cpp index 22849d4f5..c183e32ed 100644 --- a/gtsam/geometry/Pose3.cpp +++ b/gtsam/geometry/Pose3.cpp @@ -106,8 +106,8 @@ Vector6 Pose3::adjointTranspose(const Vector6& xi, const Vector6& y, } /* ************************************************************************* */ -void Pose3::print(const string& s) const { - cout << (s.empty() ? s : s + " ") << *this << endl; +void Pose3::print(const std::string& s) const { + std::cout << (s.empty() ? s : s + " ") << *this << std::endl; } /* ************************************************************************* */ diff --git a/gtsam/geometry/SOn-inl.h b/gtsam/geometry/SOn-inl.h index 6180f4cc7..284ae76de 100644 --- a/gtsam/geometry/SOn-inl.h +++ b/gtsam/geometry/SOn-inl.h @@ -22,8 +22,6 @@ #include -using namespace std; - namespace gtsam { // Implementation for N>=5 just uses dynamic version @@ -108,7 +106,7 @@ typename SO::VectorN2 SO::vec( template void SO::print(const std::string& s) const { - cout << s << matrix_ << endl; + std::cout << s << matrix_ << std::endl; } } // namespace gtsam diff --git a/gtsam/sfm/ShonanAveraging.h b/gtsam/sfm/ShonanAveraging.h index edd9f33a2..f1ce31fa6 100644 --- a/gtsam/sfm/ShonanAveraging.h +++ b/gtsam/sfm/ShonanAveraging.h @@ -354,7 +354,7 @@ class ShonanAveraging2 : public ShonanAveraging<2> { public: ShonanAveraging2(const Measurements &measurements, const Parameters ¶meters = Parameters()); - explicit ShonanAveraging2(string g2oFile, + explicit ShonanAveraging2(std::string g2oFile, const Parameters ¶meters = Parameters()); }; @@ -362,7 +362,7 @@ class ShonanAveraging3 : public ShonanAveraging<3> { public: ShonanAveraging3(const Measurements &measurements, const Parameters ¶meters = Parameters()); - explicit ShonanAveraging3(string g2oFile, + explicit ShonanAveraging3(std::string g2oFile, const Parameters ¶meters = Parameters()); // TODO(frank): Deprecate after we land pybind wrapper diff --git a/gtsam/slam/dataset.h b/gtsam/slam/dataset.h index d96c11167..80877c136 100644 --- a/gtsam/slam/dataset.h +++ b/gtsam/slam/dataset.h @@ -303,8 +303,8 @@ struct SfmTrack { /// print void print(const std::string& s = "") const { - cout << "Track with " << measurements.size(); - cout << " measurements of point " << p << "\n"; + std::cout << "Track with " << measurements.size(); + std::cout << " measurements of point " << p << std::endl; } }; @@ -385,8 +385,8 @@ struct SfmData { /// print void print(const std::string& s = "") const { - cout << "Number of cameras = " << number_cameras() << "\n"; - cout << "Number of tracks = " << number_tracks() << "\n"; + std::cout << "Number of cameras = " << number_cameras() << std::endl; + std::cout << "Number of tracks = " << number_tracks() << std::endl; } }; From 473a6a15ee67bbdf559bb58932773cd8183e1f00 Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Tue, 5 Jan 2021 10:44:05 -0500 Subject: [PATCH 3/7] fix warnings for vectors and matrices --- gtsam/nonlinear/tests/testValues.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/gtsam/nonlinear/tests/testValues.cpp b/gtsam/nonlinear/tests/testValues.cpp index 88cfb666f..455af942c 100644 --- a/gtsam/nonlinear/tests/testValues.cpp +++ b/gtsam/nonlinear/tests/testValues.cpp @@ -175,10 +175,13 @@ TEST(Values, basic_functions) { Values values; const Values& values_c = values; - values.insert(2, Vector3()); - values.insert(4, Vector3()); - values.insert(6, Matrix23()); - values.insert(8, Matrix23()); + Matrix23 M1, M2; + M1 << 0, 0, 0, 0, 0, 0; + M2 << 0, 0, 0, 0, 0, 0; + values.insert(2, Vector3(0, 0, 0)); + values.insert(4, Vector3(0, 0, 0)); + values.insert(6, M1); + values.insert(8, M2); // find EXPECT_LONGS_EQUAL(4, values.find(4)->key); From b7584ce362fd30fe498292f6c32754983a0cc34f Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Tue, 5 Jan 2021 10:44:26 -0500 Subject: [PATCH 4/7] verbose printing of exceptions --- gtsam/slam/GeneralSFMFactor.h | 24 +++++++++++++------ .../examples/SmartRangeExample_plaza1.cpp | 3 ++- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/gtsam/slam/GeneralSFMFactor.h b/gtsam/slam/GeneralSFMFactor.h index f848a56ca..3e292c892 100644 --- a/gtsam/slam/GeneralSFMFactor.h +++ b/gtsam/slam/GeneralSFMFactor.h @@ -70,6 +70,7 @@ class GeneralSFMFactor: public NoiseModelFactor2 { protected: Point2 measured_; ///< the 2D measurement + bool verbose_; ///< Flag for print verbosity public: @@ -86,12 +87,17 @@ public: * @param cameraKey is the index of the camera * @param landmarkKey is the index of the landmark */ - GeneralSFMFactor(const Point2& measured, const SharedNoiseModel& model, Key cameraKey, Key landmarkKey) : - Base(model, cameraKey, landmarkKey), measured_(measured) {} + GeneralSFMFactor(const Point2& measured, const SharedNoiseModel& model, + Key cameraKey, Key landmarkKey, bool verbose = false) + : Base(model, cameraKey, landmarkKey), + measured_(measured), + verbose_(verbose) {} - GeneralSFMFactor():measured_(0.0,0.0) {} ///< default constructor - GeneralSFMFactor(const Point2 & p):measured_(p) {} ///< constructor that takes a Point2 - GeneralSFMFactor(double x, double y):measured_(x,y) {} ///< constructor that takes doubles x,y to make a Point2 + GeneralSFMFactor() : measured_(0.0, 0.0) {} ///< default constructor + ///< constructor that takes a Point2 + GeneralSFMFactor(const Point2& p) : measured_(p) {} + ///< constructor that takes doubles x,y to make a Point2 + GeneralSFMFactor(double x, double y) : measured_(x, y) {} virtual ~GeneralSFMFactor() {} ///< destructor @@ -127,7 +133,9 @@ public: catch( CheiralityException& e) { if (H1) *H1 = JacobianC::Zero(); if (H2) *H2 = JacobianL::Zero(); - // TODO warn if verbose output asked for + if (verbose_) { + std::cout << e.what() << std::endl; + } return Z_2x1; } } @@ -149,7 +157,9 @@ public: H1.setZero(); H2.setZero(); b.setZero(); - // TODO warn if verbose output asked for + if (verbose_) { + std::cout << e.what() << std::endl; + } } // Whiten the system if needed diff --git a/gtsam_unstable/examples/SmartRangeExample_plaza1.cpp b/gtsam_unstable/examples/SmartRangeExample_plaza1.cpp index 5fdc7a743..0976674de 100644 --- a/gtsam_unstable/examples/SmartRangeExample_plaza1.cpp +++ b/gtsam_unstable/examples/SmartRangeExample_plaza1.cpp @@ -188,7 +188,8 @@ int main(int argc, char** argv) { smartFactors[j]->addRange(i, range); printf("adding range %g for %d",range,(int)j); } catch (const invalid_argument& e) { - printf("warning: omitting duplicate range %g for %d",range,(int)j); + printf("warning: omitting duplicate range %g for %d: %s", range, + (int)j, e.what()); } cout << endl; } From b244a7d6366c0d3a29080b2ea3fc00306ec1ab8d Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Tue, 5 Jan 2021 13:59:58 -0500 Subject: [PATCH 5/7] remove verbose flag and print exception to std::cerr --- gtsam/slam/GeneralSFMFactor.h | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/gtsam/slam/GeneralSFMFactor.h b/gtsam/slam/GeneralSFMFactor.h index 3e292c892..1e48571e3 100644 --- a/gtsam/slam/GeneralSFMFactor.h +++ b/gtsam/slam/GeneralSFMFactor.h @@ -70,7 +70,6 @@ class GeneralSFMFactor: public NoiseModelFactor2 { protected: Point2 measured_; ///< the 2D measurement - bool verbose_; ///< Flag for print verbosity public: @@ -88,10 +87,8 @@ public: * @param landmarkKey is the index of the landmark */ GeneralSFMFactor(const Point2& measured, const SharedNoiseModel& model, - Key cameraKey, Key landmarkKey, bool verbose = false) - : Base(model, cameraKey, landmarkKey), - measured_(measured), - verbose_(verbose) {} + Key cameraKey, Key landmarkKey) + : Base(model, cameraKey, landmarkKey), measured_(measured) {} GeneralSFMFactor() : measured_(0.0, 0.0) {} ///< default constructor ///< constructor that takes a Point2 @@ -133,9 +130,7 @@ public: catch( CheiralityException& e) { if (H1) *H1 = JacobianC::Zero(); if (H2) *H2 = JacobianL::Zero(); - if (verbose_) { - std::cout << e.what() << std::endl; - } + std::cerr << e.what() << std::endl; return Z_2x1; } } @@ -157,9 +152,7 @@ public: H1.setZero(); H2.setZero(); b.setZero(); - if (verbose_) { - std::cout << e.what() << std::endl; - } + std::cerr << e.what() << std::endl; } // Whiten the system if needed From 5b52e4c29f6572e8e6d7a4c3abad95340e2668f4 Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Tue, 5 Jan 2021 14:13:15 -0500 Subject: [PATCH 6/7] cleanly initialize matrices in test --- gtsam/nonlinear/tests/testValues.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/gtsam/nonlinear/tests/testValues.cpp b/gtsam/nonlinear/tests/testValues.cpp index 455af942c..bb66cb695 100644 --- a/gtsam/nonlinear/tests/testValues.cpp +++ b/gtsam/nonlinear/tests/testValues.cpp @@ -175,9 +175,7 @@ TEST(Values, basic_functions) { Values values; const Values& values_c = values; - Matrix23 M1, M2; - M1 << 0, 0, 0, 0, 0, 0; - M2 << 0, 0, 0, 0, 0, 0; + Matrix23 M1 = Matrix23::Zero(), M2 = Matrix23::Zero(); values.insert(2, Vector3(0, 0, 0)); values.insert(4, Vector3(0, 0, 0)); values.insert(6, M1); From 0f03ee1f7635f186cd6082dbc36b146b7d56fba7 Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Tue, 5 Jan 2021 14:43:43 -0500 Subject: [PATCH 7/7] remove exception print, add TODO --- gtsam/slam/GeneralSFMFactor.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gtsam/slam/GeneralSFMFactor.h b/gtsam/slam/GeneralSFMFactor.h index 1e48571e3..c9639d4d5 100644 --- a/gtsam/slam/GeneralSFMFactor.h +++ b/gtsam/slam/GeneralSFMFactor.h @@ -130,7 +130,7 @@ public: catch( CheiralityException& e) { if (H1) *H1 = JacobianC::Zero(); if (H2) *H2 = JacobianL::Zero(); - std::cerr << e.what() << std::endl; + //TODO Print the exception via logging return Z_2x1; } } @@ -152,7 +152,7 @@ public: H1.setZero(); H2.setZero(); b.setZero(); - std::cerr << e.what() << std::endl; + //TODO Print the exception via logging } // Whiten the system if needed