00001 /* 00002 * FormationControl.hpp 00003 * 00004 * Created on: Nov 15, 2011 00005 * Author: mriedel 00006 */ 00007 00008 #ifndef FORMATIONCONTROL_HPP_ 00009 #define FORMATIONCONTROL_HPP_ 00010 00011 #include <telekyb_base/Options.hpp> 00012 00013 #include <sensor_msgs/Joy.h> 00014 00015 #include "FormationControlElement.hpp" 00016 00017 00018 using namespace telekyb; 00019 00020 class FormationControlOptions : public OptionContainer 00021 { 00022 public: 00023 Option< std::vector<int> >* tRobotIDs; 00024 Option<std::string>* tJoystickTopic; 00025 Option<std::string>* tVelocityInputTopic; 00026 Option<bool>* tUseMKInterface; 00027 FormationControlOptions(); 00028 }; 00029 00030 class FormationControl { 00031 protected: 00032 FormationControlOptions options; 00033 // Elements 00034 std::vector< FormationControlElement* > formationElements; 00035 00036 // ROS 00037 ros::NodeHandle mainNodeHandle; 00038 ros::Subscriber joySub; 00039 00040 public: 00041 FormationControl(); 00042 virtual ~FormationControl(); 00043 00044 // setup Behaviors 00045 void setupFormationControl(); 00046 00047 void joystickCB(const sensor_msgs::Joy::ConstPtr& msg); 00048 00049 00050 }; 00051 00052 #endif /* FORMATIONCONTROL_HPP_ */