00001 00023 #ifndef GAZEBO_FLOCKING_H_ 00024 #define GAZEBO_FLOCKING_H_ 00025 00026 #include <string> 00027 #include <list> 00028 #include <vector> 00029 #include <iostream> 00030 #include <utility> 00031 #include <cmath> 00032 #include <ctime> 00033 00034 #include "std_msgs/String.h" 00035 #include "nav_msgs/Odometry.h" 00036 #include "geometry_msgs/Twist.h" 00037 00038 #include "micros_swarm/micros_swarm.h" 00039 00040 namespace gazebo_flocking{ 00041 00042 class GazeboFlocking : public micros_swarm::Application 00043 { 00044 public: 00045 ros::Timer timer; 00046 ros::Publisher pub; 00047 ros::Subscriber sub; 00048 00049 int hz; 00050 double interval; 00051 00052 GazeboFlocking(); 00053 ~GazeboFlocking(); 00054 virtual void init(); 00055 virtual void start(); 00056 virtual void stop(); 00057 00058 //app functions 00059 void publish_cmd(const ros::TimerEvent&); 00060 void baseCallback(const nav_msgs::Odometry& lmsg); 00061 }; 00062 }; 00063 00064 #endif