32 GTSAM_MAKE_ALIGNED_OPERATOR_NEW
33 using shared_ptr = gtsam_points::shared_ptr<IntegratedLOAMFactor_<TargetFrame, SourceFrame>>;
36 gtsam::Key target_key,
37 gtsam::Key source_key,
38 const std::shared_ptr<const TargetFrame>& target_edges,
39 const std::shared_ptr<const TargetFrame>& target_planes,
40 const std::shared_ptr<const SourceFrame>& source_edges,
41 const std::shared_ptr<const SourceFrame>& source_planes,
42 const std::shared_ptr<const NearestNeighborSearch>& target_edges_tree,
43 const std::shared_ptr<const NearestNeighborSearch>& target_planes_tree);
46 gtsam::Key target_key,
47 gtsam::Key source_key,
48 const std::shared_ptr<const TargetFrame>& target_edges,
49 const std::shared_ptr<const TargetFrame>& target_planes,
50 const std::shared_ptr<const SourceFrame>& source_edges,
51 const std::shared_ptr<const SourceFrame>& source_planes);
55 virtual void print(
const std::string& s =
"",
const gtsam::KeyFormatter& keyFormatter = gtsam::DefaultKeyFormatter)
const override;
61 void set_num_threads(
int n);
62 void set_max_correspondence_distance(
double dist_edge,
double dist_plane);
63 void set_correspondence_update_tolerance(
double angle,
double trans);
64 void set_enable_correspondence_validation(
bool enable);
67 virtual void update_correspondences(
const Eigen::Isometry3d& delta)
const override;
69 virtual double evaluate(
70 const Eigen::Isometry3d& delta,
71 Eigen::Matrix<double, 6, 6>* H_target =
nullptr,
72 Eigen::Matrix<double, 6, 6>* H_source =
nullptr,
73 Eigen::Matrix<double, 6, 6>* H_target_source =
nullptr,
74 Eigen::Matrix<double, 6, 1>* b_target =
nullptr,
75 Eigen::Matrix<double, 6, 1>* b_source =
nullptr)
const override;
81 virtual void validate_correspondences()
const;
84 bool enable_correspondence_validation;
85 std::unique_ptr<IntegratedPointToEdgeFactor_<TargetFrame, SourceFrame>> edge_factor;
86 std::unique_ptr<IntegratedPointToPlaneFactor_<TargetFrame, SourceFrame>> plane_factor;
93 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
94 using shared_ptr = gtsam_points::shared_ptr<IntegratedPointToPlaneFactor_<TargetFrame, SourceFrame>>;
99 gtsam::Key target_key,
100 gtsam::Key source_key,
101 const std::shared_ptr<const TargetFrame>& target,
102 const std::shared_ptr<const SourceFrame>& source,
103 const std::shared_ptr<const NearestNeighborSearch>& target_tree);
106 gtsam::Key target_key,
107 gtsam::Key source_key,
108 const std::shared_ptr<const TargetFrame>& target,
109 const std::shared_ptr<const SourceFrame>& source);
113 virtual void print(
const std::string& s =
"",
const gtsam::KeyFormatter& keyFormatter = gtsam::DefaultKeyFormatter)
const override;
117 void set_num_threads(
int n) { num_threads = n; }
118 void set_max_correspondence_distance(
double dist) { max_correspondence_distance_sq = dist * dist; }
119 void set_correspondence_update_tolerance(
double angle,
double trans) {
120 correspondence_update_tolerance_rot = angle;
121 correspondence_update_tolerance_trans = trans;
125 virtual void update_correspondences(
const Eigen::Isometry3d& delta)
const override;
127 virtual double evaluate(
128 const Eigen::Isometry3d& delta,
129 Eigen::Matrix<double, 6, 6>* H_target =
nullptr,
130 Eigen::Matrix<double, 6, 6>* H_source =
nullptr,
131 Eigen::Matrix<double, 6, 6>* H_target_source =
nullptr,
132 Eigen::Matrix<double, 6, 1>* b_target =
nullptr,
133 Eigen::Matrix<double, 6, 1>* b_source =
nullptr)
const override;
137 double max_correspondence_distance_sq;
139 std::shared_ptr<const NearestNeighborSearch> target_tree;
142 double correspondence_update_tolerance_rot;
143 double correspondence_update_tolerance_trans;
144 mutable Eigen::Isometry3d last_correspondence_point;
145 mutable std::vector<std::tuple<long, long, long>> correspondences;
147 std::shared_ptr<const TargetFrame> target;
148 std::shared_ptr<const SourceFrame> source;
155 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
156 using shared_ptr = gtsam_points::shared_ptr<IntegratedPointToEdgeFactor_<TargetFrame, SourceFrame>>;
161 gtsam::Key target_key,
162 gtsam::Key source_key,
163 const std::shared_ptr<const TargetFrame>& target,
164 const std::shared_ptr<const SourceFrame>& source,
165 const std::shared_ptr<const NearestNeighborSearch>& target_tree);
168 gtsam::Key target_key,
169 gtsam::Key source_key,
170 const std::shared_ptr<const TargetFrame>& target,
171 const std::shared_ptr<const SourceFrame>& source);
175 virtual void print(
const std::string& s =
"",
const gtsam::KeyFormatter& keyFormatter = gtsam::DefaultKeyFormatter)
const override;
179 void set_num_threads(
int n) { num_threads = n; }
180 void set_max_correspondence_distance(
double dist) { max_correspondence_distance_sq = dist * dist; }
181 void set_correspondence_update_tolerance(
double angle,
double trans) {
182 correspondence_update_tolerance_rot = angle;
183 correspondence_update_tolerance_trans = trans;
187 virtual void update_correspondences(
const Eigen::Isometry3d& delta)
const override;
189 virtual double evaluate(
190 const Eigen::Isometry3d& delta,
191 Eigen::Matrix<double, 6, 6>* H_target =
nullptr,
192 Eigen::Matrix<double, 6, 6>* H_source =
nullptr,
193 Eigen::Matrix<double, 6, 6>* H_target_source =
nullptr,
194 Eigen::Matrix<double, 6, 1>* b_target =
nullptr,
195 Eigen::Matrix<double, 6, 1>* b_source =
nullptr)
const override;
199 double max_correspondence_distance_sq;
201 std::shared_ptr<const NearestNeighborSearch> target_tree;
204 double correspondence_update_tolerance_rot;
205 double correspondence_update_tolerance_trans;
206 mutable Eigen::Isometry3d last_correspondence_point;
207 mutable std::vector<std::tuple<long, long>> correspondences;
209 std::shared_ptr<const TargetFrame> target;
210 std::shared_ptr<const SourceFrame> source;
virtual void print(const std::string &s="", const gtsam::KeyFormatter &keyFormatter=gtsam::DefaultKeyFormatter) const override
Print the factor information.
Definition integrated_loam_factor_impl.hpp:412
virtual void print(const std::string &s="", const gtsam::KeyFormatter &keyFormatter=gtsam::DefaultKeyFormatter) const override
Print the factor information.
Definition integrated_loam_factor_impl.hpp:282
virtual void print(const std::string &s="", const gtsam::KeyFormatter &keyFormatter=gtsam::DefaultKeyFormatter) const override
Print the factor information.
Definition integrated_loam_factor_impl.hpp:62