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;
00026         Option<bool>* tUseMKInterface;
00027 
00028         Option<std::string>* tTrajectoryFileName;
00029 
00030         Option<Eigen::Vector3d>* tTrajectoryStartPoint;
00031         ExperimentOptions();
00032 };
00033 
00034 class Experiment : telekyb_interface::ActiveBehaviorListener {
00035 protected:
00036         ExperimentOptions options;
00037         // ROS
00038         ros::NodeHandle mainNodeHandle;
00039         ros::Subscriber joySub;
00040 
00041         // the System
00042         telekyb_interface::TeleKybCore* core;
00043         // BehaviorController
00044         telekyb_interface::BehaviorController* bController;
00045         telekyb_interface::OptionController *oController;
00046 
00047         // Optional MKInterface
00048         telekyb_interface::MKInterface* mkInterface;
00049 
00050 
00051         // System Behaviors
00052         telekyb_interface::Behavior ground;
00053         telekyb_interface::Behavior hover;
00054         telekyb_interface::Behavior normalBreak;
00055         telekyb_interface::Behavior takeOff;
00056         telekyb_interface::Behavior land;
00057 
00058         // Custom
00059         //telekyb_interface::Behavior joystick;
00060         telekyb_interface::Behavior trajPlayback;
00061 
00062         // Fly around three points.
00063         telekyb_interface::Behavior flyto1;
00064         //telekyb_interface::Behavior flyto2;
00065         //telekyb_interface::Behavior flyto3;
00066 
00067         // Behavior
00068         telekyb_interface::Behavior* activeBehaviorPtr;
00069 
00070 
00071 
00072 
00073 public:
00074         Experiment();
00075         virtual ~Experiment();
00076 
00077         // setup Behaviors
00078         void setupExperiment();
00079 
00080         // From Interface
00081         void activeBehaviorChanged(telekyb_interface::Behavior newActiveBehavior);
00082 
00083         void joystickCB(const sensor_msgs::Joy::ConstPtr& msg);
00084 };
00085 
00086 #endif /* EXPERIMENT_HPP_ */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends


tk_exp_smurf
Author(s): Riccardo Spica
autogenerated on Thu Apr 25 2013 11:16:16