NASA Astrobee Robot Software  0.19.1
Flight software for the Astrobee robots operating inside the International Space Station.
point_cloud_common Namespace Reference

Classes

struct  ICPCorrespondences
 
class  PointCloudWithKnownCorrespondencesAligner
 
struct  PointCloudWithKnownCorrespondencesAlignerParams
 
class  PointToPlaneICP
 
struct  PointToPlaneICPParams
 

Functions

void LoadPointToPlaneICPParams (config_reader::ConfigReader &config, PointToPlaneICPParams &params)
 
void LoadPointCloudWithKnownCorrespondencesAlignerParams (config_reader::ConfigReader &config, PointCloudWithKnownCorrespondencesAlignerParams &params)
 
std::vector< Eigen::Vector3d > RandomPoints (const int num_points)
 
std::vector< Eigen::Vector3d > PlanePoints (const Eigen::Vector3d &point, const Eigen::Vector3d &width_vec, const Eigen::Vector3d &height_vec, const double width, const double height, const int num_width_points, const double num_height_points)
 
std::pair< std::vector< Eigen::Vector3d >, std::vector< Eigen::Vector3d > > RandomPointsWithNormals (const int num_points)
 
std::pair< std::vector< Eigen::Vector3d >, std::vector< Eigen::Vector3d > > CubicPoints ()
 
pcl::PointXYZ PCLPoint (const Eigen::Vector3d &point)
 
pcl::PointNormal PCLPointNormal (const Eigen::Vector3d &point, const Eigen::Vector3d &normal)
 
template<typename PointType >
pcl::PointCloud< PointType >::Ptr PointCloud (const std::vector< Eigen::Vector3d > &points)
 
pcl::PointCloud< pcl::PointNormal >::Ptr PointCloudWithNormals (const std::vector< Eigen::Vector3d > &points, const std::vector< Eigen::Vector3d > &normals)
 
PointToPlaneICPParams DefaultPointToPlaneICPParams ()
 
PointCloudWithKnownCorrespondencesAlignerParams DefaultPointCloudWithKnownCorrespondencesAlignerParams ()
 
template<typename PointType , typename PointWithNormalType >
void EstimateNormals (const typename pcl::PointCloud< PointType >::Ptr cloud, const double search_radius, pcl::PointCloud< PointWithNormalType > &cloud_with_normals)
 
template<typename PointType , typename PointWithNormalType >
void EstimateOrganizedNormals (const typename pcl::PointCloud< PointType >::Ptr cloud, const typename pcl::IntegralImageNormalEstimation< PointType, pcl::Normal >::NormalEstimationMethod method, const bool depth_dependent_smoothing, const double max_depth_change_factor, const double normal_smoothing_size, pcl::PointCloud< PointWithNormalType > &cloud_with_normals)
 
template<typename PointType >
void NormalSpaceSubsampling (typename pcl::PointCloud< PointType >::Ptr cloud, const int bins_per_axis, const int num_samples)
 
Eigen::Matrix4f RansacIA (const pcl::PointCloud< pcl::PointXYZINormal >::Ptr source_cloud, const pcl::PointCloud< pcl::PointXYZINormal >::Ptr target_cloud)
 
pcl::PointCloud< pcl::FPFHSignature33 >::Ptr EstimateHistogramFeatures (const pcl::PointCloud< pcl::PointXYZINormal >::Ptr cloud_with_normals)
 
Eigen::Matrix< double, 1, 6 > PointToPlaneJacobian (const gtsam::Point3 &source_point, const gtsam::Vector3 &normal, const gtsam::Pose3 &target_T_source)
 
Eigen::Matrix< double, 3, 6 > PointToPointJacobian (const gtsam::Point3 &source_point, const gtsam::Pose3 &target_T_source)
 
Eigen::Isometry3d RelativeTransformUmeyama (const std::vector< Eigen::Vector3d > &source_points, const std::vector< Eigen::Vector3d > &target_points)
 
template<typename PointType >
boost::optional< Eigen::Vector3d > GetNormal (const Eigen::Vector3d &point, const pcl::PointCloud< PointType > &cloud, const pcl::search::KdTree< PointType > &kdtree, const double search_radius=0.03)
 
template<typename PointType >
bool computePointNormal (const pcl::PointCloud< PointType > &cloud, const std::vector< int > &indices, float &normal_x, float &normal_y, float &normal_z, float &curvature)
 
boost::optional< Eigen::Matrix< double, 6, 6 > > PointToPointCovariance (const std::vector< Eigen::Vector3d > &source_points, const Eigen::Isometry3d &target_T_source)
 
boost::optional< Eigen::Matrix< double, 6, 6 > > PointToPlaneCovariance (const std::vector< Eigen::Vector3d > &source_points, const std::vector< Eigen::Vector3d > &target_normals, const Eigen::Isometry3d &target_T_source)
 
template<typename PointType >
Eigen::Vector3d Vector3d (const PointType &point)
 
template<typename PointType >
Eigen::Vector3d NormalVector3d (const PointType &point_with_normal)
 
pcl::PointXYZI Interpolate (const pcl::PointXYZI &point_a, const pcl::PointXYZI &point_b, const double alpha)
 
template<typename PointType >
bool ValidPoint (const PointType &point)=delete
 
template<>
bool ValidPoint< pcl::PointXYZ > (const pcl::PointXYZ &point)
 
template<>
bool ValidPoint< pcl::PointXYZI > (const pcl::PointXYZI &point)
 
template<>
bool ValidPoint< pcl::PointNormal > (const pcl::PointNormal &point)
 
template<>
bool ValidPoint< pcl::PointXYZINormal > (const pcl::PointXYZINormal &point)
 
template<typename Type >
bool ApproxZero (const Type &point, const double epsilon=1e-5)
 
template<typename PointXYZType >
bool NonzeroPointXYZ (const PointXYZType &point)
 
template<typename PointXYZType >
bool ValidPointXYZ (const PointXYZType &point)
 
template<typename PointNormalType >
bool ValidNormal (const PointNormalType &point)
 
template<typename PointIntensityType >
bool ValidIntensity (const PointIntensityType &point)
 
template<typename PointType >
void RemoveInvalidAndZeroPoints (pcl::PointCloud< PointType > &cloud)
 
template<typename PointType >
void ReplaceZerosWithNans (typename pcl::PointCloud< PointType > &cloud)
 
template<typename PointType >
pcl::PointCloud< PointType >::Ptr DownsamplePointCloud (const typename pcl::PointCloud< PointType >::Ptr cloud, const double leaf_size)
 
template<typename PointType >
pcl::PointCloud< PointType >::Ptr BilateralFilterOrganizedCloud (const typename pcl::PointCloud< PointType >::Ptr cloud, const double sigma_s, const double sigma_r)
 
template<typename PointType >
void FilterCorrespondences (const typename pcl::PointCloud< PointType > &input_cloud, const typename pcl::PointCloud< PointType > &target_cloud, pcl::Correspondences &correspondences)
 
template<typename PointType >
pcl::PointCloud< PointType >::Ptr FilteredPointCloud (const typename pcl::PointCloud< PointType >::Ptr unfiltered_cloud)
 
template<typename PointType , typename PointWithNormalType >
pcl::PointCloud< PointWithNormalType >::Ptr FilteredPointCloudWithNormals (const typename pcl::PointCloud< PointType >::Ptr unfiltered_cloud, const double search_radius)
 

Function Documentation

◆ ApproxZero()

template<typename Type >
bool point_cloud_common::ApproxZero ( const Type &  point,
const double  epsilon = 1e-5 
)

◆ BilateralFilterOrganizedCloud()

template<typename PointType >
pcl::PointCloud< PointType >::Ptr point_cloud_common::BilateralFilterOrganizedCloud ( const typename pcl::PointCloud< PointType >::Ptr  cloud,
const double  sigma_s,
const double  sigma_r 
)

◆ computePointNormal()

template<typename PointType >
bool point_cloud_common::computePointNormal ( const pcl::PointCloud< PointType > &  cloud,
const std::vector< int > &  indices,
float &  normal_x,
float &  normal_y,
float &  normal_z,
float &  curvature 
)

Placeholder for the 3x3 covariance matrix at each surface patch.

16-bytes aligned placeholder for the XYZ centroid of a surface patch.

Placeholder for the 3x3 covariance matrix at each surface patch.

16-bytes aligned placeholder for the XYZ centroid of a surface patch.

◆ CubicPoints()

std::pair< std::vector< Eigen::Vector3d >, std::vector< Eigen::Vector3d > > point_cloud_common::CubicPoints ( )

◆ DefaultPointCloudWithKnownCorrespondencesAlignerParams()

PointCloudWithKnownCorrespondencesAlignerParams point_cloud_common::DefaultPointCloudWithKnownCorrespondencesAlignerParams ( )

◆ DefaultPointToPlaneICPParams()

PointToPlaneICPParams point_cloud_common::DefaultPointToPlaneICPParams ( )

◆ DownsamplePointCloud()

template<typename PointType >
pcl::PointCloud< PointType >::Ptr point_cloud_common::DownsamplePointCloud ( const typename pcl::PointCloud< PointType >::Ptr  cloud,
const double  leaf_size 
)

◆ EstimateHistogramFeatures()

pcl::PointCloud< pcl::FPFHSignature33 >::Ptr point_cloud_common::EstimateHistogramFeatures ( const pcl::PointCloud< pcl::PointXYZINormal >::Ptr  cloud_with_normals)

◆ EstimateNormals()

template<typename PointType , typename PointWithNormalType >
void point_cloud_common::EstimateNormals ( const typename pcl::PointCloud< PointType >::Ptr  cloud,
const double  search_radius,
pcl::PointCloud< PointWithNormalType > &  cloud_with_normals 
)

◆ EstimateOrganizedNormals()

template<typename PointType , typename PointWithNormalType >
void point_cloud_common::EstimateOrganizedNormals ( const typename pcl::PointCloud< PointType >::Ptr  cloud,
const typename pcl::IntegralImageNormalEstimation< PointType, pcl::Normal >::NormalEstimationMethod  method,
const bool  depth_dependent_smoothing,
const double  max_depth_change_factor,
const double  normal_smoothing_size,
pcl::PointCloud< PointWithNormalType > &  cloud_with_normals 
)

◆ FilterCorrespondences()

template<typename PointType >
void point_cloud_common::FilterCorrespondences ( const typename pcl::PointCloud< PointType > &  input_cloud,
const typename pcl::PointCloud< PointType > &  target_cloud,
pcl::Correspondences &  correspondences 
)

◆ FilteredPointCloud()

template<typename PointType >
pcl::PointCloud< PointType >::Ptr point_cloud_common::FilteredPointCloud ( const typename pcl::PointCloud< PointType >::Ptr  unfiltered_cloud)

◆ FilteredPointCloudWithNormals()

template<typename PointType , typename PointWithNormalType >
pcl::PointCloud< PointWithNormalType >::Ptr point_cloud_common::FilteredPointCloudWithNormals ( const typename pcl::PointCloud< PointType >::Ptr  unfiltered_cloud,
const double  search_radius 
)

◆ GetNormal()

template<typename PointType >
boost::optional< Eigen::Vector3d > point_cloud_common::GetNormal ( const Eigen::Vector3d &  point,
const pcl::PointCloud< PointType > &  cloud,
const pcl::search::KdTree< PointType > &  kdtree,
const double  search_radius = 0.03 
)

◆ Interpolate()

pcl::PointXYZI point_cloud_common::Interpolate ( const pcl::PointXYZI &  point_a,
const pcl::PointXYZI &  point_b,
const double  alpha 
)

◆ LoadPointCloudWithKnownCorrespondencesAlignerParams()

void point_cloud_common::LoadPointCloudWithKnownCorrespondencesAlignerParams ( config_reader::ConfigReader config,
PointCloudWithKnownCorrespondencesAlignerParams params 
)

◆ LoadPointToPlaneICPParams()

void point_cloud_common::LoadPointToPlaneICPParams ( config_reader::ConfigReader config,
PointToPlaneICPParams params 
)

◆ NonzeroPointXYZ()

template<typename PointXYZType >
bool point_cloud_common::NonzeroPointXYZ ( const PointXYZType &  point)

◆ NormalSpaceSubsampling()

template<typename PointType >
void point_cloud_common::NormalSpaceSubsampling ( typename pcl::PointCloud< PointType >::Ptr  cloud,
const int  bins_per_axis,
const int  num_samples 
)

◆ NormalVector3d()

template<typename PointType >
Eigen::Vector3d point_cloud_common::NormalVector3d ( const PointType &  point_with_normal)

◆ PCLPoint()

pcl::PointXYZ point_cloud_common::PCLPoint ( const Eigen::Vector3d &  point)

◆ PCLPointNormal()

pcl::PointNormal point_cloud_common::PCLPointNormal ( const Eigen::Vector3d &  point,
const Eigen::Vector3d &  normal 
)

◆ PlanePoints()

std::vector< Eigen::Vector3d > point_cloud_common::PlanePoints ( const Eigen::Vector3d &  point,
const Eigen::Vector3d &  width_vec,
const Eigen::Vector3d &  height_vec,
const double  width,
const double  height,
const int  num_width_points,
const double  num_height_points 
)

◆ PointCloud()

template<typename PointType >
pcl::PointCloud< PointType >::Ptr point_cloud_common::PointCloud ( const std::vector< Eigen::Vector3d > &  points)

◆ PointCloudWithNormals()

pcl::PointCloud< pcl::PointNormal >::Ptr point_cloud_common::PointCloudWithNormals ( const std::vector< Eigen::Vector3d > &  points,
const std::vector< Eigen::Vector3d > &  normals 
)

◆ PointToPlaneCovariance()

boost::optional< Eigen::Matrix< double, 6, 6 > > point_cloud_common::PointToPlaneCovariance ( const std::vector< Eigen::Vector3d > &  source_points,
const std::vector< Eigen::Vector3d > &  target_normals,
const Eigen::Isometry3d &  target_T_source 
)

◆ PointToPlaneJacobian()

Eigen::Matrix< double, 1, 6 > point_cloud_common::PointToPlaneJacobian ( const gtsam::Point3 &  source_point,
const gtsam::Vector3 &  normal,
const gtsam::Pose3 &  target_T_source 
)

◆ PointToPointCovariance()

boost::optional< Eigen::Matrix< double, 6, 6 > > point_cloud_common::PointToPointCovariance ( const std::vector< Eigen::Vector3d > &  source_points,
const Eigen::Isometry3d &  target_T_source 
)

◆ PointToPointJacobian()

Eigen::Matrix< double, 3, 6 > point_cloud_common::PointToPointJacobian ( const gtsam::Point3 &  source_point,
const gtsam::Pose3 &  target_T_source 
)

◆ RandomPoints()

std::vector< Eigen::Vector3d > point_cloud_common::RandomPoints ( const int  num_points)

◆ RandomPointsWithNormals()

std::pair< std::vector< Eigen::Vector3d >, std::vector< Eigen::Vector3d > > point_cloud_common::RandomPointsWithNormals ( const int  num_points)

◆ RansacIA()

Eigen::Matrix4f point_cloud_common::RansacIA ( const pcl::PointCloud< pcl::PointXYZINormal >::Ptr  source_cloud,
const pcl::PointCloud< pcl::PointXYZINormal >::Ptr  target_cloud 
)

◆ RelativeTransformUmeyama()

Eigen::Isometry3d point_cloud_common::RelativeTransformUmeyama ( const std::vector< Eigen::Vector3d > &  source_points,
const std::vector< Eigen::Vector3d > &  target_points 
)

◆ RemoveInvalidAndZeroPoints()

template<typename PointType >
void point_cloud_common::RemoveInvalidAndZeroPoints ( pcl::PointCloud< PointType > &  cloud)

◆ ReplaceZerosWithNans()

template<typename PointType >
void point_cloud_common::ReplaceZerosWithNans ( typename pcl::PointCloud< PointType > &  cloud)

◆ ValidIntensity()

template<typename PointIntensityType >
bool point_cloud_common::ValidIntensity ( const PointIntensityType &  point)

◆ ValidNormal()

template<typename PointNormalType >
bool point_cloud_common::ValidNormal ( const PointNormalType &  point)

◆ ValidPoint()

template<typename PointType >
bool point_cloud_common::ValidPoint ( const PointType &  point)
delete

◆ ValidPoint< pcl::PointNormal >()

template<>
bool point_cloud_common::ValidPoint< pcl::PointNormal > ( const pcl::PointNormal &  point)

◆ ValidPoint< pcl::PointXYZ >()

template<>
bool point_cloud_common::ValidPoint< pcl::PointXYZ > ( const pcl::PointXYZ &  point)

◆ ValidPoint< pcl::PointXYZI >()

template<>
bool point_cloud_common::ValidPoint< pcl::PointXYZI > ( const pcl::PointXYZI &  point)

◆ ValidPoint< pcl::PointXYZINormal >()

template<>
bool point_cloud_common::ValidPoint< pcl::PointXYZINormal > ( const pcl::PointXYZINormal &  point)

◆ ValidPointXYZ()

template<typename PointXYZType >
bool point_cloud_common::ValidPointXYZ ( const PointXYZType &  point)

◆ Vector3d()

template<typename PointType >
Eigen::Vector3d point_cloud_common::Vector3d ( const PointType &  point)