gtsam_points
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
gtsam_points::IntegratedGICPFactor_< TargetFrame, SourceFrame > Class Template Reference

Generalized ICP matching cost factor Segal et al., "Generalized-ICP", RSS2005. More...

#include <integrated_gicp_factor.hpp>

Inheritance diagram for gtsam_points::IntegratedGICPFactor_< TargetFrame, SourceFrame >:
Inheritance graph
[legend]
Collaboration diagram for gtsam_points::IntegratedGICPFactor_< TargetFrame, SourceFrame >:
Collaboration graph
[legend]

Public Types

using shared_ptr = gtsam_points::shared_ptr< IntegratedGICPFactor_ >
 
- Public Types inherited from gtsam_points::IntegratedMatchingCostFactor
using shared_ptr = gtsam_points::shared_ptr< IntegratedMatchingCostFactor >
 

Public Member Functions

 IntegratedGICPFactor_ (gtsam::Key target_key, gtsam::Key source_key, const std::shared_ptr< const TargetFrame > &target, const std::shared_ptr< const SourceFrame > &source, const std::shared_ptr< const NearestNeighborSearch > &target_tree)
 Create a binary ICP factor between target and source poses.
 
 IntegratedGICPFactor_ (gtsam::Key target_key, gtsam::Key source_key, const std::shared_ptr< const TargetFrame > &target, const std::shared_ptr< const SourceFrame > &source)
 
 IntegratedGICPFactor_ (const gtsam::Pose3 &fixed_target_pose, gtsam::Key source_key, const std::shared_ptr< const TargetFrame > &target, const std::shared_ptr< const SourceFrame > &source, const std::shared_ptr< const NearestNeighborSearch > &target_tree)
 Create a unary GICP factor between a fixed target pose and an active source pose.
 
 IntegratedGICPFactor_ (const gtsam::Pose3 &fixed_target_pose, gtsam::Key source_key, const std::shared_ptr< const TargetFrame > &target, const 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.
 
virtual size_t memory_usage () const override
 Calculate the memory usage of this factor.
 
void set_num_threads (int n)
 Set the number of thread used for linearization of this factor.
 
void set_max_correspondence_distance (double dist)
 Set the maximum distance between corresponding points. Correspondences with distances larger than this will be rejected (i.e., correspondence trimming).
 
void set_correspondence_update_tolerance (double angle, double trans)
 Correspondences are updated only when the displacement from the last update point is larger than these threshold values.
 
void set_fused_cov_cache_mode (FusedCovCacheMode mode)
 Set the cache mode for fused covariance matrices (i.e., mahalanobis).
 
double inlier_fraction () const
 Compute the fraction of inlier points that have correspondences with a distance smaller than the trimming threshold.
 
gtsam::NonlinearFactor::shared_ptr clone () const override
 
- Public Member Functions inherited from gtsam_points::IntegratedMatchingCostFactor
 IntegratedMatchingCostFactor (gtsam::Key target_key, gtsam::Key source_key)
 Create a binary matching cost factor between target and source poses.
 
 IntegratedMatchingCostFactor (const gtsam::Pose3 &fixed_target_pose, gtsam::Key source_key)
 Create a unary matching cost factor between a fixed target pose and an active source pose.
 
virtual size_t dim () const override
 
virtual double error (const gtsam::Values &values) const override
 
virtual gtsam::GaussianFactor::shared_ptr linearize (const gtsam::Values &values) const override
 
const Eigen::Isometry3d & get_fixed_target_pose () const
 
Eigen::Isometry3d calc_delta (const gtsam::Values &values) const
 

Additional Inherited Members

- Protected Attributes inherited from gtsam_points::IntegratedMatchingCostFactor
bool is_binary
 
Eigen::Isometry3d fixed_target_pose
 

Detailed Description

template<typename TargetFrame = gtsam_points::PointCloud, typename SourceFrame = gtsam_points::PointCloud>
class gtsam_points::IntegratedGICPFactor_< TargetFrame, SourceFrame >

Generalized ICP matching cost factor Segal et al., "Generalized-ICP", RSS2005.

Constructor & Destructor Documentation

◆ IntegratedGICPFactor_() [1/2]

template<typename TargetFrame , typename SourceFrame >
gtsam_points::IntegratedGICPFactor_< TargetFrame, SourceFrame >::IntegratedGICPFactor_ ( gtsam::Key  target_key,
gtsam::Key  source_key,
const std::shared_ptr< const TargetFrame > &  target,
const std::shared_ptr< const SourceFrame > &  source,
const std::shared_ptr< const NearestNeighborSearch > &  target_tree 
)

Create a binary ICP factor between target and source poses.

Parameters
target_keyTarget key
source_keySource key
targetTarget point cloud frame
sourceSource point cloud frame
target_treeTarget nearest neighbor search Create a binary ICP factor between target and source poses.

◆ IntegratedGICPFactor_() [2/2]

template<typename TargetFrame , typename SourceFrame >
gtsam_points::IntegratedGICPFactor_< TargetFrame, SourceFrame >::IntegratedGICPFactor_ ( const gtsam::Pose3 &  fixed_target_pose,
gtsam::Key  source_key,
const std::shared_ptr< const TargetFrame > &  target,
const std::shared_ptr< const SourceFrame > &  source,
const std::shared_ptr< const NearestNeighborSearch > &  target_tree 
)

Create a unary GICP factor between a fixed target pose and an active source pose.

Parameters
fixed_target_poseFixed target pose
source_keySource key
targetTarget point cloud frame
sourceSource point cloud frame
target_treeTarget nearest neighbor search Create a unary GICP factor between a fixed target pose and an active source pose.

Member Function Documentation

◆ memory_usage()

template<typename TargetFrame , typename SourceFrame >
size_t gtsam_points::IntegratedGICPFactor_< TargetFrame, SourceFrame >::memory_usage ( ) const
overridevirtual

Calculate the memory usage of this factor.

Note
The result is approximate and does not account for objects not owned by this factor (e.g., point clouds)
Returns
Memory usage in bytes (Approximate size in bytes)

Reimplemented from gtsam_points::IntegratedMatchingCostFactor.

◆ print()

template<typename TargetFrame , typename SourceFrame >
void gtsam_points::IntegratedGICPFactor_< TargetFrame, SourceFrame >::print ( const std::string &  s = "",
const gtsam::KeyFormatter &  keyFormatter = gtsam::DefaultKeyFormatter 
) const
overridevirtual

Print the factor information.

Reimplemented from gtsam_points::IntegratedMatchingCostFactor.

◆ set_correspondence_update_tolerance()

template<typename TargetFrame = gtsam_points::PointCloud, typename SourceFrame = gtsam_points::PointCloud>
void gtsam_points::IntegratedGICPFactor_< TargetFrame, SourceFrame >::set_correspondence_update_tolerance ( double  angle,
double  trans 
)
inline

Correspondences are updated only when the displacement from the last update point is larger than these threshold values.

Note
Default values are angle=trans=0 and correspondences are updated every linearization call.

◆ set_num_threads()

template<typename TargetFrame = gtsam_points::PointCloud, typename SourceFrame = gtsam_points::PointCloud>
void gtsam_points::IntegratedGICPFactor_< TargetFrame, SourceFrame >::set_num_threads ( int  n)
inline

Set the number of thread used for linearization of this factor.

Note
If your GTSAM is built with TBB, linearization is already multi-threaded and setting n>1 can rather affect the processing speed.

The documentation for this class was generated from the following files: