target_adaptive_tracking.h
Go to the documentation of this file.
1 
2 #ifndef _TARGET_ADAPTIVE_TRACKING_H_
3 #define _TARGET_ADAPTIVE_TRACKING_H_
4 
5 #include <string>
6 
7 #include <ros/ros.h>
8 #include <ros/console.h>
9 
13 
14 #include <sensor_msgs/Image.h>
16 #include <sensor_msgs/PointCloud2.h>
17 #include <cv_bridge/cv_bridge.h>
18 
19 #include <opencv2/core/core.hpp>
20 #include <opencv2/opencv.hpp>
21 #include <boost/thread/mutex.hpp>
22 
24 #include <pcl/point_cloud.h>
25 #include <pcl/point_types.h>
26 #include <pcl/io/pcd_io.h>
27 #include <pcl/correspondence.h>
28 #include <pcl/recognition/cg/hough_3d.h>
29 #include <pcl/recognition/cg/geometric_consistency.h>
30 #include <pcl/kdtree/kdtree_flann.h>
31 #include <pcl/kdtree/impl/kdtree_flann.hpp>
32 #include <pcl/common/transforms.h>
33 #include <pcl/filters/extract_indices.h>
34 #include <pcl/segmentation/segment_differences.h>
35 #include <pcl/octree/octree.h>
36 #include <pcl/surface/concave_hull.h>
37 #include <pcl/segmentation/extract_clusters.h>
38 #include <pcl/filters/filter.h>
39 #include <pcl/common/centroid.h>
40 #include <pcl/features/fpfh_omp.h>
41 #include <pcl/features/vfh.h>
42 #include <pcl/features/gfpfh.h>
43 #include <pcl/features/pfh.h>
44 #include <pcl/features/cvfh.h>
45 #include <pcl/features/pfh_tools.h> // for computePairFeatures
46 #include <pcl/features/normal_3d_omp.h>
47 #include <pcl/tracking/tracking.h>
48 #include <pcl/common/common.h>
49 #include <pcl/registration/distances.h>
50 #include <pcl/filters/passthrough.h>
51 #include <pcl/segmentation/supervoxel_clustering.h>
52 
53 #include <tf/transform_listener.h>
56 #include <geometry_msgs/Pose.h>
57 #include <geometry_msgs/PoseStamped.h>
58 #include <std_msgs/Header.h>
59 #include <dynamic_reconfigure/server.h>
60 #include <jsk_recognition_msgs/ClusterPointIndices.h>
61 #include <jsk_topic_tools/diagnostic_nodelet.h>
63 #include <jsk_pcl_ros/TargetAdaptiveTrackingConfig.h>
64 
65 namespace jsk_pcl_ros
66 {
67  class TargetAdaptiveTracking: public jsk_topic_tools::DiagnosticNodelet
68  {
69  typedef pcl::PointXYZRGB PointT;
70 
71  struct AdjacentInfo
72  {
73  uint32_t voxel_index;
74  std::map<uint32_t, std::vector<uint32_t> > adjacent_voxel_indices;
75  };
76 
78  {
79  pcl::PointCloud<PointT>::Ptr cluster_cloud;
83  pcl::PointCloud<pcl::Normal>::Ptr cluster_normals;
84  Eigen::Vector4f cluster_centroid;
85  Eigen::Vector3f centroid_distance;
86  cv::Mat neigbour_pfh;
88  bool flag;
89  uint32_t supervoxel_index;
90  std::vector<int> history_window;
92  };
93 
94  private:
95  typedef std::vector<ReferenceModel> Models;
97  typedef pcl::tracking::ParticleXYZRPY PointXYZRPY;
98  typedef std::vector<PointXYZRPY> MotionHistory;
100  sensor_msgs::PointCloud2,
101  geometry_msgs::PoseStamped> SyncPolicy;
106  sensor_msgs::PointCloud2,
107  sensor_msgs::PointCloud2,
108  geometry_msgs::PoseStamped> ObjectSyncPolicy;
114 
115  // ros::NodeHandle pnh_;
126 
132  Eigen::Vector4f current_pose_;
133  Eigen::Vector4f previous_pose_;
136  pcl::PointCloud<PointT>::Ptr previous_template_;
139 
140  bool use_tf_;
141  std::string parent_frame_id_;
142  std::string child_frame_id_;
143 
150 
152  float threshold_;
163 
164  typedef jsk_pcl_ros::TargetAdaptiveTrackingConfig Config;
165  virtual void configCallback(Config &, uint32_t);
167 
168  protected:
169  virtual void onInit();
170  virtual void subscribe();
171  virtual void unsubscribe();
172 
173  public:
175  virtual ~TargetAdaptiveTracking();
176  virtual void callback(
177  const sensor_msgs::PointCloud2::ConstPtr &,
178  const geometry_msgs::PoseStamped::ConstPtr &);
179  virtual void objInitCallback(
180  const sensor_msgs::PointCloud2::ConstPtr &,
181  const sensor_msgs::PointCloud2::ConstPtr &,
182  const geometry_msgs::PoseStamped::ConstPtr &);
183  virtual std::vector<pcl::PointIndices::Ptr>
185  const jsk_recognition_msgs::ClusterPointIndicesConstPtr &);
186  void estimatedPFPose(
187  const geometry_msgs::PoseStamped::ConstPtr &, PointXYZRPY &);
189  const pcl::PointCloud<PointT>::Ptr cloud,
190  const std::map <uint32_t, pcl::Supervoxel<PointT>::Ptr> &,
191  const std::multimap<uint32_t, uint32_t> &,
192  std::vector<AdjacentInfo> &,
193  ModelsPtr &, bool = true, bool = true, bool = true, bool = false);
195  pcl::PointCloud<PointT>::Ptr, const Eigen::Affine3f &,
197  const std_msgs::Header);
198  template<class T>
200  const ReferenceModel &, const pcl::PointCloud<PointT>::Ptr,
201  const pcl::PointCloud<pcl::Normal>::Ptr, const Eigen::Vector4f &,
202  ReferenceModel * = NULL);
203  template<class T>
205  Eigen::Vector4f, Eigen::Vector4f, Eigen::Vector4f, Eigen::Vector4f);
206  template<class T>
208  const pcl::PointCloud<PointT>::Ptr, pcl::PointCloud<pcl::Normal>::Ptr,
209  T = 0.05f, bool = false) const;
211  const pcl::PointCloud<PointT>::Ptr,
212  const pcl::PointCloud<pcl::Normal>::Ptr, cv::Mat &) const;
214  const pcl::PointCloud<PointT>::Ptr, cv::Mat &, const int = 16,
215  const int = 16, bool = true) const;
216  void computePointFPFH(
217  const pcl::PointCloud<PointT>::Ptr,
218  pcl::PointCloud<pcl::Normal>::Ptr, cv::Mat &, bool = true) const;
219  void compute3DCentroids(
220  const pcl::PointCloud<PointT>::Ptr, Eigen::Vector4f &) const;
221  Eigen::Vector4f cloudMeanNormal(
222  const pcl::PointCloud<pcl::Normal>::Ptr, bool = true);
223  float computeCoherency(const float, const float);
224  pcl::PointXYZRGBNormal convertVector4fToPointXyzRgbNormal(
225  const Eigen::Vector4f &, const Eigen::Vector4f &, const cv::Scalar);
226  template<typename T>
228  const PointXYZRPY &, Eigen::Matrix<T, 3, 3> &);
230  const std::map <uint32_t, pcl::Supervoxel<PointT>::Ptr> &,
231  const std::map<uint32_t, std::vector<uint32_t> >&,
232  cv::Mat &, const int = 3);
234  const std::map <uint32_t, pcl::Supervoxel<PointT>::Ptr>,
235  const std::multimap<uint32_t, uint32_t>,
236  const uint32_t, TargetAdaptiveTracking::ReferenceModel *);
238  const ModelsPtr &, ModelsPtr, const Eigen::Affine3f &);
240  const pcl::PointCloud<PointT>::Ptr);
241  bool filterPointCloud(
242  pcl::PointCloud<PointT>::Ptr,
243  const Eigen::Vector4f, const ModelsPtr, const float);
244  void processInitCloud(
245  const pcl::PointCloud<PointT>::Ptr, ModelsPtr);
247  const ModelsPtr, const ModelsPtr, std::map<uint32_t, float>);
249  pcl::PointCloud<PointT>::Ptr, const ModelsPtr, const float = 0.6f);
251  const pcl::PointCloud<PointT>::Ptr,
252  const Eigen::Vector4f);
253  template<typename T, typename U, typename V>
254  cv::Scalar plotJetColour(T, U, V);
256  const pcl::PointCloud<PointT>::Ptr,
257  std::map<uint32_t, pcl::Supervoxel<PointT>::Ptr > &,
258  std::multimap<uint32_t, uint32_t> &);
260  const pcl::PointCloud<PointT>::Ptr,
261  std::map<uint32_t, pcl::Supervoxel<PointT>::Ptr > &,
262  std::multimap<uint32_t, uint32_t> &, const float);
263  void publishSupervoxel(
264  const std::map<uint32_t, pcl::Supervoxel<PointT>::Ptr>,
265  sensor_msgs::PointCloud2 &,
266  jsk_recognition_msgs::ClusterPointIndices &,
267  const std_msgs::Header &);
269  const jsk_recognition_msgs::ClusterPointIndices &,
270  const std::vector<uint32_t> &,
271  jsk_recognition_msgs::ClusterPointIndices &);
272 
273  };
274 }
275 
276 #endif // _TARGET_ADAPTIVE_TRACKING_H_
jsk_pcl_ros::TargetAdaptiveTracking::Models
std::vector< ReferenceModel > Models
Definition: target_adaptive_tracking.h:95
jsk_pcl_ros::TargetAdaptiveTracking::targetDescriptiveSurfelsEstimationAndUpdate
void targetDescriptiveSurfelsEstimationAndUpdate(pcl::PointCloud< PointT >::Ptr, const Eigen::Affine3f &, const TargetAdaptiveTracking::PointXYZRPY &, const std_msgs::Header)
Definition: target_adaptive_tracking_nodelet.cpp:363
jsk_pcl_ros::TargetAdaptiveTracking::MotionHistory
std::vector< PointXYZRPY > MotionHistory
Definition: target_adaptive_tracking.h:98
jsk_pcl_ros::TargetAdaptiveTracking::pub_tdp_
ros::Publisher pub_tdp_
Definition: target_adaptive_tracking.h:121
jsk_pcl_ros::TargetAdaptiveTracking::sub_cloud_
message_filters::Subscriber< sensor_msgs::PointCloud2 > sub_cloud_
Definition: target_adaptive_tracking.h:102
jsk_pcl_ros::TargetAdaptiveTracking::ReferenceModel
Definition: target_adaptive_tracking.h:77
jsk_pcl_ros::TargetAdaptiveTracking::voxel_resolution_
double voxel_resolution_
Definition: target_adaptive_tracking.h:147
jsk_pcl_ros::TargetAdaptiveTracking::computePointFPFH
void computePointFPFH(const pcl::PointCloud< PointT >::Ptr, pcl::PointCloud< pcl::Normal >::Ptr, cv::Mat &, bool=true) const
Definition: target_adaptive_tracking_nodelet.cpp:1302
jsk_pcl_ros::TargetAdaptiveTracking::sub_obj_cloud_
message_filters::Subscriber< sensor_msgs::PointCloud2 > sub_obj_cloud_
Definition: target_adaptive_tracking.h:109
jsk_pcl_ros::TargetAdaptiveTracking::background_reference_
ModelsPtr background_reference_
Definition: target_adaptive_tracking.h:129
jsk_pcl_ros::TargetAdaptiveTracking::structure_scaling_
float structure_scaling_
Definition: target_adaptive_tracking.h:158
ros::Publisher
image_encodings.h
jsk_pcl_ros::TargetAdaptiveTracking::ReferenceModel::cluster_normals
pcl::PointCloud< pcl::Normal >::Ptr cluster_normals
Definition: target_adaptive_tracking.h:83
message_filters::Synchronizer
boost::shared_ptr< Models >
jsk_pcl_ros::TargetAdaptiveTracking::current_pose_
Eigen::Vector4f current_pose_
Definition: target_adaptive_tracking.h:132
jsk_pcl_ros::TargetAdaptiveTracking::ReferenceModel::cluster_neigbors
AdjacentInfo cluster_neigbors
Definition: target_adaptive_tracking.h:82
jsk_pcl_ros::TargetAdaptiveTracking::ReferenceModel::flag
bool flag
Definition: target_adaptive_tracking.h:88
jsk_pcl_ros::TargetAdaptiveTracking::~TargetAdaptiveTracking
virtual ~TargetAdaptiveTracking()
Definition: target_adaptive_tracking_nodelet.cpp:22
jsk_pcl_ros::TargetAdaptiveTracking::previous_transform_
tf::Transform previous_transform_
Definition: target_adaptive_tracking.h:135
jsk_pcl_ros::TargetAdaptiveTracking::convertVector4fToPointXyzRgbNormal
pcl::PointXYZRGBNormal convertVector4fToPointXyzRgbNormal(const Eigen::Vector4f &, const Eigen::Vector4f &, const cv::Scalar)
Definition: target_adaptive_tracking_nodelet.cpp:1480
jsk_pcl_ros::TargetAdaptiveTracking::eps_min_samples_
int eps_min_samples_
Definition: target_adaptive_tracking.h:155
jsk_pcl_ros::TargetAdaptiveTracking
Definition: target_adaptive_tracking.h:67
jsk_pcl_ros::TargetAdaptiveTracking::ReferenceModel::cluster_vfh_hist
cv::Mat cluster_vfh_hist
Definition: target_adaptive_tracking.h:80
jsk_pcl_ros::TargetAdaptiveTracking::spatial_importance_
double spatial_importance_
Definition: target_adaptive_tracking.h:145
jsk_pcl_ros::TargetAdaptiveTracking::growth_rate_
float growth_rate_
Definition: target_adaptive_tracking.h:137
ros.h
jsk_pcl_ros::TargetAdaptiveTracking::color_importance_
double color_importance_
Definition: target_adaptive_tracking.h:144
jsk_pcl_ros::TargetAdaptiveTracking::PointXYZRPY
pcl::tracking::ParticleXYZRPY PointXYZRPY
Definition: target_adaptive_tracking.h:97
jsk_pcl_ros::TargetAdaptiveTracking::pub_normal_
ros::Publisher pub_normal_
Definition: target_adaptive_tracking.h:120
jsk_pcl_ros::TargetAdaptiveTracking::AdjacentInfo
Definition: target_adaptive_tracking.h:71
jsk_pcl_ros::TargetAdaptiveTracking::transformModelPrimitives
void transformModelPrimitives(const ModelsPtr &, ModelsPtr, const Eigen::Affine3f &)
Definition: target_adaptive_tracking_nodelet.cpp:1676
jsk_pcl_ros::TargetAdaptiveTracking::vfh_scaling_
float vfh_scaling_
Definition: target_adaptive_tracking.h:156
jsk_pcl_ros::TargetAdaptiveTracking::clusterPointIndicesToPointIndices
virtual std::vector< pcl::PointIndices::Ptr > clusterPointIndicesToPointIndices(const jsk_recognition_msgs::ClusterPointIndicesConstPtr &)
Definition: target_adaptive_tracking_nodelet.cpp:1341
jsk_pcl_ros::TargetAdaptiveTracking::publishSupervoxel
void publishSupervoxel(const std::map< uint32_t, pcl::Supervoxel< PointT >::Ptr >, sensor_msgs::PointCloud2 &, jsk_recognition_msgs::ClusterPointIndices &, const std_msgs::Header &)
Definition: target_adaptive_tracking_nodelet.cpp:1826
jsk_pcl_ros::TargetAdaptiveTracking::ModelsPtr
boost::shared_ptr< Models > ModelsPtr
Definition: target_adaptive_tracking.h:96
T
pointer T
jsk_pcl_ros::TargetAdaptiveTracking::computeCloudClusterRPYHistogram
void computeCloudClusterRPYHistogram(const pcl::PointCloud< PointT >::Ptr, const pcl::PointCloud< pcl::Normal >::Ptr, cv::Mat &) const
Definition: target_adaptive_tracking_nodelet.cpp:1198
jsk_pcl_ros::TargetAdaptiveTracking::compute3DCentroids
void compute3DCentroids(const pcl::PointCloud< PointT >::Ptr, Eigen::Vector4f &) const
Definition: target_adaptive_tracking_nodelet.cpp:1396
jsk_pcl_ros::TargetAdaptiveTracking::history_window_size_
int history_window_size_
Definition: target_adaptive_tracking.h:161
jsk_pcl_ros::TargetAdaptiveTracking::ReferenceModel::neigbour_pfh
cv::Mat neigbour_pfh
Definition: target_adaptive_tracking.h:86
jsk_pcl_ros::TargetAdaptiveTracking::pub_templ_
ros::Publisher pub_templ_
Definition: target_adaptive_tracking.h:117
jsk_pcl_ros::TargetAdaptiveTracking::child_frame_id_
std::string child_frame_id_
Definition: target_adaptive_tracking.h:142
jsk_pcl_ros::TargetAdaptiveTracking::threshold_
float threshold_
Definition: target_adaptive_tracking.h:152
jsk_pcl_ros::TargetAdaptiveTracking::backgroundReferenceLikelihood
void backgroundReferenceLikelihood(const ModelsPtr, const ModelsPtr, std::map< uint32_t, float >)
Definition: target_adaptive_tracking_nodelet.cpp:1151
jsk_pcl_ros::TargetAdaptiveTracking::ReferenceModel::history_window
std::vector< int > history_window
Definition: target_adaptive_tracking.h:90
jsk_pcl_ros::TargetAdaptiveTracking::seed_resolution_
double seed_resolution_
Definition: target_adaptive_tracking.h:148
jsk_pcl_ros::TargetAdaptiveTracking::init_counter_
int init_counter_
Definition: target_adaptive_tracking.h:127
jsk_pcl_ros::TargetAdaptiveTracking::previous_pose_
Eigen::Vector4f previous_pose_
Definition: target_adaptive_tracking.h:133
jsk_pcl_ros::TargetAdaptiveTracking::pub_cloud_
ros::Publisher pub_cloud_
Definition: target_adaptive_tracking.h:116
transform_broadcaster.h
message_filters::Subscriber< sensor_msgs::PointCloud2 >
pcl_conversion_util.h
jsk_pcl_ros::TargetAdaptiveTracking::update_counter_
int update_counter_
Definition: target_adaptive_tracking.h:131
console.h
jsk_pcl_ros::TargetAdaptiveTracking::plotJetColour
cv::Scalar plotJetColour(T, U, V)
Definition: target_adaptive_tracking_nodelet.cpp:1746
jsk_pcl_ros::TargetAdaptiveTracking::pub_prob_
ros::Publisher pub_prob_
Definition: target_adaptive_tracking.h:125
jsk_pcl_ros::TargetAdaptiveTracking::sub_bkgd_cloud_
message_filters::Subscriber< sensor_msgs::PointCloud2 > sub_bkgd_cloud_
Definition: target_adaptive_tracking.h:110
message_filters::sync_policies::ApproximateTime
tf_eigen.h
jsk_pcl_ros::TargetAdaptiveTracking::previous_distance_
float previous_distance_
Definition: target_adaptive_tracking.h:138
jsk_pcl_ros::TargetAdaptiveTracking::ReferenceModel::cluster_cloud
pcl::PointCloud< PointT >::Ptr cluster_cloud
Definition: target_adaptive_tracking.h:79
jsk_pcl_ros
Definition: add_color_from_image.h:51
jsk_pcl_ros::TargetAdaptiveTracking::normal_importance_
double normal_importance_
Definition: target_adaptive_tracking.h:146
jsk_pcl_ros::TargetAdaptiveTracking::ReferenceModel::cluster_color_hist
cv::Mat cluster_color_hist
Definition: target_adaptive_tracking.h:81
jsk_pcl_ros::TargetAdaptiveTracking::ReferenceModel::cluster_centroid
Eigen::Vector4f cluster_centroid
Definition: target_adaptive_tracking.h:84
jsk_pcl_ros::TargetAdaptiveTracking::ReferenceModel::centroid_distance
Eigen::Vector3f centroid_distance
Definition: target_adaptive_tracking.h:85
subscriber.h
jsk_pcl_ros::TargetAdaptiveTracking::filterCloudForBoundingBoxViz
void filterCloudForBoundingBoxViz(pcl::PointCloud< PointT >::Ptr, const ModelsPtr, const float=0.6f)
Definition: target_adaptive_tracking_nodelet.cpp:1699
jsk_pcl_ros::TargetAdaptiveTracking::use_transform_
bool use_transform_
Definition: target_adaptive_tracking.h:149
jsk_pcl_ros::TargetAdaptiveTracking::ObjectSyncPolicy
message_filters::sync_policies::ApproximateTime< sensor_msgs::PointCloud2, sensor_msgs::PointCloud2, geometry_msgs::PoseStamped > ObjectSyncPolicy
Definition: target_adaptive_tracking.h:108
jsk_pcl_ros::TargetAdaptiveTracking::AdjacentInfo::adjacent_voxel_indices
std::map< uint32_t, std::vector< uint32_t > > adjacent_voxel_indices
Definition: target_adaptive_tracking.h:74
jsk_pcl_ros::TargetAdaptiveTracking::localVoxelConvexityLikelihood
T localVoxelConvexityLikelihood(Eigen::Vector4f, Eigen::Vector4f, Eigen::Vector4f, Eigen::Vector4f)
Definition: target_adaptive_tracking_nodelet.cpp:1127
jsk_pcl_ros::TargetAdaptiveTracking::ReferenceModel::supervoxel_index
uint32_t supervoxel_index
Definition: target_adaptive_tracking.h:89
jsk_pcl_ros::TargetAdaptiveTracking::sub_obj_pose_
message_filters::Subscriber< geometry_msgs::PoseStamped > sub_obj_pose_
Definition: target_adaptive_tracking.h:111
tf::Transform
jsk_pcl_ros::TargetAdaptiveTracking::pub_inliers_
ros::Publisher pub_inliers_
Definition: target_adaptive_tracking.h:122
jsk_pcl_ros::TargetAdaptiveTracking::estimatePointCloudNormals
void estimatePointCloudNormals(const pcl::PointCloud< PointT >::Ptr, pcl::PointCloud< pcl::Normal >::Ptr, T=0.05f, bool=false) const
Definition: target_adaptive_tracking_nodelet.cpp:1178
jsk_pcl_ros::TargetAdaptiveTracking::use_tf_
bool use_tf_
Definition: target_adaptive_tracking.h:140
jsk_pcl_ros::TargetAdaptiveTracking::sync_
boost::shared_ptr< message_filters::Synchronizer< SyncPolicy > > sync_
Definition: target_adaptive_tracking.h:104
jsk_pcl_ros::TargetAdaptiveTracking::supervoxelSegmentation
void supervoxelSegmentation(const pcl::PointCloud< PointT >::Ptr, std::map< uint32_t, pcl::Supervoxel< PointT >::Ptr > &, std::multimap< uint32_t, uint32_t > &)
Definition: target_adaptive_tracking_nodelet.cpp:1800
jsk_pcl_ros::TargetAdaptiveTracking::color_scaling_
float color_scaling_
Definition: target_adaptive_tracking.h:157
transform_listener.h
jsk_pcl_ros::TargetAdaptiveTracking::obj_sync_
boost::shared_ptr< message_filters::Synchronizer< ObjectSyncPolicy > > obj_sync_
Definition: target_adaptive_tracking.h:113
jsk_pcl_ros::TargetAdaptiveTracking::eps_distance_
float eps_distance_
Definition: target_adaptive_tracking.h:154
jsk_pcl_ros::TargetAdaptiveTracking::unsubscribe
virtual void unsubscribe()
Definition: target_adaptive_tracking_nodelet.cpp:106
jsk_pcl_ros::TargetAdaptiveTracking::cloudMeanNormal
Eigen::Vector4f cloudMeanNormal(const pcl::PointCloud< pcl::Normal >::Ptr, bool=true)
Definition: target_adaptive_tracking_nodelet.cpp:1412
jsk_pcl_ros::TargetAdaptiveTracking::configCallback
virtual void configCallback(Config &, uint32_t)
Definition: target_adaptive_tracking_nodelet.cpp:1869
jsk_pcl_ros::TargetAdaptiveTracking::processVoxelForReferenceModel
void processVoxelForReferenceModel(const std::map< uint32_t, pcl::Supervoxel< PointT >::Ptr >, const std::multimap< uint32_t, uint32_t >, const uint32_t, TargetAdaptiveTracking::ReferenceModel *)
Definition: target_adaptive_tracking_nodelet.cpp:1034
jsk_pcl_ros::TargetAdaptiveTracking::PointT
pcl::PointXYZRGB PointT
Definition: target_adaptive_tracking.h:69
jsk_pcl_ros::TargetAdaptiveTracking::pub_centroids_
ros::Publisher pub_centroids_
Definition: target_adaptive_tracking.h:123
jsk_pcl_ros::TargetAdaptiveTracking::object_reference_
ModelsPtr object_reference_
Definition: target_adaptive_tracking.h:128
cv_bridge.h
dump_depth_error.f
f
Definition: dump_depth_error.py:39
jsk_pcl_ros::TargetAdaptiveTracking::targetCandidateToReferenceLikelihood
T targetCandidateToReferenceLikelihood(const ReferenceModel &, const pcl::PointCloud< PointT >::Ptr, const pcl::PointCloud< pcl::Normal >::Ptr, const Eigen::Vector4f &, ReferenceModel *=NULL)
Definition: target_adaptive_tracking_nodelet.cpp:1086
jsk_pcl_ros::TargetAdaptiveTracking::processInitCloud
void processInitCloud(const pcl::PointCloud< PointT >::Ptr, ModelsPtr)
Definition: target_adaptive_tracking_nodelet.cpp:147
jsk_pcl_ros::TargetAdaptiveTracking::mutex_
boost::mutex mutex_
Definition: target_adaptive_tracking.h:162
jsk_pcl_ros::TargetAdaptiveTracking::sub_pose_
message_filters::Subscriber< geometry_msgs::PoseStamped > sub_pose_
Definition: target_adaptive_tracking.h:103
jsk_pcl_ros::TargetAdaptiveTracking::motion_history_
MotionHistory motion_history_
Definition: target_adaptive_tracking.h:130
jsk_pcl_ros::TargetAdaptiveTracking::targetDescriptiveSurfelsIndices
void targetDescriptiveSurfelsIndices(const jsk_recognition_msgs::ClusterPointIndices &, const std::vector< uint32_t > &, jsk_recognition_msgs::ClusterPointIndices &)
Definition: target_adaptive_tracking_nodelet.cpp:1856
jsk_pcl_ros::TargetAdaptiveTracking::previous_template_
pcl::PointCloud< PointT >::Ptr previous_template_
Definition: target_adaptive_tracking.h:136
synchronizer.h
jsk_pcl_ros::TargetAdaptiveTracking::getRotationMatrixFromRPY
void getRotationMatrixFromRPY(const PointXYZRPY &, Eigen::Matrix< T, 3, 3 > &)
Definition: target_adaptive_tracking_nodelet.cpp:1498
jsk_pcl_ros::TargetAdaptiveTracking::pub_scloud_
ros::Publisher pub_scloud_
Definition: target_adaptive_tracking.h:119
approximate_time.h
jsk_pcl_ros::TargetAdaptiveTracking::parent_frame_id_
std::string parent_frame_id_
Definition: target_adaptive_tracking.h:141
mutex
boost::mutex mutex
global mutex.
Definition: depth_camera_error_visualization.cpp:86
jsk_pcl_ros::TargetAdaptiveTracking::update_filter_template_
bool update_filter_template_
Definition: target_adaptive_tracking.h:160
jsk_pcl_ros::TargetAdaptiveTracking::pub_sindices_
ros::Publisher pub_sindices_
Definition: target_adaptive_tracking.h:118
jsk_pcl_ros::TargetAdaptiveTracking::SyncPolicy
message_filters::sync_policies::ApproximateTime< sensor_msgs::PointCloud2, geometry_msgs::PoseStamped > SyncPolicy
Definition: target_adaptive_tracking.h:101
jsk_pcl_ros::TargetAdaptiveTracking::callback
virtual void callback(const sensor_msgs::PointCloud2::ConstPtr &, const geometry_msgs::PoseStamped::ConstPtr &)
Definition: target_adaptive_tracking_nodelet.cpp:174
jsk_pcl_ros::TargetAdaptiveTracking::computeColorHistogram
void computeColorHistogram(const pcl::PointCloud< PointT >::Ptr, cv::Mat &, const int=16, const int=16, bool=true) const
Definition: target_adaptive_tracking_nodelet.cpp:1275
jsk_pcl_ros::TargetAdaptiveTracking::ReferenceModel::query_index
int query_index
Definition: target_adaptive_tracking.h:87
jsk_pcl_ros::TargetAdaptiveTracking::estimatedPFPose
void estimatedPFPose(const geometry_msgs::PoseStamped::ConstPtr &, PointXYZRPY &)
Definition: target_adaptive_tracking_nodelet.cpp:1354
jsk_pcl_ros::TargetAdaptiveTracking::onInit
virtual void onInit()
Definition: target_adaptive_tracking_nodelet.cpp:34
jsk_pcl_ros::TargetAdaptiveTracking::bin_size_
int bin_size_
Definition: target_adaptive_tracking.h:153
jsk_pcl_ros::TargetAdaptiveTracking::srv_
boost::shared_ptr< dynamic_reconfigure::Server< Config > > srv_
Definition: target_adaptive_tracking.h:166
jsk_pcl_ros::TargetAdaptiveTracking::computeScatterMatrix
void computeScatterMatrix(const pcl::PointCloud< PointT >::Ptr, const Eigen::Vector4f)
Definition: target_adaptive_tracking_nodelet.cpp:1444
jsk_pcl_ros::TargetAdaptiveTracking::TargetAdaptiveTracking
TargetAdaptiveTracking()
Definition: target_adaptive_tracking_nodelet.cpp:10
jsk_pcl_ros::TargetAdaptiveTracking::objInitCallback
virtual void objInitCallback(const sensor_msgs::PointCloud2::ConstPtr &, const sensor_msgs::PointCloud2::ConstPtr &, const geometry_msgs::PoseStamped::ConstPtr &)
Definition: target_adaptive_tracking_nodelet.cpp:114
jsk_pcl_ros::TargetAdaptiveTracking::min_cluster_size_
int min_cluster_size_
Definition: target_adaptive_tracking.h:151
jsk_pcl_ros::TargetAdaptiveTracking::computeCoherency
float computeCoherency(const float, const float)
Definition: target_adaptive_tracking_nodelet.cpp:1471
jsk_pcl_ros::TargetAdaptiveTracking::subscribe
virtual void subscribe()
Definition: target_adaptive_tracking_nodelet.cpp:84
jsk_pcl_ros::TargetAdaptiveTracking::Config
jsk_pcl_ros::TargetAdaptiveTrackingConfig Config
Definition: target_adaptive_tracking.h:164
jsk_pcl_ros::TargetAdaptiveTracking::templateCloudFilterLenght
float templateCloudFilterLenght(const pcl::PointCloud< PointT >::Ptr)
Definition: target_adaptive_tracking_nodelet.cpp:1611
jsk_pcl_ros::TargetAdaptiveTracking::voxelizeAndProcessPointCloud
void voxelizeAndProcessPointCloud(const pcl::PointCloud< PointT >::Ptr cloud, const std::map< uint32_t, pcl::Supervoxel< PointT >::Ptr > &, const std::multimap< uint32_t, uint32_t > &, std::vector< AdjacentInfo > &, ModelsPtr &, bool=true, bool=true, bool=true, bool=false)
Definition: target_adaptive_tracking_nodelet.cpp:280
jsk_pcl_ros::TargetAdaptiveTracking::update_tracker_reference_
bool update_tracker_reference_
Definition: target_adaptive_tracking.h:159
jsk_pcl_ros::TargetAdaptiveTracking::tracker_pose_
PointXYZRPY tracker_pose_
Definition: target_adaptive_tracking.h:134
jsk_pcl_ros::TargetAdaptiveTracking::AdjacentInfo::voxel_index
uint32_t voxel_index
Definition: target_adaptive_tracking.h:73
jsk_pcl_ros::TargetAdaptiveTracking::ReferenceModel::match_counter
int match_counter
Definition: target_adaptive_tracking.h:91
jsk_pcl_ros::TargetAdaptiveTracking::computeLocalPairwiseFeautures
void computeLocalPairwiseFeautures(const std::map< uint32_t, pcl::Supervoxel< PointT >::Ptr > &, const std::map< uint32_t, std::vector< uint32_t > > &, cv::Mat &, const int=3)
Definition: target_adaptive_tracking_nodelet.cpp:1513
jsk_pcl_ros::TargetAdaptiveTracking::filterPointCloud
bool filterPointCloud(pcl::PointCloud< PointT >::Ptr, const Eigen::Vector4f, const ModelsPtr, const float)
Definition: target_adaptive_tracking_nodelet.cpp:1628
pcl_conversions.h
jsk_pcl_ros::TargetAdaptiveTracking::pub_pose_
ros::Publisher pub_pose_
Definition: target_adaptive_tracking.h:124


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