SACSegmentationFromNormals represents the PCL nodelet segmentation class for Sample Consensus methods and models that require the use of surface normals for estimation. More...
#include <sac_segmentation.h>
Public Member Functions | |
std::string | getInputTFframe () |
Get the TF frame the input PointCloud should be transformed into before processing. More... | |
std::string | getOutputTFframe () |
Get the TF frame the PointCloud should be transformed into after processing. More... | |
void | setInputTFframe (std::string tf_frame) |
Set the input TF frame the data should be transformed into before processing, if input.header.frame_id is different. More... | |
void | setOutputTFframe (std::string tf_frame) |
Set the output TF frame the data should be transformed into after processing. More... | |
Public Member Functions inherited from pcl_ros::SACSegmentation | |
std::string | getInputTFframe () |
Get the TF frame the input PointCloud should be transformed into before processing. More... | |
std::string | getOutputTFframe () |
Get the TF frame the PointCloud should be transformed into after processing. More... | |
SACSegmentation () | |
Constructor. More... | |
void | setInputTFframe (std::string tf_frame) |
Set the input TF frame the data should be transformed into before processing, if input.header.frame_id is different. More... | |
void | setOutputTFframe (std::string tf_frame) |
Set the output TF frame the data should be transformed into after processing. More... | |
Public Member Functions inherited from pcl_ros::PCLNodelet | |
PCLNodelet () | |
Empty constructor. More... | |
Public Member Functions inherited from nodelet_topic_tools::NodeletLazy | |
NodeletLazy () | |
Public Member Functions inherited from nodelet::Nodelet | |
void | init (const std::string &name, const M_string &remapping_args, const V_string &my_argv, ros::CallbackQueueInterface *st_queue=NULL, ros::CallbackQueueInterface *mt_queue=NULL) |
Nodelet () | |
virtual | ~Nodelet () |
Protected Member Functions | |
void | axis_callback (const pcl_msgs::ModelCoefficientsConstPtr &model) |
Model callback. More... | |
void | config_callback (SACSegmentationFromNormalsConfig &config, uint32_t level) |
Dynamic reconfigure callback. More... | |
void | input_callback (const PointCloudConstPtr &cloud) |
Input point cloud callback. Because we want to use the same synchronizer object, we push back empty elements with the same timestamp. More... | |
void | input_normals_indices_callback (const PointCloudConstPtr &cloud, const PointCloudNConstPtr &cloud_normals, const PointIndicesConstPtr &indices) |
Input point cloud callback. More... | |
virtual void | onInit () |
Nodelet initialization routine. More... | |
virtual void | subscribe () |
LazyNodelet connection routine. More... | |
virtual void | unsubscribe () |
Protected Member Functions inherited from pcl_ros::SACSegmentation | |
void | config_callback (SACSegmentationConfig &config, uint32_t level) |
Dynamic reconfigure callback. More... | |
void | indices_callback (const PointIndicesConstPtr &indices) |
Indices callback. Used when latched_indices_ is set. More... | |
void | input_callback (const PointCloudConstPtr &input) |
Input callback. Used when latched_indices_ is set. More... | |
void | input_indices_callback (const PointCloudConstPtr &cloud, const PointIndicesConstPtr &indices) |
Input point cloud callback. Used when use_indices is set. More... | |
Protected Member Functions inherited from pcl_ros::PCLNodelet | |
bool | isValid (const PointCloud2::ConstPtr &cloud, const std::string &topic_name="input") |
Test whether a given PointCloud message is "valid" (i.e., has points, and width and height are non-zero). More... | |
bool | isValid (const PointCloudConstPtr &cloud, const std::string &topic_name="input") |
Test whether a given PointCloud message is "valid" (i.e., has points, and width and height are non-zero). More... | |
bool | isValid (const PointIndicesConstPtr &indices, const std::string &topic_name="indices") |
Test whether a given PointIndices message is "valid" (i.e., has values). More... | |
bool | isValid (const ModelCoefficientsConstPtr &model, const std::string &topic_name="model") |
Test whether a given ModelCoefficients message is "valid" (i.e., has values). More... | |
Protected Member Functions inherited from nodelet_topic_tools::NodeletLazy | |
ros::Publisher | advertise (ros::NodeHandle &nh, std::string topic, int queue_size, bool latch=false) |
virtual void | connectionCallback (const ros::SingleSubscriberPublisher &pub) |
virtual void | onInitPostProcess () |
virtual void | warnNeverSubscribedCallback (const ros::WallTimerEvent &event) |
Protected Member Functions inherited from nodelet::Nodelet | |
ros::CallbackQueueInterface & | getMTCallbackQueue () const |
ros::NodeHandle & | getMTNodeHandle () const |
ros::NodeHandle & | getMTPrivateNodeHandle () const |
const V_string & | getMyArgv () const |
const std::string & | getName () const |
ros::NodeHandle & | getNodeHandle () const |
ros::NodeHandle & | getPrivateNodeHandle () const |
const M_string & | getRemappingArgs () const |
ros::CallbackQueueInterface & | getSTCallbackQueue () const |
std::string | getSuffixedName (const std::string &suffix) const |
Protected Attributes | |
message_filters::PassThrough< PointIndices > | nf_ |
Null passthrough filter, used for pushing empty elements in the synchronizer. More... | |
boost::shared_ptr< dynamic_reconfigure::Server< SACSegmentationFromNormalsConfig > > | srv_ |
Pointer to a dynamic reconfigure service. More... | |
ros::Subscriber | sub_axis_ |
The input PointCloud subscriber. More... | |
message_filters::Subscriber< PointCloudN > | sub_normals_filter_ |
The normals PointCloud subscriber filter. More... | |
std::string | tf_input_frame_ |
The input TF frame the data should be transformed into, if input.header.frame_id is different. More... | |
std::string | tf_input_orig_frame_ |
The original data input TF frame. More... | |
std::string | tf_output_frame_ |
The output TF frame the data should be transformed into, if input.header.frame_id is different. More... | |
Protected Attributes inherited from pcl_ros::SACSegmentation | |
PointIndices | indices_ |
Pointer to a set of indices stored internally. (used when latched_indices_ is set). More... | |
int | min_inliers_ |
message_filters::PassThrough< pcl_msgs::PointIndices > | nf_pi_ |
Null passthrough filter, used for pushing empty elements in the synchronizer. More... | |
ros::Publisher | pub_indices_ |
The output PointIndices publisher. More... | |
ros::Publisher | pub_model_ |
The output ModelCoefficients publisher. More... | |
boost::shared_ptr< dynamic_reconfigure::Server< SACSegmentationConfig > > | srv_ |
Pointer to a dynamic reconfigure service. More... | |
ros::Subscriber | sub_input_ |
The input PointCloud subscriber. More... | |
std::string | tf_input_frame_ |
The input TF frame the data should be transformed into, if input.header.frame_id is different. More... | |
std::string | tf_input_orig_frame_ |
The original data input TF frame. More... | |
std::string | tf_output_frame_ |
The output TF frame the data should be transformed into, if input.header.frame_id is different. More... | |
Protected Attributes inherited from pcl_ros::PCLNodelet | |
bool | approximate_sync_ |
True if we use an approximate time synchronizer versus an exact one (false by default). More... | |
bool | latched_indices_ |
Set to true if the indices topic is latched. More... | |
int | max_queue_size_ |
The maximum queue size (default: 3). More... | |
ros::Publisher | pub_output_ |
The output PointCloud publisher. More... | |
message_filters::Subscriber< PointIndices > | sub_indices_filter_ |
The message filter subscriber for PointIndices. More... | |
message_filters::Subscriber< PointCloud > | sub_input_filter_ |
The message filter subscriber for PointCloud2. More... | |
tf::TransformListener | tf_listener_ |
TF listener object. More... | |
bool | use_indices_ |
Set to true if point indices are used. More... | |
Protected Attributes inherited from nodelet_topic_tools::NodeletLazy | |
boost::mutex | connection_mutex_ |
ConnectionStatus | connection_status_ |
bool | ever_subscribed_ |
bool | lazy_ |
boost::shared_ptr< ros::NodeHandle > | nh_ |
boost::shared_ptr< ros::NodeHandle > | pnh_ |
std::vector< ros::Publisher > | publishers_ |
ros::WallTimer | timer_ever_subscribed_ |
bool | verbose_connection_ |
Private Types | |
typedef pcl::PointCloud< pcl::PointXYZ > | PointCloud |
typedef PointCloud::ConstPtr | PointCloudConstPtr |
typedef pcl::PointCloud< pcl::Normal > | PointCloudN |
typedef PointCloudN::ConstPtr | PointCloudNConstPtr |
typedef PointCloudN::Ptr | PointCloudNPtr |
typedef PointCloud::Ptr | PointCloudPtr |
Private Attributes | |
pcl::SACSegmentationFromNormals< pcl::PointXYZ, pcl::Normal > | impl_ |
The PCL implementation used. More... | |
boost::mutex | mutex_ |
Internal mutex. More... | |
boost::shared_ptr< message_filters::Synchronizer< sync_policies::ApproximateTime< PointCloud, PointCloudN, PointIndices > > > | sync_input_normals_indices_a_ |
Synchronized input, normals, and indices. More... | |
boost::shared_ptr< message_filters::Synchronizer< sync_policies::ExactTime< PointCloud, PointCloudN, PointIndices > > > | sync_input_normals_indices_e_ |
Additional Inherited Members | |
Public Types inherited from pcl_ros::PCLNodelet | |
typedef boost::shared_ptr< const std::vector< int > > | IndicesConstPtr |
typedef boost::shared_ptr< std::vector< int > > | IndicesPtr |
typedef pcl_msgs::ModelCoefficients | ModelCoefficients |
typedef ModelCoefficients::ConstPtr | ModelCoefficientsConstPtr |
typedef ModelCoefficients::Ptr | ModelCoefficientsPtr |
typedef pcl::PointCloud< pcl::PointXYZ > | PointCloud |
typedef sensor_msgs::PointCloud2 | PointCloud2 |
typedef PointCloud::ConstPtr | PointCloudConstPtr |
typedef PointCloud::Ptr | PointCloudPtr |
typedef pcl_msgs::PointIndices | PointIndices |
typedef PointIndices::ConstPtr | PointIndicesConstPtr |
typedef PointIndices::Ptr | PointIndicesPtr |
SACSegmentationFromNormals represents the PCL nodelet segmentation class for Sample Consensus methods and models that require the use of surface normals for estimation.
Definition at line 181 of file sac_segmentation.h.
|
private |
Definition at line 183 of file sac_segmentation.h.
|
private |
Definition at line 185 of file sac_segmentation.h.
|
private |
Definition at line 187 of file sac_segmentation.h.
|
private |
Definition at line 189 of file sac_segmentation.h.
|
private |
Definition at line 188 of file sac_segmentation.h.
|
private |
Definition at line 184 of file sac_segmentation.h.
|
protected |
Model callback.
model | the sample consensus model found |
Definition at line 504 of file sac_segmentation.cpp.
|
protected |
Dynamic reconfigure callback.
config | the config object |
level | the dynamic reconfigure level |
Definition at line 521 of file sac_segmentation.cpp.
|
inline |
Get the TF frame the input PointCloud should be transformed into before processing.
Definition at line 198 of file sac_segmentation.h.
|
inline |
Get the TF frame the PointCloud should be transformed into after processing.
Definition at line 206 of file sac_segmentation.h.
|
inlineprotected |
Input point cloud callback. Because we want to use the same synchronizer object, we push back empty elements with the same timestamp.
Definition at line 224 of file sac_segmentation.h.
|
protected |
Input point cloud callback.
cloud | the pointer to the input point cloud |
cloud_normals | the pointer to the input point cloud normals |
indices | the pointer to the input point cloud indices |
DEBUG
Definition at line 587 of file sac_segmentation.cpp.
|
protectedvirtual |
Nodelet initialization routine.
Reimplemented from pcl_ros::SACSegmentation.
Definition at line 364 of file sac_segmentation.cpp.
|
inline |
Set the input TF frame the data should be transformed into before processing, if input.header.frame_id is different.
tf_frame | the TF frame the input PointCloud should be transformed into before processing |
Definition at line 195 of file sac_segmentation.h.
|
inline |
Set the output TF frame the data should be transformed into after processing.
tf_frame | the TF frame the PointCloud should be transformed into after processing |
Definition at line 203 of file sac_segmentation.h.
|
protectedvirtual |
LazyNodelet connection routine.
Reimplemented from pcl_ros::SACSegmentation.
Definition at line 447 of file sac_segmentation.cpp.
|
protectedvirtual |
Reimplemented from pcl_ros::SACSegmentation.
Definition at line 491 of file sac_segmentation.cpp.
|
private |
The PCL implementation used.
Definition at line 274 of file sac_segmentation.h.
|
private |
Internal mutex.
Definition at line 271 of file sac_segmentation.h.
|
protected |
Null passthrough filter, used for pushing empty elements in the synchronizer.
Definition at line 233 of file sac_segmentation.h.
|
protected |
Pointer to a dynamic reconfigure service.
Definition at line 217 of file sac_segmentation.h.
|
protected |
The input PointCloud subscriber.
Definition at line 214 of file sac_segmentation.h.
|
protected |
The normals PointCloud subscriber filter.
Definition at line 211 of file sac_segmentation.h.
|
private |
Synchronized input, normals, and indices.
Definition at line 277 of file sac_segmentation.h.
|
private |
Definition at line 278 of file sac_segmentation.h.
|
protected |
The input TF frame the data should be transformed into, if input.header.frame_id is different.
Definition at line 236 of file sac_segmentation.h.
|
protected |
The original data input TF frame.
Definition at line 238 of file sac_segmentation.h.
|
protected |
The output TF frame the data should be transformed into, if input.header.frame_id is different.
Definition at line 240 of file sac_segmentation.h.