diff --git a/gtsam/slam/pose2SLAM.cpp b/gtsam/slam/pose2SLAM.cpp index e8cbcd7fe..dd80b821b 100644 --- a/gtsam/slam/pose2SLAM.cpp +++ b/gtsam/slam/pose2SLAM.cpp @@ -16,6 +16,7 @@ **/ #include +#include // Use pose2SLAM namespace for specific SLAM instance @@ -51,5 +52,10 @@ namespace pose2SLAM { } /* ************************************************************************* */ + Values Graph::optimize(const Values& initialEstimate) const { + return LevenbergMarquardtOptimizer(*this, initialEstimate).optimize(); + } + + /* ************************************************************************* */ } // pose2SLAM diff --git a/gtsam/slam/pose2SLAM.h b/gtsam/slam/pose2SLAM.h index 6dc682f9b..42e22a85d 100644 --- a/gtsam/slam/pose2SLAM.h +++ b/gtsam/slam/pose2SLAM.h @@ -17,14 +17,13 @@ #pragma once -#include #include #include #include #include #include #include -#include +#include // Use pose2SLAM namespace for specific SLAM instance namespace pose2SLAM { @@ -93,10 +92,14 @@ namespace pose2SLAM { void addOdometry(Index i, Index j, const Pose2& z, const SharedNoiseModel& model); - /// Optimize - Values optimize(const Values& initialEstimate) const { - return LevenbergMarquardtOptimizer(*this, initialEstimate).optimize(); + /// AddConstraint adds a soft constraint between factor between keys i and j + void addConstraint(Index i, Index j, const Pose2& z, + const SharedNoiseModel& model) { + addOdometry(i,j,z,model); // same for now } + + /// Optimize + Values optimize(const Values& initialEstimate) const; }; } // pose2SLAM