Skip to content

Commit b259569

Browse files
authored
support gtsam 4.2 (#282)
1 parent eaf3869 commit b259569

12 files changed

Lines changed: 19 additions & 14 deletions

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ endif()
2424

2525
find_package(Boost REQUIRED serialization)
2626
find_package(Eigen3 REQUIRED)
27-
find_package(GTSAM 4.3 REQUIRED)
27+
find_package(GTSAM 4.2 REQUIRED)
2828
find_package(gtsam_points 1.2.0 REQUIRED)
2929
find_package(OpenMP REQUIRED)
3030
find_package(spdlog REQUIRED)

include/glim/mapping/global_mapping_pose_graph.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#include <memory>
66
#include <random>
77
#include <thread>
8+
#include <gtsam_points/util/gtsam_migration.hpp>
89
#include <glim/util/concurrent_vector.hpp>
910
#include <glim/mapping/global_mapping_base.hpp>
1011

@@ -119,7 +120,7 @@ class GlobalMappingPoseGraph : public GlobalMappingBase {
119120
std::atomic_bool kill_switch;
120121
std::thread loop_detection_thread;
121122
ConcurrentVector<LoopCandidate> loop_candidates;
122-
ConcurrentVector<std::shared_ptr<gtsam::NonlinearFactor>> detected_loops;
123+
ConcurrentVector<gtsam_points::shared_ptr<gtsam::NonlinearFactor>> detected_loops;
123124

124125
std::vector<SubMap::Ptr> submaps;
125126
std::vector<SubMapTarget::Ptr> submap_targets;

include/glim/odometry/odometry_estimation_cpu.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ class OdometryEstimationCPU : public OdometryEstimationIMU {
4949
virtual ~OdometryEstimationCPU() override;
5050

5151
private:
52-
virtual gtsam::NonlinearFactorGraph create_factors(const int current, const std::shared_ptr<gtsam::ImuFactor>& imu_factor, gtsam::Values& new_values) override;
52+
virtual gtsam::NonlinearFactorGraph create_factors(const int current, const gtsam_points::shared_ptr<gtsam::ImuFactor>& imu_factor, gtsam::Values& new_values) override;
5353

5454
virtual void fallback_smoother() override;
5555

include/glim/odometry/odometry_estimation_gpu.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ class OdometryEstimationGPU : public OdometryEstimationIMU {
5656

5757
private:
5858
virtual void create_frame(EstimationFrame::Ptr& frame) override;
59-
virtual gtsam::NonlinearFactorGraph create_factors(const int current, const std::shared_ptr<gtsam::ImuFactor>& imu_factor, gtsam::Values& new_values) override;
59+
virtual gtsam::NonlinearFactorGraph create_factors(const int current, const gtsam_points::shared_ptr<gtsam::ImuFactor>& imu_factor, gtsam::Values& new_values) override;
6060
virtual void update_frames(const int current, const gtsam::NonlinearFactorGraph& new_factors) override;
6161

6262
void update_keyframes_overlap(int current);

include/glim/odometry/odometry_estimation_imu.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#include <random>
66

77
#include <glim/odometry/odometry_estimation_base.hpp>
8+
#include <gtsam_points/util/gtsam_migration.hpp>
89
#include <gtsam_points/util/indexed_sliding_window.hpp>
910

1011
namespace gtsam {
@@ -79,7 +80,7 @@ class OdometryEstimationIMU : public OdometryEstimationBase {
7980

8081
protected:
8182
virtual void create_frame(EstimationFrame::Ptr& frame) {}
82-
virtual gtsam::NonlinearFactorGraph create_factors(const int current, const std::shared_ptr<gtsam::ImuFactor>& imu_factor, gtsam::Values& new_values) = 0;
83+
virtual gtsam::NonlinearFactorGraph create_factors(const int current, const gtsam_points::shared_ptr<gtsam::ImuFactor>& imu_factor, gtsam::Values& new_values) = 0;
8384

8485
virtual void fallback_smoother() {}
8586
virtual void update_frames(const int current, const gtsam::NonlinearFactorGraph& new_factors);

include/glim/viewer/interactive_viewer.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#include <glim/mapping/sub_map.hpp>
1212
#include <glim/util/extension_module.hpp>
1313
#include <glim/util/concurrent_vector.hpp>
14+
#include <gtsam_points/util/gtsam_migration.hpp>
1415

1516
namespace spdlog {
1617
class logger;
@@ -128,7 +129,7 @@ class InteractiveViewer : public ExtensionModule {
128129
std::vector<std::tuple<FactorType, std::uint64_t, std::uint64_t>> global_factors;
129130

130131
// Factors to be inserted into the global mapping graph
131-
ConcurrentVector<std::shared_ptr<gtsam::NonlinearFactor>> new_factors;
132+
ConcurrentVector<gtsam_points::shared_ptr<gtsam::NonlinearFactor>> new_factors;
132133

133134
// Logging
134135
std::shared_ptr<spdlog::logger> logger;

include/glim/viewer/standard_viewer.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#include <Eigen/Core>
1313
#include <Eigen/Geometry>
1414

15+
#include <gtsam_points/util/gtsam_migration.hpp>
1516
#include <glim/util/extension_module.hpp>
1617

1718
namespace spdlog {
@@ -82,7 +83,7 @@ class StandardViewer : public ExtensionModule {
8283

8384
using FactorLine = std::tuple<Eigen::Vector3f, Eigen::Vector3f, Eigen::Vector4f, Eigen::Vector4f>;
8485
using FactorLineGetter = std::function<std::optional<FactorLine>(const gtsam::NonlinearFactor*)>;
85-
std::vector<std::pair<std::weak_ptr<gtsam::NonlinearFactor>, FactorLineGetter>> odometry_factor_lines;
86+
std::vector<std::pair<gtsam_points::weak_ptr<gtsam::NonlinearFactor>, FactorLineGetter>> odometry_factor_lines;
8687
std::unordered_map<std::uint64_t, Eigen::Isometry3f> odometry_poses;
8788

8889
bool show_mapping_tools;

src/glim/mapping/global_mapping.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -377,7 +377,7 @@ void GlobalMapping::optimize() {
377377
}
378378

379379
std::shared_ptr<gtsam::NonlinearFactorGraph> GlobalMapping::create_between_factors(int current) const {
380-
auto factors = gtsam::make_shared<gtsam::NonlinearFactorGraph>();
380+
auto factors = std::make_shared<gtsam::NonlinearFactorGraph>();
381381
if (current == 0 || !params.enable_between_factors) {
382382
return factors;
383383
}
@@ -428,7 +428,7 @@ std::shared_ptr<gtsam::NonlinearFactorGraph> GlobalMapping::create_between_facto
428428
}
429429

430430
std::shared_ptr<gtsam::NonlinearFactorGraph> GlobalMapping::create_matching_cost_factors(int current) const {
431-
auto factors = gtsam::make_shared<gtsam::NonlinearFactorGraph>();
431+
auto factors = std::make_shared<gtsam::NonlinearFactorGraph>();
432432
if (current == 0) {
433433
return factors;
434434
}

src/glim/mapping/global_mapping_pose_graph.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,7 @@ void GlobalMappingPoseGraph::insert_submap(int current, const SubMap::Ptr& subma
290290
}
291291

292292
std::shared_ptr<gtsam::NonlinearFactorGraph> GlobalMappingPoseGraph::create_odometry_factors(int current) const {
293-
auto factors = gtsam::make_shared<gtsam::NonlinearFactorGraph>();
293+
auto factors = std::make_shared<gtsam::NonlinearFactorGraph>();
294294
if (current == 0) {
295295
return factors;
296296
}
@@ -336,7 +336,7 @@ void GlobalMappingPoseGraph::find_loop_candidates(int current) {
336336
}
337337

338338
std::shared_ptr<gtsam::NonlinearFactorGraph> GlobalMappingPoseGraph::collect_detected_loops() {
339-
auto factors = gtsam::make_shared<gtsam::NonlinearFactorGraph>();
339+
auto factors = std::make_shared<gtsam::NonlinearFactorGraph>();
340340

341341
factors->add(detected_loops.get_all_and_clear());
342342

src/glim/odometry/odometry_estimation_cpu.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ OdometryEstimationCPU::OdometryEstimationCPU(const OdometryEstimationCPUParams&
7474

7575
OdometryEstimationCPU::~OdometryEstimationCPU() {}
7676

77-
gtsam::NonlinearFactorGraph OdometryEstimationCPU::create_factors(const int current, const std::shared_ptr<gtsam::ImuFactor>& imu_factor, gtsam::Values& new_values) {
77+
gtsam::NonlinearFactorGraph OdometryEstimationCPU::create_factors(const int current, const gtsam_points::shared_ptr<gtsam::ImuFactor>& imu_factor, gtsam::Values& new_values) {
7878
const auto params = static_cast<const OdometryEstimationCPUParams*>(this->params.get());
7979
const int last = current - 1;
8080

0 commit comments

Comments
 (0)