From 02223e66fd2c8b75fa3434df8961daed94a74525 Mon Sep 17 00:00:00 2001 From: dellaert Date: Sun, 28 Dec 2014 17:13:11 +0100 Subject: [PATCH 1/5] Removed EXPORT (Chris?) --- examples/SolverComparer.cpp | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/examples/SolverComparer.cpp b/examples/SolverComparer.cpp index 018a15dd8..923b0b9de 100644 --- a/examples/SolverComparer.cpp +++ b/examples/SolverComparer.cpp @@ -72,22 +72,22 @@ typedef NoiseModelFactor1 NM1; typedef NoiseModelFactor2 NM2; typedef BearingRangeFactor BR; -GTSAM_VALUE_EXPORT(Value); -GTSAM_VALUE_EXPORT(Pose); -GTSAM_VALUE_EXPORT(Rot2); -GTSAM_VALUE_EXPORT(Point2); -GTSAM_VALUE_EXPORT(NonlinearFactor); -GTSAM_VALUE_EXPORT(NoiseModelFactor); -GTSAM_VALUE_EXPORT(NM1); -GTSAM_VALUE_EXPORT(NM2); -GTSAM_VALUE_EXPORT(BetweenFactor); -GTSAM_VALUE_EXPORT(PriorFactor); -GTSAM_VALUE_EXPORT(BR); -GTSAM_VALUE_EXPORT(noiseModel::Base); -GTSAM_VALUE_EXPORT(noiseModel::Isotropic); -GTSAM_VALUE_EXPORT(noiseModel::Gaussian); -GTSAM_VALUE_EXPORT(noiseModel::Diagonal); -GTSAM_VALUE_EXPORT(noiseModel::Unit); +//GTSAM_VALUE_EXPORT(Value); +//GTSAM_VALUE_EXPORT(Pose); +//GTSAM_VALUE_EXPORT(Rot2); +//GTSAM_VALUE_EXPORT(Point2); +//GTSAM_VALUE_EXPORT(NonlinearFactor); +//GTSAM_VALUE_EXPORT(NoiseModelFactor); +//GTSAM_VALUE_EXPORT(NM1); +//GTSAM_VALUE_EXPORT(NM2); +//GTSAM_VALUE_EXPORT(BetweenFactor); +//GTSAM_VALUE_EXPORT(PriorFactor); +//GTSAM_VALUE_EXPORT(BR); +//GTSAM_VALUE_EXPORT(noiseModel::Base); +//GTSAM_VALUE_EXPORT(noiseModel::Isotropic); +//GTSAM_VALUE_EXPORT(noiseModel::Gaussian); +//GTSAM_VALUE_EXPORT(noiseModel::Diagonal); +//GTSAM_VALUE_EXPORT(noiseModel::Unit); double chi2_red(const gtsam::NonlinearFactorGraph& graph, const gtsam::Values& config) { // Compute degrees of freedom (observations - variables) @@ -295,7 +295,7 @@ void runIncremental() NonlinearFactorGraph newFactors; Values newVariables; - newFactors.push_back(boost::make_shared >(firstPose, Pose(), noiseModel::Unit::Create(Pose::Dim()))); + newFactors.push_back(boost::make_shared >(firstPose, Pose(), noiseModel::Unit::Create(3))); newVariables.insert(firstPose, Pose()); isam2.update(newFactors, newVariables); @@ -474,7 +474,7 @@ void runBatch() cout << "Creating batch optimizer..." << endl; NonlinearFactorGraph measurements = datasetMeasurements; - measurements.push_back(boost::make_shared >(0, Pose(), noiseModel::Unit::Create(Pose::Dim()))); + measurements.push_back(boost::make_shared >(0, Pose(), noiseModel::Unit::Create(3))); gttic_(Create_optimizer); GaussNewtonParams params; From c4457682bc4e19f48684907b1f8fcaa1f1759462 Mon Sep 17 00:00:00 2001 From: dellaert Date: Sun, 28 Dec 2014 17:13:20 +0100 Subject: [PATCH 2/5] Fixed header file --- gtsam_unstable/examples/SFMExampleExpressions.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gtsam_unstable/examples/SFMExampleExpressions.cpp b/gtsam_unstable/examples/SFMExampleExpressions.cpp index 941f3dcb8..0c750c81c 100644 --- a/gtsam_unstable/examples/SFMExampleExpressions.cpp +++ b/gtsam_unstable/examples/SFMExampleExpressions.cpp @@ -23,8 +23,8 @@ */ // The two new headers that allow using our Automatic Differentiation Expression framework -#include -#include +#include +#include // Header order is close to far #include From 401ee703647a575483a8ab115fa65c388d3818c4 Mon Sep 17 00:00:00 2001 From: dellaert Date: Sun, 28 Dec 2014 17:14:04 +0100 Subject: [PATCH 3/5] Fixed overload resoltion error in template matching by removing overloads in traits --- gtsam/base/Lie.h | 26 ++++++------------- gtsam/nonlinear/expressions.h | 4 +-- .../examples/Pose2SLAMExampleExpressions.cpp | 6 +++-- 3 files changed, 14 insertions(+), 22 deletions(-) diff --git a/gtsam/base/Lie.h b/gtsam/base/Lie.h index 4a42bccf8..9c410ac25 100644 --- a/gtsam/base/Lie.h +++ b/gtsam/base/Lie.h @@ -144,9 +144,6 @@ struct LieGroupTraits : Testable { /// @{ typedef multiplicative_group_tag group_flavor; static Class Identity() { return Class::identity();} - static Class Compose(const Class& m1, const Class& m2) { return m1 * m2;} - static Class Between(const Class& m1, const Class& m2) { return m1.inverse() * m2;} - static Class Inverse(const Class& m) { return m.inverse();} /// @} /// @name Manifold @@ -161,21 +158,13 @@ struct LieGroupTraits : Testable { static int GetDimension(const Class&) {return dimension;} - static TangentVector Local(const Class& origin, const Class& other) { - return origin.localCoordinates(other); - } - - static Class Retract(const Class& origin, const TangentVector& v) { - return origin.retract(v); - } - static TangentVector Local(const Class& origin, const Class& other, - ChartJacobian Horigin, ChartJacobian Hother = boost::none) { + ChartJacobian Horigin = boost::none, ChartJacobian Hother = boost::none) { return origin.localCoordinates(other, Horigin, Hother); } static Class Retract(const Class& origin, const TangentVector& v, - ChartJacobian Horigin, ChartJacobian Hv = boost::none) { + ChartJacobian Horigin = boost::none, ChartJacobian Hv = boost::none) { return origin.retract(v, Horigin, Hv); } @@ -192,17 +181,18 @@ struct LieGroupTraits : Testable { return Class::Expmap(v, Hv); } - static Class Compose(const Class& m1, const Class& m2, ChartJacobian H1, - ChartJacobian H2 = boost::none) { + static Class Compose(const Class& m1, const Class& m2, // + ChartJacobian H1 = boost::none, ChartJacobian H2 = boost::none) { return m1.compose(m2, H1, H2); } - static Class Between(const Class& m1, const Class& m2, ChartJacobian H1, - ChartJacobian H2 = boost::none) { + static Class Between(const Class& m1, const Class& m2, // + ChartJacobian H1 = boost::none, ChartJacobian H2 = boost::none) { return m1.between(m2, H1, H2); } - static Class Inverse(const Class& m, ChartJacobian H) { + static Class Inverse(const Class& m, // + ChartJacobian H = boost::none) { return m.inverse(H); } diff --git a/gtsam/nonlinear/expressions.h b/gtsam/nonlinear/expressions.h index 18d0d5d8f..a549517e5 100644 --- a/gtsam/nonlinear/expressions.h +++ b/gtsam/nonlinear/expressions.h @@ -8,14 +8,14 @@ #pragma once #include -#include +#include namespace gtsam { // Generics template Expression between(const Expression& t1, const Expression& t2) { - return Expression(t1, &T::between, t2); + return Expression(traits::Between, t1, t2); } typedef Expression double_; diff --git a/gtsam_unstable/examples/Pose2SLAMExampleExpressions.cpp b/gtsam_unstable/examples/Pose2SLAMExampleExpressions.cpp index 3a3b97b77..e9ccbb2cb 100644 --- a/gtsam_unstable/examples/Pose2SLAMExampleExpressions.cpp +++ b/gtsam_unstable/examples/Pose2SLAMExampleExpressions.cpp @@ -18,8 +18,8 @@ */ // The two new headers that allow using our Automatic Differentiation Expression framework -#include -#include +#include +#include // Header order is close to far #include @@ -48,6 +48,8 @@ int main(int argc, char** argv) { noiseModel::Diagonal::shared_ptr model = noiseModel::Diagonal::Sigmas(Vector3(0.2, 0.2, 0.1)); // 2b. Add odometry factors + BinaryExpression::Function f = traits::Between; + Expression(traits::Between, x1, x2); graph.push_back(ExpressionFactor(model, Pose2(2, 0, 0 ), between(x1,x2))); graph.push_back(ExpressionFactor(model, Pose2(2, 0, M_PI_2), between(x2,x3))); graph.push_back(ExpressionFactor(model, Pose2(2, 0, M_PI_2), between(x3,x4))); From 9b5136d35c6a61f256f448bda33becd2ba3001e9 Mon Sep 17 00:00:00 2001 From: dellaert Date: Sun, 28 Dec 2014 17:15:14 +0100 Subject: [PATCH 4/5] Moved examples --- .../examples => examples}/Pose2SLAMExampleExpressions.cpp | 0 {gtsam_unstable/examples => examples}/SFMExampleExpressions.cpp | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename {gtsam_unstable/examples => examples}/Pose2SLAMExampleExpressions.cpp (100%) rename {gtsam_unstable/examples => examples}/SFMExampleExpressions.cpp (100%) diff --git a/gtsam_unstable/examples/Pose2SLAMExampleExpressions.cpp b/examples/Pose2SLAMExampleExpressions.cpp similarity index 100% rename from gtsam_unstable/examples/Pose2SLAMExampleExpressions.cpp rename to examples/Pose2SLAMExampleExpressions.cpp diff --git a/gtsam_unstable/examples/SFMExampleExpressions.cpp b/examples/SFMExampleExpressions.cpp similarity index 100% rename from gtsam_unstable/examples/SFMExampleExpressions.cpp rename to examples/SFMExampleExpressions.cpp From 3fed29d31e596b295ed94d4081713ce46acce4dd Mon Sep 17 00:00:00 2001 From: dellaert Date: Sun, 28 Dec 2014 17:19:19 +0100 Subject: [PATCH 5/5] Move targets --- .cproject | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/.cproject b/.cproject index 52571de92..5719b0da0 100644 --- a/.cproject +++ b/.cproject @@ -510,22 +510,6 @@ true true - - make - -j5 - SFMExampleExpressions.run - true - true - true - - - make - -j5 - Pose2SLAMExampleExpressions.run - true - true - true - make -j5 @@ -3086,6 +3070,22 @@ true true + + make + -j4 + Pose2SLAMExampleExpressions.run + true + true + true + + + make + -j4 + SFMExampleExpressions.run + true + true + true + make -j5