00001 #pragma once 00002 00003 #include <ros/ros.h> 00004 00005 #include <pcl/point_types.h> 00006 #include <pcl_ros/pcl_nodelet.h> 00007 #include <pcl/point_cloud.h> 00008 #include <jsk_topic_tools/connection_based_nodelet.h> 00009 00010 namespace jsk_pcl_ros 00011 { 00012 class KeypointsPublisher: public jsk_topic_tools::ConnectionBasedNodelet 00013 { 00014 public: 00015 virtual void onInit(); 00016 protected: 00017 virtual void inputCallback(const sensor_msgs::PointCloud2::ConstPtr& input); 00018 virtual void extractKeypoints(pcl::PointCloud<pcl::PointXYZ>::Ptr cloud); 00019 virtual void subscribe(); 00020 virtual void unsubscribe(); 00021 ros::Subscriber sub_input_; 00022 ros::Publisher keypoints_pub_; 00023 pcl::PointCloud<pcl::PointXYZ>::Ptr input_; 00024 std_msgs::Header input_header_; 00025 }; 00026 }