gtsam_points
Loading...
Searching...
No Matches
Public Member Functions | Protected Attributes | List of all members
gtsam_points::IncrementalCovarianceVoxelMap Struct Reference

Incremental voxelmap with online covariance and normal estimation. More...

#include <incremental_covariance_voxelmap.hpp>

Inheritance diagram for gtsam_points::IncrementalCovarianceVoxelMap:
Inheritance graph
[legend]
Collaboration diagram for gtsam_points::IncrementalCovarianceVoxelMap:
Collaboration graph
[legend]

Public Member Functions

 IncrementalCovarianceVoxelMap (double voxel_resolution)
 Constructor.
 
void set_num_neighbors (int num_neighbors)
 Set the number of neighbors for covariance estimation.
 
void set_min_num_neighbors (int min_num_neighbors)
 Set the minimum number of neighbors for covariance estimation.
 
void set_warmup_cycles (int warmup_cycles)
 Set the number of warmup cycles. Covariances of new points in this period are not re-evaluated every frame.
 
void set_lowrate_cycles (int lowrate_cycles)
 Set the number of lowrate update cycles. Covariances of invalid points are re-evaluated every this period.
 
void set_remove_invalid_age_thresh (int remove_invalid_age_thresh)
 Set the age threshold for removing invalid points. Invalid points older than this are removed.
 
void set_eig_stddev_thresh_scale (double eig_stddev_thresh_scale)
 Set the threshold scale for normal validation.
 
void set_num_threads (int num_threads)
 Set the number of threads for normal estimation.
 
virtual void clear () override
 Clear the voxelmap.
 
virtual void insert (const PointCloud &points) override
 Insert point into the voxelmap.
 
virtual size_t knn_search (const double *pt, size_t k, size_t *k_indices, double *k_sq_dists, double max_sq_dist=std::numeric_limits< double >::max()) const override
 Find k-nearest neighbors. This only finds neighbors with valid covariances.
 
size_t knn_search_force (const double *pt, size_t k, size_t *k_indices, double *k_sq_dists, double max_sq_dist=std::numeric_limits< double >::max()) const
 Find k-nearest neighbors. This finds neighbors regardless of the validity of covariances.
 
std::vector< size_t > valid_indices (int num_threads=-1) const
 Get valid point indices. If num_threads is -1, the member variable num_threads is used.
 
std::vector< Eigen::Vector4d > voxel_points (const std::vector< size_t > &indices) const
 Get points from indices.
 
std::vector< Eigen::Vector4d > voxel_normals (const std::vector< size_t > &indices) const
 Get normals from indices.
 
std::vector< Eigen::Matrix4d > voxel_covs (const std::vector< size_t > &indices) const
 Get covariances from indices.
 
virtual std::vector< Eigen::Vector4d > voxel_points () const override
 Get voxel points.
 
virtual std::vector< Eigen::Vector4d > voxel_normals () const override
 Get voxel normals.
 
virtual std::vector< Eigen::Matrix4d > voxel_covs () const override
 Get voxel covariances.
 
- Public Member Functions inherited from gtsam_points::IncrementalVoxelMap< IncrementalCovarianceContainer >
 IncrementalVoxelMap (double leaf_size)
 Constructor.
 
void set_voxel_resolution (const double leaf_size)
 Voxel resolution.
 
void set_lru_clear_cycle (const int lru_clear_cycle)
 LRU cache clearing cycle.
 
void set_lru_horizon (const int lru_horizon)
 LRU cache horizon.
 
void set_neighbor_voxel_mode (const int mode)
 Neighboring voxel search mode (1, 7, 19, or 27).
 
VoxelContents::Setting & voxel_insertion_setting ()
 Voxel setting.
 
double leaf_size () const
 Voxel size.
 
size_t num_voxels () const
 Number of voxels in the voxelmap.
 
size_t calc_index (const size_t voxel_id, const size_t point_id) const
 Calculate the global point index from the voxel index and the point index.
 
size_t voxel_id (const size_t i) const
 Extract the point ID from a global index.
 
size_t point_id (const size_t i) const
 Extract the voxel ID from a global index.
 
bool has_points () const
 
bool has_normals () const
 
bool has_covs () const
 
bool has_intensities () const
 
decltype(auto) point (const size_t i) const
 
decltype(auto) normal (const size_t i) const
 
decltype(auto) cov (const size_t i) const
 
decltype(auto) intensity (const size_t i) const
 
virtual std::vector< double > voxel_intensities () const
 
virtual PointCloudCPU::Ptr voxel_data () const
 
- Public Member Functions inherited from gtsam_points::NearestNeighborSearch
virtual size_t radius_search (const double *pt, double radius, std::vector< size_t > &indices, std::vector< double > &sq_dists, int max_num_neighbors=std::numeric_limits< int >::max()) const
 Radius search.
 

Protected Attributes

int num_neighbors
 Number of neighbors for covariance estimation.
 
int min_num_neighbors
 Minimum number of neighbors for covariance estimation.
 
int warmup_cycles
 Number of cycles for covariance warmup.
 
int lowrate_cycles
 Number of cycles for lowrate covariance estimation.
 
int remove_invalid_age_thresh
 Age threshold for removing invalid points.
 
double eig_stddev_thresh_scale
 Threshold scale for normal validation.
 
int num_threads
 Number of threads for normal estimation.
 
std::deque< RunningStatistics< Eigen::Array3d > > eig_stats
 Running statistics for eigenvalues.
 
- Protected Attributes inherited from gtsam_points::IncrementalVoxelMap< IncrementalCovarianceContainer >
double inv_leaf_size
 Inverse of the voxel size.
 
std::vector< Eigen::Vector3i > offsets
 Neighbor voxel offsets.
 
size_t lru_horizon
 LRU horizon size. Voxels that have not been accessed for lru_horizon steps are deleted.
 
size_t lru_clear_cycle
 LRU clear cycle. Voxel deletion is performed every lru_clear_cycle steps.
 
size_t lru_counter
 LRU counter. Incremented every step.
 
VoxelContents::Setting voxel_setting
 Voxel setting.
 
std::vector< std::shared_ptr< std::pair< VoxelInfo, IncrementalCovarianceContainer > > > flat_voxels
 Voxel contents.
 
std::unordered_map< Eigen::Vector3i, size_t, XORVector3iHashvoxels
 Voxel index map.
 

Additional Inherited Members

- Public Types inherited from gtsam_points::IncrementalVoxelMap< IncrementalCovarianceContainer >
using Ptr = std::shared_ptr< IncrementalVoxelMap >
 
using ConstPtr = std::shared_ptr< const IncrementalVoxelMap >
 
- Public Types inherited from gtsam_points::NearestNeighborSearch
using Ptr = std::shared_ptr< NearestNeighborSearch >
 
using ConstPtr = std::shared_ptr< const NearestNeighborSearch >
 
- Protected Member Functions inherited from gtsam_points::IncrementalVoxelMap< IncrementalCovarianceContainer >
std::vector< Eigen::Vector3i > neighbor_offsets (const int neighbor_voxel_mode) const
 
void visit_points (const Func &f) const
 
- Static Protected Attributes inherited from gtsam_points::IncrementalVoxelMap< IncrementalCovarianceContainer >
static constexpr int point_id_bits
 Use the first 32 bits for point id.
 
static constexpr int voxel_id_bits
 Use the remaining bits for voxel id.
 

Detailed Description

Incremental voxelmap with online covariance and normal estimation.

Constructor & Destructor Documentation

◆ IncrementalCovarianceVoxelMap()

gtsam_points::IncrementalCovarianceVoxelMap::IncrementalCovarianceVoxelMap ( double  voxel_resolution)

Constructor.

Parameters
voxel_resolutionVoxel resolution

Member Function Documentation

◆ clear()

virtual void gtsam_points::IncrementalCovarianceVoxelMap::clear ( )
overridevirtual

◆ insert()

virtual void gtsam_points::IncrementalCovarianceVoxelMap::insert ( const PointCloud points)
overridevirtual

Insert point into the voxelmap.

Reimplemented from gtsam_points::IncrementalVoxelMap< IncrementalCovarianceContainer >.

◆ knn_search()

virtual size_t gtsam_points::IncrementalCovarianceVoxelMap::knn_search ( const double *  pt,
size_t  k,
size_t *  k_indices,
double *  k_sq_dists,
double  max_sq_dist = std::numeric_limits< double >::max() 
) const
overridevirtual

Find k-nearest neighbors. This only finds neighbors with valid covariances.

Reimplemented from gtsam_points::IncrementalVoxelMap< IncrementalCovarianceContainer >.

◆ voxel_covs()

virtual std::vector< Eigen::Matrix4d > gtsam_points::IncrementalCovarianceVoxelMap::voxel_covs ( ) const
overridevirtual

Get voxel covariances.

Reimplemented from gtsam_points::IncrementalVoxelMap< IncrementalCovarianceContainer >.

◆ voxel_normals()

virtual std::vector< Eigen::Vector4d > gtsam_points::IncrementalCovarianceVoxelMap::voxel_normals ( ) const
overridevirtual

◆ voxel_points()

virtual std::vector< Eigen::Vector4d > gtsam_points::IncrementalCovarianceVoxelMap::voxel_points ( ) const
overridevirtual

The documentation for this struct was generated from the following file: