00001 #ifndef KINECT_DOWNSAMPLER_H 00002 #define KINECT_DOWNSAMPLER_H 00003 00004 #include <iostream> 00005 #include <sstream> 00006 #include <fstream> 00007 #include <string> 00008 00009 #include <ros/ros.h> 00010 #include <std_msgs/Bool.h> 00011 #include <std_msgs/Float32.h> 00012 #include <sensor_msgs/PointCloud2.h> 00013 00014 #include <tf/transform_broadcaster.h> 00015 #include <tf/transform_datatypes.h> 00016 00017 #include <pcl/io/io.h> 00018 #include <pcl/io/pcd_io.h> 00019 #include <pcl/point_types.h> 00020 #include <pcl_conversions/pcl_conversions.h> 00021 #include <pcl/registration/ndt.h> 00022 #include <pcl/filters/approximate_voxel_grid.h> 00023 #include <pcl/filters/voxel_grid.h> 00024 00025 class KinectV2Downsampler 00026 { 00027 public: 00028 KinectV2Downsampler(ros::NodeHandle nh, ros::NodeHandle n); 00029 void resizeCallback(const sensor_msgs::PointCloud2::ConstPtr& source_pc); 00030 void run(); 00031 private: 00032 ros::NodeHandle nh_; 00033 ros::Rate rate_; 00034 std::string frame_id_; 00035 ros::Publisher resized_pc_pub_; 00036 ros::Subscriber source_pc_sub_; 00037 00038 double leaf_size_x_; 00039 double leaf_size_y_; 00040 double leaf_size_z_; 00041 }; 00042 00043 #endif /* KINECT_DOWNSAMPLER_H */