00001 00023 #ifndef OLFATI_SABER_FLOCKING_H_ 00024 #define OLFATI_SABER_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 olfati_saber_flocking{ 00041 00042 class OlfatiSaberFlocking : 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 OlfatiSaberFlocking(); 00053 ~OlfatiSaberFlocking(); 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