00001 /******************************************************************************* 00002 * ORControlModule.h 00003 * 00004 * (C) 2006 AG Aktives Sehen <agas@uni-koblenz.de> 00005 * Universitaet Koblenz-Landau 00006 * 00007 *******************************************************************************/ 00008 00009 #ifndef ORControlModule_H 00010 #define ORControlModule_H 00011 00012 #include <ros/ros.h> 00013 #include <or_msgs/OrCommand.h> 00014 #include <or_msgs/OrMatchResult.h> 00015 00016 class ORMatchingModule; 00017 00023 class ORControlModule 00024 { 00025 public: 00026 00027 enum CommandId { 00028 LoadObject, 00029 UnloadObject, 00030 LoadSingleImage, 00031 GrabSingleImage, 00032 StartRecognitionLoop, 00033 StopRecognitionLoop 00034 }; 00035 00036 enum ValueT { 00037 NoValue, 00038 FloatValue, 00039 StringValue, 00040 IntValue 00041 }; 00042 00044 ORControlModule(ros::NodeHandle *nh, ORMatchingModule* objRecMatchingModule); 00045 00047 virtual ~ORControlModule(); 00048 00049 private: 00050 00051 void callbackOrCommand( const or_msgs::OrCommand::ConstPtr& msg ); 00052 void callbackOrMatchResult( const or_msgs::OrMatchResult::ConstPtr& msg); 00053 00054 int m_ImagesInPipeline; 00055 int m_MaxImagesInPipeline; 00056 00057 bool m_Continuous; 00058 00059 ORMatchingModule* m_ORMatchingModule; 00060 00061 int m_SourceId; // TODO ImageSources::SourceId m_SourceId; 00062 std::vector<or_msgs::BoundingBox2D> m_BoundingBoxes; 00063 00064 ros::Subscriber m_ORCommandSubscriber; 00065 ros::Subscriber m_ORMatchResultSubscriber; 00066 00067 ros::Publisher m_ExtractKeyPointsPublisher; 00068 ros::Publisher m_DebugImagePublisher; 00069 }; 00070 00071 #endif 00072