00001 00016 #ifndef UCL_DRONE_MULTI_STRATEGY_H 00017 #define UCL_DRONE_MULTI_STRATEGY_H 00018 00019 // ROS Header files 00020 #include <ros/package.h> 00021 #include <ros/ros.h> 00022 00023 // #define USE_PROFILING // Uncomment this line to display timing print in the standard output 00024 #include <ucl_drone/profiling.h> 00025 00026 // messages 00027 #include <ucl_drone/DroneRole.h> 00028 #include <ucl_drone/DroneRoles.h> 00029 #include <ucl_drone/Pose3D.h> 00030 00031 // ucl_drone 00032 #include <ucl_drone/drone_role.h> 00033 #include <ucl_drone/ucl_drone.h> 00034 00039 class MultiStrategy 00040 { 00041 private: 00042 ros::NodeHandle nh_; 00043 00044 // Subscriber 00045 ros::Subscriber ready_sub; 00046 std::string ready_channel; 00047 00048 // Publishers 00049 ros::Publisher drones_roles_pub; 00050 std::string drones_roles_channel; 00051 00053 void readyCb(const ucl_drone::DroneRole::ConstPtr readyPtr); 00054 00056 std::vector< DroneRole > role_list; 00057 00058 public: 00060 MultiStrategy(); 00061 00063 ~MultiStrategy(); 00064 00065 void init(); 00066 00067 void PublishDroneRole(); 00068 }; 00069 00070 #endif /* UCL_DRONE_MULTI_STRATEGY_H */