6#include <gtsam/linear/GaussianFactor.h>
7#include <gtsam_points/util/gtsam_migration.hpp>
8#include <gtsam_points/factors/bundle_adjustment_factor.hpp>
10namespace gtsam_points {
24 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
25 using shared_ptr = gtsam_points::shared_ptr<LsqBundleAdjustmentFactor>;
31 virtual void print(
const std::string& s =
"",
const gtsam::KeyFormatter& keyFormatter = gtsam::DefaultKeyFormatter)
const override;
33 virtual size_t dim()
const override {
return 6; }
34 virtual double error(
const gtsam::Values& c)
const override;
35 virtual gtsam::GaussianFactor::shared_ptr linearize(
const gtsam::Values& c)
const override;
37 virtual void add(
const gtsam::Point3& pt,
const gtsam::Key& key)
override;
38 virtual int num_points()
const override {
return global_num_points; }
41 void update_global_distribution(
const gtsam::Values& values)
const;
44 struct FrameDistribution;
46 std::unordered_map<gtsam::Key, std::shared_ptr<FrameDistribution>> frame_dists;
48 int global_num_points;
49 mutable Eigen::Vector3d global_mean;
50 mutable Eigen::Matrix3d global_cov;
51 mutable Eigen::Vector3d global_normal;
Base class of range-based bundle adjustment factors.
Definition bundle_adjustment_factor.hpp:15
Bundle adjustment factor based on EVM and EF optimal condition satisfaction.
Definition bundle_adjustment_factor_lsq.hpp:22
virtual int num_points() const override
Number of points assigned to the factor.
Definition bundle_adjustment_factor_lsq.hpp:38
virtual void print(const std::string &s="", const gtsam::KeyFormatter &keyFormatter=gtsam::DefaultKeyFormatter) const override
Print the factor information.
virtual void add(const gtsam::Point3 &pt, const gtsam::Key &key) override
Assign a point to the factor.