Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
jsk_pcl_ros::EdgebasedCubeFinder Class Reference

#include <edgebased_cube_finder.h>

Inheritance diagram for jsk_pcl_ros::EdgebasedCubeFinder:
Inheritance graph
[legend]

Public Types

typedef jsk_pcl_ros::EdgebasedCubeFinderConfig Config
 
enum  EdgeRelation { NOT_PERPENDICULAR, A_PERPENDICULAR, B_PERPENDICULAR, C_PERPENDICULAR }
 
typedef pcl::PointXYZRGB PointT
 
typedef message_filters::sync_policies::ExactTime< sensor_msgs::PointCloud2, jsk_recognition_msgs::ParallelEdgeArray > SyncPolicy
 

Public Member Functions

virtual ~EdgebasedCubeFinder ()
 

Protected Member Functions

virtual std::vector< CoefficientsPaircombinateCoefficients (const std::vector< pcl::ModelCoefficients::Ptr > &coefficients)
 
virtual std::vector< IndicesPaircombinateIndices (const std::vector< pcl::PointIndices::Ptr > &indices)
 
virtual void configCallback (Config &config, uint32_t level)
 
virtual jsk_recognition_utils::ConvexPolygon::Ptr convexFromPairs (const pcl::PointCloud< PointT >::Ptr cloud, const CoefficientsPair &coefficients_pair, const IndicesPair &indices_pair)
 
virtual int countInliers (const pcl::PointCloud< PointT >::Ptr cloud, const jsk_recognition_utils::ConvexPolygon::Ptr convex)
 
virtual jsk_recognition_utils::Cube::Ptr cubeFromIndicesAndCoefficients (const pcl::PointCloud< PointT >::Ptr cloud, const IndicesCoefficientsTriple &indices_coefficients_triple, pcl::PointCloud< EdgebasedCubeFinder::PointT >::Ptr points_on_edge)
 
virtual void estimate (const sensor_msgs::PointCloud2::ConstPtr &input_cloud, const jsk_recognition_msgs::ParallelEdgeArray::ConstPtr &input_edges)
 
virtual void estimate2 (const sensor_msgs::PointCloud2::ConstPtr &input_cloud, const jsk_recognition_msgs::ParallelEdgeArray::ConstPtr &input_edges)
 
virtual jsk_recognition_utils::ConvexPolygon::Ptr estimateConvexPolygon (const pcl::PointCloud< PointT >::Ptr cloud, const pcl::PointIndices::Ptr indices, pcl::ModelCoefficients::Ptr coefficients, pcl::PointIndices::Ptr inliers)
 
virtual void estimateParallelPlane (const jsk_recognition_utils::ConvexPolygon::Ptr convex, const pcl::PointCloud< PointT >::Ptr filtered_cloud, pcl::PointIndices::Ptr output_inliers, pcl::ModelCoefficients::Ptr output_coefficients)
 
virtual void estimatePerpendicularPlane (const jsk_recognition_utils::ConvexPolygon::Ptr convex, const CoefficientsPair &edge_coefficients, const pcl::PointCloud< PointT >::Ptr filtered_cloud, pcl::PointIndices::Ptr output_inliers, pcl::ModelCoefficients::Ptr output_coefficients)
 
virtual pcl::PointCloud< PointT >::Ptr extractPointCloud (const pcl::PointCloud< PointT >::Ptr cloud, const pcl::PointIndices::Ptr indices)
 
virtual void filterBasedOnConvex (const pcl::PointCloud< PointT >::Ptr cloud, const std::vector< jsk_recognition_utils::ConvexPolygon::Ptr > &convexes, std::vector< int > &output_indices)
 
virtual void filterPairsBasedOnParallelEdgeDistances (const std::vector< IndicesPair > &pairs, const std::vector< CoefficientsPair > &coefficients_pair, std::vector< IndicesPair > &filtered_indices_pairs, std::vector< CoefficientsPair > &filtered_coefficients_pairs)
 
virtual std::vector< IndicesCoefficientsTriplefilterPerpendicularEdgeTriples (const std::vector< IndicesCoefficientsTriple > &triples)
 
virtual bool isPerpendicularVector (const Eigen::Vector3f &a, const Eigen::Vector3f &b)
 
virtual jsk_recognition_utils::Line::Ptr midLineFromCoefficientsPair (const CoefficientsPair &pair)
 
virtual jsk_recognition_utils::PointPair minMaxPointOnLine (const jsk_recognition_utils::Line &line, const pcl::PointCloud< PointT >::Ptr cloud)
 
virtual void onInit ()
 
virtual EdgeRelation perpendicularEdgeTriple (const jsk_recognition_utils::Line &edge_a, const jsk_recognition_utils::Line &edge_b, const jsk_recognition_utils::Line &edge_c)
 
virtual pcl::PointIndices::Ptr preparePointCloudForRANSAC (const jsk_recognition_utils::ConvexPolygon::Ptr convex, const CoefficientsPair &edge_coefficients_pair, const pcl::PointCloud< PointT >::Ptr cloud)
 
virtual void subscribe ()
 
virtual std::vector< IndicesCoefficientsTripletripleIndicesAndCoefficients (const std::vector< pcl::PointIndices::Ptr > &indices, const std::vector< pcl::ModelCoefficients::Ptr > &coefficients)
 
virtual void unsubscribe ()
 

Protected Attributes

double convex_area_threshold_
 
double convex_edge_threshold_
 
double min_inliers_
 
boost::mutex mutex_
 
double outlier_threshold_
 
double parallel_edge_distance_max_threshold_
 
double parallel_edge_distance_min_threshold_
 
ros::Publisher pub_
 
ros::Publisher pub_debug_clusers_
 
ros::Publisher pub_debug_filtered_cloud_
 
ros::Publisher pub_debug_marker_
 
ros::Publisher pub_debug_polygons_
 
ros::Publisher pub_pose_array_
 
boost::shared_ptr< dynamic_reconfigure::Server< Config > > srv_
 
message_filters::Subscriber< jsk_recognition_msgs::ParallelEdgeArray > sub_edges_
 
message_filters::Subscriber< sensor_msgs::PointCloud2 > sub_input_
 
boost::shared_ptr< message_filters::Synchronizer< SyncPolicy > > sync_
 

Detailed Description

Definition at line 189 of file edgebased_cube_finder.h.

Member Typedef Documentation

◆ Config

typedef jsk_pcl_ros::EdgebasedCubeFinderConfig jsk_pcl_ros::EdgebasedCubeFinder::Config

Definition at line 196 of file edgebased_cube_finder.h.

◆ PointT

typedef pcl::PointXYZRGB jsk_pcl_ros::EdgebasedCubeFinder::PointT

Definition at line 195 of file edgebased_cube_finder.h.

◆ SyncPolicy

typedef message_filters::sync_policies::ExactTime< sensor_msgs::PointCloud2, jsk_recognition_msgs::ParallelEdgeArray > jsk_pcl_ros::EdgebasedCubeFinder::SyncPolicy

Definition at line 194 of file edgebased_cube_finder.h.

Member Enumeration Documentation

◆ EdgeRelation

Enumerator
NOT_PERPENDICULAR 
A_PERPENDICULAR 
B_PERPENDICULAR 
C_PERPENDICULAR 

Definition at line 197 of file edgebased_cube_finder.h.

Constructor & Destructor Documentation

◆ ~EdgebasedCubeFinder()

jsk_pcl_ros::EdgebasedCubeFinder::~EdgebasedCubeFinder ( )
virtual

Definition at line 443 of file edgebased_cube_finder_nodelet.cpp.

Member Function Documentation

◆ combinateCoefficients()

std::vector< CoefficientsPair > jsk_pcl_ros::EdgebasedCubeFinder::combinateCoefficients ( const std::vector< pcl::ModelCoefficients::Ptr > &  coefficients)
protectedvirtual

Definition at line 1257 of file edgebased_cube_finder_nodelet.cpp.

◆ combinateIndices()

std::vector< IndicesPair > jsk_pcl_ros::EdgebasedCubeFinder::combinateIndices ( const std::vector< pcl::PointIndices::Ptr > &  indices)
protectedvirtual

Definition at line 1243 of file edgebased_cube_finder_nodelet.cpp.

◆ configCallback()

void jsk_pcl_ros::EdgebasedCubeFinder::configCallback ( Config config,
uint32_t  level 
)
protectedvirtual

Definition at line 403 of file edgebased_cube_finder_nodelet.cpp.

◆ convexFromPairs()

jsk_recognition_utils::ConvexPolygon::Ptr jsk_pcl_ros::EdgebasedCubeFinder::convexFromPairs ( const pcl::PointCloud< PointT >::Ptr  cloud,
const CoefficientsPair coefficients_pair,
const IndicesPair indices_pair 
)
protectedvirtual

Definition at line 510 of file edgebased_cube_finder_nodelet.cpp.

◆ countInliers()

int jsk_pcl_ros::EdgebasedCubeFinder::countInliers ( const pcl::PointCloud< PointT >::Ptr  cloud,
const jsk_recognition_utils::ConvexPolygon::Ptr  convex 
)
protectedvirtual

Definition at line 365 of file edgebased_cube_finder_nodelet.cpp.

◆ cubeFromIndicesAndCoefficients()

jsk_recognition_utils::Cube::Ptr jsk_pcl_ros::EdgebasedCubeFinder::cubeFromIndicesAndCoefficients ( const pcl::PointCloud< PointT >::Ptr  cloud,
const IndicesCoefficientsTriple indices_coefficients_triple,
pcl::PointCloud< EdgebasedCubeFinder::PointT >::Ptr  points_on_edge 
)
protectedvirtual

Definition at line 639 of file edgebased_cube_finder_nodelet.cpp.

◆ estimate()

void jsk_pcl_ros::EdgebasedCubeFinder::estimate ( const sensor_msgs::PointCloud2::ConstPtr &  input_cloud,
const jsk_recognition_msgs::ParallelEdgeArray::ConstPtr &  input_edges 
)
protectedvirtual

Definition at line 750 of file edgebased_cube_finder_nodelet.cpp.

◆ estimate2()

void jsk_pcl_ros::EdgebasedCubeFinder::estimate2 ( const sensor_msgs::PointCloud2::ConstPtr &  input_cloud,
const jsk_recognition_msgs::ParallelEdgeArray::ConstPtr &  input_edges 
)
protectedvirtual

Definition at line 920 of file edgebased_cube_finder_nodelet.cpp.

◆ estimateConvexPolygon()

jsk_recognition_utils::ConvexPolygon::Ptr jsk_pcl_ros::EdgebasedCubeFinder::estimateConvexPolygon ( const pcl::PointCloud< PointT >::Ptr  cloud,
const pcl::PointIndices::Ptr  indices,
pcl::ModelCoefficients::Ptr  coefficients,
pcl::PointIndices::Ptr  inliers 
)
protectedvirtual

Definition at line 1214 of file edgebased_cube_finder_nodelet.cpp.

◆ estimateParallelPlane()

void jsk_pcl_ros::EdgebasedCubeFinder::estimateParallelPlane ( const jsk_recognition_utils::ConvexPolygon::Ptr  convex,
const pcl::PointCloud< PointT >::Ptr  filtered_cloud,
pcl::PointIndices::Ptr  output_inliers,
pcl::ModelCoefficients::Ptr  output_coefficients 
)
protectedvirtual

Definition at line 596 of file edgebased_cube_finder_nodelet.cpp.

◆ estimatePerpendicularPlane()

void jsk_pcl_ros::EdgebasedCubeFinder::estimatePerpendicularPlane ( const jsk_recognition_utils::ConvexPolygon::Ptr  convex,
const CoefficientsPair edge_coefficients,
const pcl::PointCloud< PointT >::Ptr  filtered_cloud,
pcl::PointIndices::Ptr  output_inliers,
pcl::ModelCoefficients::Ptr  output_coefficients 
)
protectedvirtual

Definition at line 615 of file edgebased_cube_finder_nodelet.cpp.

◆ extractPointCloud()

pcl::PointCloud< EdgebasedCubeFinder::PointT >::Ptr jsk_pcl_ros::EdgebasedCubeFinder::extractPointCloud ( const pcl::PointCloud< PointT >::Ptr  cloud,
const pcl::PointIndices::Ptr  indices 
)
protectedvirtual

Definition at line 483 of file edgebased_cube_finder_nodelet.cpp.

◆ filterBasedOnConvex()

void jsk_pcl_ros::EdgebasedCubeFinder::filterBasedOnConvex ( const pcl::PointCloud< PointT >::Ptr  cloud,
const std::vector< jsk_recognition_utils::ConvexPolygon::Ptr > &  convexes,
std::vector< int > &  output_indices 
)
protectedvirtual

Definition at line 382 of file edgebased_cube_finder_nodelet.cpp.

◆ filterPairsBasedOnParallelEdgeDistances()

void jsk_pcl_ros::EdgebasedCubeFinder::filterPairsBasedOnParallelEdgeDistances ( const std::vector< IndicesPair > &  pairs,
const std::vector< CoefficientsPair > &  coefficients_pair,
std::vector< IndicesPair > &  filtered_indices_pairs,
std::vector< CoefficientsPair > &  filtered_coefficients_pairs 
)
protectedvirtual

Definition at line 536 of file edgebased_cube_finder_nodelet.cpp.

◆ filterPerpendicularEdgeTriples()

std::vector< IndicesCoefficientsTriple > jsk_pcl_ros::EdgebasedCubeFinder::filterPerpendicularEdgeTriples ( const std::vector< IndicesCoefficientsTriple > &  triples)
protectedvirtual

Definition at line 865 of file edgebased_cube_finder_nodelet.cpp.

◆ isPerpendicularVector()

bool jsk_pcl_ros::EdgebasedCubeFinder::isPerpendicularVector ( const Eigen::Vector3f a,
const Eigen::Vector3f b 
)
protectedvirtual

Definition at line 812 of file edgebased_cube_finder_nodelet.cpp.

◆ midLineFromCoefficientsPair()

jsk_recognition_utils::Line::Ptr jsk_pcl_ros::EdgebasedCubeFinder::midLineFromCoefficientsPair ( const CoefficientsPair pair)
protectedvirtual

Definition at line 473 of file edgebased_cube_finder_nodelet.cpp.

◆ minMaxPointOnLine()

jsk_recognition_utils::PointPair jsk_pcl_ros::EdgebasedCubeFinder::minMaxPointOnLine ( const jsk_recognition_utils::Line line,
const pcl::PointCloud< PointT >::Ptr  cloud 
)
protectedvirtual

Definition at line 495 of file edgebased_cube_finder_nodelet.cpp.

◆ onInit()

void jsk_pcl_ros::EdgebasedCubeFinder::onInit ( )
protectedvirtual

Definition at line 414 of file edgebased_cube_finder_nodelet.cpp.

◆ perpendicularEdgeTriple()

EdgebasedCubeFinder::EdgeRelation jsk_pcl_ros::EdgebasedCubeFinder::perpendicularEdgeTriple ( const jsk_recognition_utils::Line edge_a,
const jsk_recognition_utils::Line edge_b,
const jsk_recognition_utils::Line edge_c 
)
protectedvirtual

Definition at line 832 of file edgebased_cube_finder_nodelet.cpp.

◆ preparePointCloudForRANSAC()

pcl::PointIndices::Ptr jsk_pcl_ros::EdgebasedCubeFinder::preparePointCloudForRANSAC ( const jsk_recognition_utils::ConvexPolygon::Ptr  convex,
const CoefficientsPair edge_coefficients_pair,
const pcl::PointCloud< PointT >::Ptr  cloud 
)
protectedvirtual

Definition at line 571 of file edgebased_cube_finder_nodelet.cpp.

◆ subscribe()

void jsk_pcl_ros::EdgebasedCubeFinder::subscribe ( )
protectedvirtual

Definition at line 454 of file edgebased_cube_finder_nodelet.cpp.

◆ tripleIndicesAndCoefficients()

std::vector< IndicesCoefficientsTriple > jsk_pcl_ros::EdgebasedCubeFinder::tripleIndicesAndCoefficients ( const std::vector< pcl::PointIndices::Ptr > &  indices,
const std::vector< pcl::ModelCoefficients::Ptr > &  coefficients 
)
protectedvirtual

Definition at line 1179 of file edgebased_cube_finder_nodelet.cpp.

◆ unsubscribe()

void jsk_pcl_ros::EdgebasedCubeFinder::unsubscribe ( )
protectedvirtual

Definition at line 467 of file edgebased_cube_finder_nodelet.cpp.

Member Data Documentation

◆ convex_area_threshold_

double jsk_pcl_ros::EdgebasedCubeFinder::convex_area_threshold_
protected

Definition at line 331 of file edgebased_cube_finder.h.

◆ convex_edge_threshold_

double jsk_pcl_ros::EdgebasedCubeFinder::convex_edge_threshold_
protected

Definition at line 332 of file edgebased_cube_finder.h.

◆ min_inliers_

double jsk_pcl_ros::EdgebasedCubeFinder::min_inliers_
protected

Definition at line 330 of file edgebased_cube_finder.h.

◆ mutex_

boost::mutex jsk_pcl_ros::EdgebasedCubeFinder::mutex_
protected

Definition at line 325 of file edgebased_cube_finder.h.

◆ outlier_threshold_

double jsk_pcl_ros::EdgebasedCubeFinder::outlier_threshold_
protected

Definition at line 329 of file edgebased_cube_finder.h.

◆ parallel_edge_distance_max_threshold_

double jsk_pcl_ros::EdgebasedCubeFinder::parallel_edge_distance_max_threshold_
protected

Definition at line 333 of file edgebased_cube_finder.h.

◆ parallel_edge_distance_min_threshold_

double jsk_pcl_ros::EdgebasedCubeFinder::parallel_edge_distance_min_threshold_
protected

Definition at line 333 of file edgebased_cube_finder.h.

◆ pub_

ros::Publisher jsk_pcl_ros::EdgebasedCubeFinder::pub_
protected

Definition at line 321 of file edgebased_cube_finder.h.

◆ pub_debug_clusers_

ros::Publisher jsk_pcl_ros::EdgebasedCubeFinder::pub_debug_clusers_
protected

Definition at line 324 of file edgebased_cube_finder.h.

◆ pub_debug_filtered_cloud_

ros::Publisher jsk_pcl_ros::EdgebasedCubeFinder::pub_debug_filtered_cloud_
protected

Definition at line 323 of file edgebased_cube_finder.h.

◆ pub_debug_marker_

ros::Publisher jsk_pcl_ros::EdgebasedCubeFinder::pub_debug_marker_
protected

Definition at line 323 of file edgebased_cube_finder.h.

◆ pub_debug_polygons_

ros::Publisher jsk_pcl_ros::EdgebasedCubeFinder::pub_debug_polygons_
protected

Definition at line 324 of file edgebased_cube_finder.h.

◆ pub_pose_array_

ros::Publisher jsk_pcl_ros::EdgebasedCubeFinder::pub_pose_array_
protected

Definition at line 322 of file edgebased_cube_finder.h.

◆ srv_

boost::shared_ptr<dynamic_reconfigure::Server<Config> > jsk_pcl_ros::EdgebasedCubeFinder::srv_
protected

Definition at line 317 of file edgebased_cube_finder.h.

◆ sub_edges_

message_filters::Subscriber<jsk_recognition_msgs::ParallelEdgeArray> jsk_pcl_ros::EdgebasedCubeFinder::sub_edges_
protected

Definition at line 320 of file edgebased_cube_finder.h.

◆ sub_input_

message_filters::Subscriber<sensor_msgs::PointCloud2> jsk_pcl_ros::EdgebasedCubeFinder::sub_input_
protected

Definition at line 319 of file edgebased_cube_finder.h.

◆ sync_

boost::shared_ptr<message_filters::Synchronizer<SyncPolicy> > jsk_pcl_ros::EdgebasedCubeFinder::sync_
protected

Definition at line 318 of file edgebased_cube_finder.h.


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


jsk_pcl_ros
Author(s): Yohei Kakiuchi
autogenerated on Tue Jan 7 2025 04:05:45