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

#include <icp_registration.h>

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

Public Types

typedef jsk_pcl_ros::ICPRegistrationConfig Config
 
typedef message_filters::sync_policies::ExactTime< sensor_msgs::PointCloud2, geometry_msgs::PoseStamped > OffsetSyncPolicy
 
typedef pcl::PointXYZRGBNormal PointT
 
typedef message_filters::sync_policies::ExactTime< sensor_msgs::PointCloud2, sensor_msgs::PointCloud2 > ReferenceSyncPolicy
 
typedef message_filters::sync_policies::ExactTime< sensor_msgs::PointCloud2, jsk_recognition_msgs::BoundingBox > SyncPolicy
 

Public Member Functions

 ICPRegistration ()
 
virtual ~ICPRegistration ()
 

Protected Member Functions

virtual void align (const sensor_msgs::PointCloud2::ConstPtr &msg)
 
virtual void align (const sensor_msgs::PointCloud2::ConstPtr &msg, const sensor_msgs::PointCloud2::ConstPtr &reference_msg)
 
virtual double alignPointcloud (pcl::PointCloud< PointT >::Ptr &cloud, pcl::PointCloud< PointT >::Ptr &reference, const Eigen::Affine3f &offset, pcl::PointCloud< PointT >::Ptr &output_cloud, Eigen::Affine3d &output_transform)
 
virtual double alignPointcloudWithICP (pcl::PointCloud< PointT >::Ptr &cloud, pcl::PointCloud< PointT >::Ptr &reference, const Eigen::Affine3f &offset, pcl::PointCloud< PointT >::Ptr &output_cloud, Eigen::Affine3d &output_transform)
 
virtual double alignPointcloudWithNDT (pcl::PointCloud< PointT >::Ptr &cloud, pcl::PointCloud< PointT >::Ptr &reference, const Eigen::Affine3f &offset, pcl::PointCloud< PointT >::Ptr &output_cloud, Eigen::Affine3d &output_transform)
 
virtual jsk_recognition_msgs::ICPResult alignPointcloudWithReferences (pcl::PointCloud< PointT >::Ptr &cloud, const Eigen::Affine3f &offset, const std_msgs::Header &header)
 
virtual bool alignService (jsk_recognition_msgs::ICPAlign::Request &req, jsk_recognition_msgs::ICPAlign::Response &res)
 
virtual void alignWithBox (const sensor_msgs::PointCloud2::ConstPtr &msg, const jsk_recognition_msgs::BoundingBox::ConstPtr &box_msg)
 
virtual bool alignWithBoxService (jsk_recognition_msgs::ICPAlignWithBox::Request &req, jsk_recognition_msgs::ICPAlignWithBox::Response &res)
 
virtual void alignWithOffset (const sensor_msgs::PointCloud2::ConstPtr &msg, const geometry_msgs::PoseStamped::ConstPtr &pose_msg)
 
virtual void cameraInfoCallback (const sensor_msgs::CameraInfo::ConstPtr &msg)
 
virtual void configCallback (Config &config, uint32_t level)
 
virtual void onInit ()
 
virtual void publishDebugCloud (ros::Publisher &pub, const pcl::PointCloud< PointT > &cloud, const std_msgs::Header &header)
 
virtual void referenceAddCallback (const sensor_msgs::PointCloud2::ConstPtr &msg)
 
virtual void referenceArrayCallback (const jsk_recognition_msgs::PointsArray::ConstPtr &msg)
 
virtual void referenceCallback (const sensor_msgs::PointCloud2::ConstPtr &msg)
 
virtual double scorePointcloudAlignment (pcl::PointCloud< PointT >::Ptr &cloud, pcl::PointCloud< PointT >::Ptr &reference, const Eigen::Affine3f &offset, Eigen::Affine3f &offset_result, pcl::PointCloud< PointT >::Ptr transformed_cloud, Eigen::Affine3d &transform_result)
 
virtual void subscribe ()
 
virtual void unsubscribe ()
 

Protected Attributes

int algorithm_
 
bool align_box_
 
sensor_msgs::CameraInfo::ConstPtr camera_info_msg_
 
int correspondence_algorithm_
 
double correspondence_distance_
 
int correspondence_randomness_
 
bool done_init_
 
double euclidean_fittness_epsilon_
 
int max_iteration_
 
int maximum_optimizer_iterations_
 
boost::mutex mutex_
 
double ndt_outlier_ratio_
 
double ndt_resolution_
 
double ndt_step_size_
 
ros::Publisher pub_average_time_
 
ros::Publisher pub_debug_flipped_cloud_
 
ros::Publisher pub_debug_result_cloud_
 
ros::Publisher pub_debug_source_cloud_
 
ros::Publisher pub_debug_target_cloud_
 
ros::Publisher pub_icp_result
 
ros::Publisher pub_latest_time_
 
ros::Publisher pub_result_cloud_
 
ros::Publisher pub_result_pose_
 
double ransac_iterations_
 
double ransac_outlier_threshold_
 
std::vector< pcl::PointCloud< PointT >::Ptr > reference_cloud_list_
 
double rotation_epsilon_
 
boost::shared_ptr< dynamic_reconfigure::Server< Config > > srv_
 
ros::ServiceServer srv_icp_align_
 
ros::ServiceServer srv_icp_align_with_box_
 
ros::Subscriber sub_
 
message_filters::Subscriber< jsk_recognition_msgs::BoundingBox > sub_box_
 
ros::Subscriber sub_camera_info_
 
message_filters::Subscriber< sensor_msgs::PointCloud2 > sub_input_
 
message_filters::Subscriber< geometry_msgs::PoseStamped > sub_offset_
 
ros::Subscriber sub_reference_
 
ros::Subscriber sub_reference_add
 
ros::Subscriber sub_reference_array_
 
message_filters::Subscriber< sensor_msgs::PointCloud2 > sub_sync_input_
 
message_filters::Subscriber< sensor_msgs::PointCloud2 > sub_sync_reference_
 
boost::shared_ptr< message_filters::Synchronizer< SyncPolicy > > sync_
 
boost::shared_ptr< message_filters::Synchronizer< OffsetSyncPolicy > > sync_offset_
 
boost::shared_ptr< message_filters::Synchronizer< ReferenceSyncPolicy > > sync_reference_
 
bool synchronize_reference_
 
tf::TransformListenertf_listener_
 
jsk_recognition_utils::WallDurationTimer timer_
 
bool transform_3dof_
 set via ~transform_3dof parameter. default is false. More...
 
double transform_epsilon_
 
bool use_flipped_initial_pose_
 
bool use_normal_
 Store value of ~use_normal. If this parameter is true, ICPRegistration nodelet expects reference and input pointcloud have normal_x, normal_y and normal_z fields. More...
 
bool use_offset_pose_
 set via ~use_offset_pose parameter. default is false. More...
 

Detailed Description

Definition at line 91 of file icp_registration.h.

Member Typedef Documentation

◆ Config

typedef jsk_pcl_ros::ICPRegistrationConfig jsk_pcl_ros::ICPRegistration::Config

Definition at line 127 of file icp_registration.h.

◆ OffsetSyncPolicy

typedef message_filters::sync_policies::ExactTime< sensor_msgs::PointCloud2, geometry_msgs::PoseStamped > jsk_pcl_ros::ICPRegistration::OffsetSyncPolicy

Definition at line 133 of file icp_registration.h.

◆ PointT

typedef pcl::PointXYZRGBNormal jsk_pcl_ros::ICPRegistration::PointT

Definition at line 126 of file icp_registration.h.

◆ ReferenceSyncPolicy

typedef message_filters::sync_policies::ExactTime< sensor_msgs::PointCloud2, sensor_msgs::PointCloud2 > jsk_pcl_ros::ICPRegistration::ReferenceSyncPolicy

Definition at line 137 of file icp_registration.h.

◆ SyncPolicy

typedef message_filters::sync_policies::ExactTime< sensor_msgs::PointCloud2, jsk_recognition_msgs::BoundingBox > jsk_pcl_ros::ICPRegistration::SyncPolicy

Definition at line 130 of file icp_registration.h.

Constructor & Destructor Documentation

◆ ICPRegistration()

jsk_pcl_ros::ICPRegistration::ICPRegistration ( )
inline

Definition at line 138 of file icp_registration.h.

◆ ~ICPRegistration()

jsk_pcl_ros::ICPRegistration::~ICPRegistration ( )
virtual

Definition at line 143 of file icp_registration_nodelet.cpp.

Member Function Documentation

◆ align() [1/2]

void jsk_pcl_ros::ICPRegistration::align ( const sensor_msgs::PointCloud2::ConstPtr &  msg)
protectedvirtual

Definition at line 420 of file icp_registration_nodelet.cpp.

◆ align() [2/2]

void jsk_pcl_ros::ICPRegistration::align ( const sensor_msgs::PointCloud2::ConstPtr &  msg,
const sensor_msgs::PointCloud2::ConstPtr &  reference_msg 
)
protectedvirtual

Definition at line 447 of file icp_registration_nodelet.cpp.

◆ alignPointcloud()

double jsk_pcl_ros::ICPRegistration::alignPointcloud ( pcl::PointCloud< PointT >::Ptr &  cloud,
pcl::PointCloud< PointT >::Ptr &  reference,
const Eigen::Affine3f &  offset,
pcl::PointCloud< PointT >::Ptr &  output_cloud,
Eigen::Affine3d &  output_transform 
)
protectedvirtual

Definition at line 573 of file icp_registration_nodelet.cpp.

◆ alignPointcloudWithICP()

double jsk_pcl_ros::ICPRegistration::alignPointcloudWithICP ( pcl::PointCloud< PointT >::Ptr &  cloud,
pcl::PointCloud< PointT >::Ptr &  reference,
const Eigen::Affine3f &  offset,
pcl::PointCloud< PointT >::Ptr &  output_cloud,
Eigen::Affine3d &  output_transform 
)
protectedvirtual

Definition at line 620 of file icp_registration_nodelet.cpp.

◆ alignPointcloudWithNDT()

double jsk_pcl_ros::ICPRegistration::alignPointcloudWithNDT ( pcl::PointCloud< PointT >::Ptr &  cloud,
pcl::PointCloud< PointT >::Ptr &  reference,
const Eigen::Affine3f &  offset,
pcl::PointCloud< PointT >::Ptr &  output_cloud,
Eigen::Affine3d &  output_transform 
)
protectedvirtual

Definition at line 589 of file icp_registration_nodelet.cpp.

◆ alignPointcloudWithReferences()

jsk_recognition_msgs::ICPResult jsk_pcl_ros::ICPRegistration::alignPointcloudWithReferences ( pcl::PointCloud< PointT >::Ptr &  cloud,
const Eigen::Affine3f &  offset,
const std_msgs::Header header 
)
protectedvirtual

Definition at line 472 of file icp_registration_nodelet.cpp.

◆ alignService()

bool jsk_pcl_ros::ICPRegistration::alignService ( jsk_recognition_msgs::ICPAlign::Request &  req,
jsk_recognition_msgs::ICPAlign::Response &  res 
)
protectedvirtual

Definition at line 280 of file icp_registration_nodelet.cpp.

◆ alignWithBox()

void jsk_pcl_ros::ICPRegistration::alignWithBox ( const sensor_msgs::PointCloud2::ConstPtr &  msg,
const jsk_recognition_msgs::BoundingBox::ConstPtr &  box_msg 
)
protectedvirtual

Definition at line 329 of file icp_registration_nodelet.cpp.

◆ alignWithBoxService()

bool jsk_pcl_ros::ICPRegistration::alignWithBoxService ( jsk_recognition_msgs::ICPAlignWithBox::Request &  req,
jsk_recognition_msgs::ICPAlignWithBox::Response &  res 
)
protectedvirtual

Definition at line 247 of file icp_registration_nodelet.cpp.

◆ alignWithOffset()

void jsk_pcl_ros::ICPRegistration::alignWithOffset ( const sensor_msgs::PointCloud2::ConstPtr &  msg,
const geometry_msgs::PoseStamped::ConstPtr &  pose_msg 
)
protectedvirtual

Definition at line 370 of file icp_registration_nodelet.cpp.

◆ cameraInfoCallback()

void jsk_pcl_ros::ICPRegistration::cameraInfoCallback ( const sensor_msgs::CameraInfo::ConstPtr &  msg)
protectedvirtual

Definition at line 566 of file icp_registration_nodelet.cpp.

◆ configCallback()

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

Definition at line 227 of file icp_registration_nodelet.cpp.

◆ onInit()

void jsk_pcl_ros::ICPRegistration::onInit ( )
protectedvirtual

Definition at line 86 of file icp_registration_nodelet.cpp.

◆ publishDebugCloud()

void jsk_pcl_ros::ICPRegistration::publishDebugCloud ( ros::Publisher pub,
const pcl::PointCloud< PointT > &  cloud,
const std_msgs::Header header 
)
protectedvirtual

Definition at line 214 of file icp_registration_nodelet.cpp.

◆ referenceAddCallback()

void jsk_pcl_ros::ICPRegistration::referenceAddCallback ( const sensor_msgs::PointCloud2::ConstPtr &  msg)
protectedvirtual

Definition at line 796 of file icp_registration_nodelet.cpp.

◆ referenceArrayCallback()

void jsk_pcl_ros::ICPRegistration::referenceArrayCallback ( const jsk_recognition_msgs::PointsArray::ConstPtr &  msg)
protectedvirtual

Definition at line 780 of file icp_registration_nodelet.cpp.

◆ referenceCallback()

void jsk_pcl_ros::ICPRegistration::referenceCallback ( const sensor_msgs::PointCloud2::ConstPtr &  msg)
protectedvirtual

Definition at line 759 of file icp_registration_nodelet.cpp.

◆ scorePointcloudAlignment()

double jsk_pcl_ros::ICPRegistration::scorePointcloudAlignment ( pcl::PointCloud< PointT >::Ptr &  cloud,
pcl::PointCloud< PointT >::Ptr &  reference,
const Eigen::Affine3f &  offset,
Eigen::Affine3f &  offset_result,
pcl::PointCloud< PointT >::Ptr  transformed_cloud,
Eigen::Affine3d &  transform_result 
)
protectedvirtual

Definition at line 715 of file icp_registration_nodelet.cpp.

◆ subscribe()

void jsk_pcl_ros::ICPRegistration::subscribe ( )
protectedvirtual

Definition at line 156 of file icp_registration_nodelet.cpp.

◆ unsubscribe()

void jsk_pcl_ros::ICPRegistration::unsubscribe ( )
protectedvirtual

Definition at line 196 of file icp_registration_nodelet.cpp.

Member Data Documentation

◆ algorithm_

int jsk_pcl_ros::ICPRegistration::algorithm_
protected

Definition at line 261 of file icp_registration.h.

◆ align_box_

bool jsk_pcl_ros::ICPRegistration::align_box_
protected

Definition at line 227 of file icp_registration.h.

◆ camera_info_msg_

sensor_msgs::CameraInfo::ConstPtr jsk_pcl_ros::ICPRegistration::camera_info_msg_
protected

Definition at line 270 of file icp_registration.h.

◆ correspondence_algorithm_

int jsk_pcl_ros::ICPRegistration::correspondence_algorithm_
protected

Definition at line 262 of file icp_registration.h.

◆ correspondence_distance_

double jsk_pcl_ros::ICPRegistration::correspondence_distance_
protected

Definition at line 265 of file icp_registration.h.

◆ correspondence_randomness_

int jsk_pcl_ros::ICPRegistration::correspondence_randomness_
protected

Definition at line 276 of file icp_registration.h.

◆ done_init_

bool jsk_pcl_ros::ICPRegistration::done_init_
protected

Definition at line 286 of file icp_registration.h.

◆ euclidean_fittness_epsilon_

double jsk_pcl_ros::ICPRegistration::euclidean_fittness_epsilon_
protected

Definition at line 267 of file icp_registration.h.

◆ max_iteration_

int jsk_pcl_ros::ICPRegistration::max_iteration_
protected

Definition at line 264 of file icp_registration.h.

◆ maximum_optimizer_iterations_

int jsk_pcl_ros::ICPRegistration::maximum_optimizer_iterations_
protected

Definition at line 277 of file icp_registration.h.

◆ mutex_

boost::mutex jsk_pcl_ros::ICPRegistration::mutex_
protected

Definition at line 229 of file icp_registration.h.

◆ ndt_outlier_ratio_

double jsk_pcl_ros::ICPRegistration::ndt_outlier_ratio_
protected

Definition at line 284 of file icp_registration.h.

◆ ndt_resolution_

double jsk_pcl_ros::ICPRegistration::ndt_resolution_
protected

Definition at line 282 of file icp_registration.h.

◆ ndt_step_size_

double jsk_pcl_ros::ICPRegistration::ndt_step_size_
protected

Definition at line 283 of file icp_registration.h.

◆ pub_average_time_

ros::Publisher jsk_pcl_ros::ICPRegistration::pub_average_time_
protected

Definition at line 218 of file icp_registration.h.

◆ pub_debug_flipped_cloud_

ros::Publisher jsk_pcl_ros::ICPRegistration::pub_debug_flipped_cloud_
protected

Definition at line 222 of file icp_registration.h.

◆ pub_debug_result_cloud_

ros::Publisher jsk_pcl_ros::ICPRegistration::pub_debug_result_cloud_
protected

Definition at line 221 of file icp_registration.h.

◆ pub_debug_source_cloud_

ros::Publisher jsk_pcl_ros::ICPRegistration::pub_debug_source_cloud_
protected

Definition at line 219 of file icp_registration.h.

◆ pub_debug_target_cloud_

ros::Publisher jsk_pcl_ros::ICPRegistration::pub_debug_target_cloud_
protected

Definition at line 220 of file icp_registration.h.

◆ pub_icp_result

ros::Publisher jsk_pcl_ros::ICPRegistration::pub_icp_result
protected

Definition at line 223 of file icp_registration.h.

◆ pub_latest_time_

ros::Publisher jsk_pcl_ros::ICPRegistration::pub_latest_time_
protected

Definition at line 217 of file icp_registration.h.

◆ pub_result_cloud_

ros::Publisher jsk_pcl_ros::ICPRegistration::pub_result_cloud_
protected

Definition at line 216 of file icp_registration.h.

◆ pub_result_pose_

ros::Publisher jsk_pcl_ros::ICPRegistration::pub_result_pose_
protected

Definition at line 215 of file icp_registration.h.

◆ ransac_iterations_

double jsk_pcl_ros::ICPRegistration::ransac_iterations_
protected

Definition at line 268 of file icp_registration.h.

◆ ransac_outlier_threshold_

double jsk_pcl_ros::ICPRegistration::ransac_outlier_threshold_
protected

Definition at line 269 of file icp_registration.h.

◆ reference_cloud_list_

std::vector<pcl::PointCloud<PointT>::Ptr> jsk_pcl_ros::ICPRegistration::reference_cloud_list_
protected

Definition at line 263 of file icp_registration.h.

◆ rotation_epsilon_

double jsk_pcl_ros::ICPRegistration::rotation_epsilon_
protected

Definition at line 275 of file icp_registration.h.

◆ srv_

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

Definition at line 228 of file icp_registration.h.

◆ srv_icp_align_

ros::ServiceServer jsk_pcl_ros::ICPRegistration::srv_icp_align_
protected

Definition at line 226 of file icp_registration.h.

◆ srv_icp_align_with_box_

ros::ServiceServer jsk_pcl_ros::ICPRegistration::srv_icp_align_with_box_
protected

Definition at line 225 of file icp_registration.h.

◆ sub_

ros::Subscriber jsk_pcl_ros::ICPRegistration::sub_
protected

Definition at line 209 of file icp_registration.h.

◆ sub_box_

message_filters::Subscriber<jsk_recognition_msgs::BoundingBox> jsk_pcl_ros::ICPRegistration::sub_box_
protected

Definition at line 231 of file icp_registration.h.

◆ sub_camera_info_

ros::Subscriber jsk_pcl_ros::ICPRegistration::sub_camera_info_
protected

Definition at line 208 of file icp_registration.h.

◆ sub_input_

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

Definition at line 230 of file icp_registration.h.

◆ sub_offset_

message_filters::Subscriber<geometry_msgs::PoseStamped> jsk_pcl_ros::ICPRegistration::sub_offset_
protected

Definition at line 232 of file icp_registration.h.

◆ sub_reference_

ros::Subscriber jsk_pcl_ros::ICPRegistration::sub_reference_
protected

Definition at line 210 of file icp_registration.h.

◆ sub_reference_add

ros::Subscriber jsk_pcl_ros::ICPRegistration::sub_reference_add
protected

Definition at line 211 of file icp_registration.h.

◆ sub_reference_array_

ros::Subscriber jsk_pcl_ros::ICPRegistration::sub_reference_array_
protected

Definition at line 212 of file icp_registration.h.

◆ sub_sync_input_

message_filters::Subscriber<sensor_msgs::PointCloud2> jsk_pcl_ros::ICPRegistration::sub_sync_input_
protected

Definition at line 213 of file icp_registration.h.

◆ sub_sync_reference_

message_filters::Subscriber<sensor_msgs::PointCloud2> jsk_pcl_ros::ICPRegistration::sub_sync_reference_
protected

Definition at line 214 of file icp_registration.h.

◆ sync_

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

Definition at line 233 of file icp_registration.h.

◆ sync_offset_

boost::shared_ptr<message_filters::Synchronizer<OffsetSyncPolicy> > jsk_pcl_ros::ICPRegistration::sync_offset_
protected

Definition at line 234 of file icp_registration.h.

◆ sync_reference_

boost::shared_ptr<message_filters::Synchronizer<ReferenceSyncPolicy> > jsk_pcl_ros::ICPRegistration::sync_reference_
protected

Definition at line 235 of file icp_registration.h.

◆ synchronize_reference_

bool jsk_pcl_ros::ICPRegistration::synchronize_reference_
protected

Definition at line 259 of file icp_registration.h.

◆ tf_listener_

tf::TransformListener* jsk_pcl_ros::ICPRegistration::tf_listener_
protected

Definition at line 236 of file icp_registration.h.

◆ timer_

jsk_recognition_utils::WallDurationTimer jsk_pcl_ros::ICPRegistration::timer_
protected

Definition at line 224 of file icp_registration.h.

◆ transform_3dof_

bool jsk_pcl_ros::ICPRegistration::transform_3dof_
protected

set via ~transform_3dof parameter. default is false.

Definition at line 242 of file icp_registration.h.

◆ transform_epsilon_

double jsk_pcl_ros::ICPRegistration::transform_epsilon_
protected

Definition at line 266 of file icp_registration.h.

◆ use_flipped_initial_pose_

bool jsk_pcl_ros::ICPRegistration::use_flipped_initial_pose_
protected

Definition at line 260 of file icp_registration.h.

◆ use_normal_

bool jsk_pcl_ros::ICPRegistration::use_normal_
protected

Store value of ~use_normal. If this parameter is true, ICPRegistration nodelet expects reference and input pointcloud have normal_x, normal_y and normal_z fields.

Definition at line 254 of file icp_registration.h.

◆ use_offset_pose_

bool jsk_pcl_ros::ICPRegistration::use_offset_pose_
protected

set via ~use_offset_pose parameter. default is false.

Definition at line 247 of file icp_registration.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:46