amplitude_filter.cpp
Go to the documentation of this file.
00001 
00060 //##################
00061 //#### includes ####
00062 // standard includes
00063 //--
00064 // ROS includes
00065 #include <ros/ros.h>
00066 #include <pcl_ros/point_cloud.h>
00067 #include <pluginlib/class_list_macros.h>
00068 #include <nodelet/nodelet.h>
00069 
00070 // pcl includes
00071 #define PCL_NO_PRECOMPILE
00072 #include <pcl/filters/passthrough.h>
00073 #include <pcl/filters/impl/passthrough.hpp>
00074 #include <pcl/impl/pcl_base.hpp>
00075 
00076 // cob_3d_mapping_filters includes
00077 #include <cob_3d_mapping_common/point_types.h>
00078 
00079 //######################
00080 //#### nodelet class####
00081 class AmplitudeFilter : public nodelet::Nodelet
00082 {
00083 public:
00084   typedef PointXYZA PointT;
00085   typedef pcl::PointCloud<PointT> PointCloud;
00086 
00087   // Constructor
00088   AmplitudeFilter ()
00089   {
00090     //
00091   }
00092 
00093   // Destructor
00094   ~ AmplitudeFilter ()
00095   {
00097   }
00098 
00099   void
00100   onInit ()
00101   {
00102     n_ = getPrivateNodeHandle ();
00103 
00104     point_cloud_sub_ = n_.subscribe ("point_cloud_in", 1, &AmplitudeFilter::pointCloudSubCallback, this);
00105     point_cloud_pub_ = n_.advertise<PointCloud> ("point_cloud_out", 1);
00106 
00107     int lim_min, lim_max;
00108     n_.param ("amplitude_min_threshold", lim_min, 2000);
00109     n_.param ("amplitude_max_threshold", lim_max, 60000);
00110     filter_.setFilterLimits (lim_min, lim_max);
00111     filter_.setFilterFieldName ("amplitude");
00112   }
00113 
00114   void
00115   pointCloudSubCallback (PointCloud::ConstPtr pc)
00116   {
00117     PointCloud cloud_filtered;
00118     filter_.setInputCloud (pc);
00119     filter_.filter (cloud_filtered);
00120     point_cloud_pub_.publish (cloud_filtered);
00121   }
00122 
00123 protected:
00124   ros::NodeHandle n_;
00125   ros::Subscriber point_cloud_sub_;
00126   ros::Publisher point_cloud_pub_;
00127 
00128   pcl::PassThrough<PointT> filter_;
00129 };
00130 
00131 PLUGINLIB_DECLARE_CLASS(cob_3d_mapping_filters, AmplitudeFilter, AmplitudeFilter, nodelet::Nodelet)
00132 


cob_3d_mapping_filters
Author(s): Georg Arbeiter
autogenerated on Wed Aug 26 2015 11:02:54