From 73271816a6c26aab9d40de7f8011dddf5d243e30 Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Sun, 22 Mar 2020 12:45:21 -0400 Subject: [PATCH 1/7] make exceptions as const reference --- gtsam/nonlinear/utilities.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gtsam/nonlinear/utilities.h b/gtsam/nonlinear/utilities.h index 867db70e0..1228cd4db 100644 --- a/gtsam/nonlinear/utilities.h +++ b/gtsam/nonlinear/utilities.h @@ -237,12 +237,12 @@ Values localToWorld(const Values& local, const Pose2& base, // if value is a Pose2, compose it with base pose Pose2 pose = local.at(key); world.insert(key, base.compose(pose)); - } catch (std::exception e1) { + } catch (const std::exception& e1) { try { // if value is a Point2, transform it from base pose Point2 point = local.at(key); world.insert(key, base.transformFrom(point)); - } catch (std::exception e2) { + } catch (const std::exception& e2) { // if not Pose2 or Point2, do nothing } } From d2d5ce1166d6e01101b2679020edf66899305702 Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Sun, 22 Mar 2020 12:46:25 -0400 Subject: [PATCH 2/7] Eigen alignment --- gtsam/nonlinear/NonlinearEquality.h | 6 ++++++ gtsam_unstable/slam/AHRS.h | 2 ++ 2 files changed, 8 insertions(+) diff --git a/gtsam/nonlinear/NonlinearEquality.h b/gtsam/nonlinear/NonlinearEquality.h index 4d928482e..d4eb655c3 100644 --- a/gtsam/nonlinear/NonlinearEquality.h +++ b/gtsam/nonlinear/NonlinearEquality.h @@ -175,6 +175,8 @@ public: /// @} + EIGEN_MAKE_ALIGNED_OPERATOR_NEW + private: /** Serialization function */ @@ -263,6 +265,8 @@ public: traits::Print(value_, "Value"); } + EIGEN_MAKE_ALIGNED_OPERATOR_NEW + private: /** Serialization function */ @@ -327,6 +331,8 @@ public: return traits::Local(x1,x2); } + EIGEN_MAKE_ALIGNED_OPERATOR_NEW + private: /** Serialization function */ diff --git a/gtsam_unstable/slam/AHRS.h b/gtsam_unstable/slam/AHRS.h index f22de48cf..35b4677d5 100644 --- a/gtsam_unstable/slam/AHRS.h +++ b/gtsam_unstable/slam/AHRS.h @@ -77,6 +77,8 @@ public: void print(const std::string& s = "") const; virtual ~AHRS(); + + EIGEN_MAKE_ALIGNED_OPERATOR_NEW }; } /* namespace gtsam */ From c2d7df3f148894badce29fd7ee21cdaa46e9fca2 Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Sun, 22 Mar 2020 20:03:10 -0400 Subject: [PATCH 3/7] make exception as reference --- gtsam/geometry/tests/testEssentialMatrix.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gtsam/geometry/tests/testEssentialMatrix.cpp b/gtsam/geometry/tests/testEssentialMatrix.cpp index c923e398b..86a498cdc 100644 --- a/gtsam/geometry/tests/testEssentialMatrix.cpp +++ b/gtsam/geometry/tests/testEssentialMatrix.cpp @@ -159,7 +159,7 @@ TEST (EssentialMatrix, rotate) { Matrix actH1, actH2; try { bodyE.rotate(cRb, actH1, actH2); - } catch (exception e) { + } catch (exception& e) { } // avoid exception Matrix expH1 = numericalDerivative21(rotate_, bodyE, cRb), // expH2 = numericalDerivative22(rotate_, bodyE, cRb); From 9bef6bfded7c0c46d4706d0d23f1b3fe963c539d Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Sun, 22 Mar 2020 20:04:04 -0400 Subject: [PATCH 4/7] initialize PreintegrationParams default constructor and make serialization test more explicit --- gtsam/navigation/PreintegrationParams.h | 9 +++++++-- gtsam/navigation/tests/testImuFactorSerialization.cpp | 6 +++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/gtsam/navigation/PreintegrationParams.h b/gtsam/navigation/PreintegrationParams.h index 0fb54a358..962fef277 100644 --- a/gtsam/navigation/PreintegrationParams.h +++ b/gtsam/navigation/PreintegrationParams.h @@ -29,6 +29,13 @@ struct GTSAM_EXPORT PreintegrationParams: PreintegratedRotationParams { bool use2ndOrderCoriolis; ///< Whether to use second order Coriolis integration Vector3 n_gravity; ///< Gravity vector in nav frame + /// Default constructor for serialization only + PreintegrationParams() + : accelerometerCovariance(I_3x3), + integrationCovariance(I_3x3), + use2ndOrderCoriolis(false), + n_gravity(0, 0, -1) {} + /// The Params constructor insists on getting the navigation frame gravity vector /// For convenience, two commonly used conventions are provided by named constructors below PreintegrationParams(const Vector3& n_gravity) @@ -60,8 +67,6 @@ struct GTSAM_EXPORT PreintegrationParams: PreintegratedRotationParams { bool getUse2ndOrderCoriolis() const { return use2ndOrderCoriolis; } protected: - /// Default constructor for serialization only: uninitialized! - PreintegrationParams() {} /** Serialization function */ friend class boost::serialization::access; diff --git a/gtsam/navigation/tests/testImuFactorSerialization.cpp b/gtsam/navigation/tests/testImuFactorSerialization.cpp index 9f9781d2c..59d0ac199 100644 --- a/gtsam/navigation/tests/testImuFactorSerialization.cpp +++ b/gtsam/navigation/tests/testImuFactorSerialization.cpp @@ -64,9 +64,9 @@ TEST(ImuFactor, serialization) { ImuFactor factor(1, 2, 3, 4, 5, pim); - EXPECT(equalsObj(factor)); - EXPECT(equalsXML(factor)); - EXPECT(equalsBinary(factor)); + EXPECT(equalsObj(factor)); + EXPECT(equalsXML(factor)); + EXPECT(equalsBinary(factor)); } /* ************************************************************************* */ From 0479223b3fbbdc7b5957c682cda03d5471cb8cc5 Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Sun, 22 Mar 2020 20:04:33 -0400 Subject: [PATCH 5/7] suppress warning when wrapper indentation is too long --- CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6ac85bff6..42ebe7ea4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -416,6 +416,8 @@ add_subdirectory(CppUnitLite) # Build wrap if (GTSAM_BUILD_WRAP) add_subdirectory(wrap) + # suppress warning of cython line being too long + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-misleading-indentation") endif(GTSAM_BUILD_WRAP) # Build GTSAM library From cd809309f72e3193518ffaf01550126884d5a16e Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Mon, 23 Mar 2020 08:04:17 -0400 Subject: [PATCH 6/7] suppress warning only on linux for now, need to figure out for other OSes --- CMakeLists.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 42ebe7ea4..be556d27e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -417,7 +417,9 @@ add_subdirectory(CppUnitLite) if (GTSAM_BUILD_WRAP) add_subdirectory(wrap) # suppress warning of cython line being too long - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-misleading-indentation") + if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-misleading-indentation") + endif() endif(GTSAM_BUILD_WRAP) # Build GTSAM library From 02ff7ae276514bb3633638416fda95e7b3100fae Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Sat, 28 Mar 2020 09:56:29 -0400 Subject: [PATCH 7/7] output message for exception in debug mode --- gtsam/nonlinear/utilities.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gtsam/nonlinear/utilities.h b/gtsam/nonlinear/utilities.h index 1228cd4db..2044d091f 100644 --- a/gtsam/nonlinear/utilities.h +++ b/gtsam/nonlinear/utilities.h @@ -244,6 +244,9 @@ Values localToWorld(const Values& local, const Pose2& base, world.insert(key, base.transformFrom(point)); } catch (const std::exception& e2) { // if not Pose2 or Point2, do nothing + #ifndef NDEBUG + std::cerr << "Values[key] is neither Pose2 nor Point2, so skip" << std::endl; + #endif } } }