00001 00048 #ifndef COMTHREAD_H 00049 #define COMTHREAD_H 00050 00051 #include <QThread> 00052 #include <QImage> 00053 #include <ros/service_client.h> 00054 #include <ros/publisher.h> 00055 #include <image_transport/image_transport.h> 00056 #include <image_transport/subscriber.h> 00057 00058 #include <re_kinect_object_detector/DetectionResult.h> 00059 00063 class ComThread : public QThread 00064 { 00065 Q_OBJECT 00066 public: 00067 explicit ComThread(QObject *parent = 0); 00068 00072 void imageCb(const sensor_msgs::ImageConstPtr& msg); 00076 void kinect_detected_objectCb(const re_kinect_object_detector::DetectionResultConstPtr& msg); 00077 00078 signals: 00079 void updateZaragozaDetectionImg(QImage); 00084 void updateKinectDetectionImg(QImage); 00085 00086 public slots: 00093 void publishModelDir(QString model_dir, QString model_type, QString model_name); 00094 00095 protected: 00096 void run(); 00097 00098 ros::NodeHandle nh; 00099 00100 ros::ServiceClient zaragoza_client; 00101 ros::Publisher zaragoza_model_dir_pub; 00102 00103 ros::Publisher kinect_model_dir_pub; 00104 ros::Subscriber kinect_detected_objects_sub; 00105 00106 image_transport::ImageTransport image_transport; 00107 image_transport::Subscriber image_sub; 00108 00109 std::vector<std::string> zaragoza_model_names; 00110 }; 00111 00112 #endif // COMTHREAD_H