Experiment.hpp
Go to the documentation of this file.
00001 /*
00002  * Experiment.hpp
00003  *
00004  *  Created on: Nov 15, 2011
00005  *      Author: mriedel
00006  */
00007 
00008 #ifndef EXPERIMENT_HPP_
00009 #define EXPERIMENT_HPP_
00010 
00011 #include <telekyb_base/Options.hpp>
00012 
00013 #include <sensor_msgs/Joy.h>
00014 
00015 #include <telekyb_interface/TeleKybCore.hpp>
00016 #include <telekyb_interface/MKInterface.hpp>
00017 
00018 
00019 using namespace telekyb;
00020 
00021 class ExperimentOptions : public OptionContainer
00022 {
00023 public:
00024         Option<int>* robotID;
00025         Option<std::string> *tJoystickTopic, *trajectoryFile;
00026         Option<bool>* tUseMKInterface;
00027         ExperimentOptions();
00028 };
00029 
00030 class Experiment : telekyb_interface::ActiveBehaviorListener {
00031 protected:
00032         ExperimentOptions options;
00033         // ROS
00034         ros::NodeHandle mainNodeHandle;
00035         ros::Subscriber joySub;
00036 
00037         // the System
00038         telekyb_interface::TeleKybCore* core;
00039         // BehaviorController
00040         telekyb_interface::BehaviorController* bController;
00041         telekyb_interface::OptionController *oController;
00042 
00043         // Optional MKInterface
00044         telekyb_interface::MKInterface* mkInterface;
00045 
00046 
00047         // System Behaviors
00048         telekyb_interface::Behavior ground;
00049         telekyb_interface::Behavior hover;
00050         telekyb_interface::Behavior normalBreak;
00051         telekyb_interface::Behavior takeOff;
00052         telekyb_interface::Behavior land;
00053 
00054         // Custom
00055         telekyb_interface::Behavior joystick;
00056         telekyb_interface::Behavior trajPlayback;
00057 
00058         // Fly around three points.
00059         telekyb_interface::Behavior flyto1;
00060         telekyb_interface::Behavior flyto2;
00061         telekyb_interface::Behavior flyto3;
00062 
00063         // Behavior
00064         telekyb_interface::Behavior* activeBehaviorPtr;
00065 
00066 
00067 
00068 
00069 public:
00070         Experiment();
00071         virtual ~Experiment();
00072 
00073         // setup Behaviors
00074         void setupExperiment();
00075 
00076         // From Interface
00077         void activeBehaviorChanged(telekyb_interface::Behavior newActiveBehavior);
00078 
00079         void joystickCB(const sensor_msgs::Joy::ConstPtr& msg);
00080 };
00081 
00082 #endif /* EXPERIMENT_HPP_ */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends


tk_exp_joystick
Author(s): mriedel
autogenerated on Thu Apr 25 2013 11:16:01