GAMS  1.4.0
AirLibQuadcopter.h
Go to the documentation of this file.
1 
8 #ifndef _GAMS_PLATFORM_AIRLIB_QUADCOPTER_H_
9 #define _GAMS_PLATFORM_AIRLIB_QUADCOPTER_H_
10 
13 
14 #include "gams/variables/Self.h"
15 #include "gams/variables/Sensor.h"
16 #include "gams/pose/GPSFrame.h"
19 
20 #include "madara/knowledge/KnowledgeBase.h"
21 #include "madara/threads/Threader.h"
22 
23 #ifdef _GAMS_AIRLIB_
24 
25 namespace gams
26 {
27  namespace platforms
28  {
32  class GAMS_EXPORT AirLibQuadcopter : public AirLibBase
33  {
34 
35  public:
36 
45  AirLibQuadcopter(
46  madara::knowledge::KnowledgeBase * knowledge,
47  variables::Sensors * sensors,
48  variables::Self * self
49  );
50 
54  virtual ~AirLibQuadcopter();
55 
61  virtual std::string get_id() const override;
62 
66  virtual std::string get_name() const override;
67 
68  virtual int sense() override;
69 
70  virtual int home() override;
71 
72  virtual int takeoff() override;
73 
74  virtual int land() override;
75 
76  virtual int move(const gams::pose::Position & location, const gams::platforms::PositionBounds & bounds) override;
77 
78  virtual const gams::pose::ReferenceFrame& get_frame() const override;
79 
80  int rotate(const gams::pose::Orientation &target, double epsilon);
81 
82  private:
83 
84  std::string vehicle_name_;
85 
86  madara::threads::Threader threader_;
87 
88  }; // class AirLibQuadcopter
89 
93  class GAMS_EXPORT AirLibQuadcopterFactory : public PlatformFactory
94  {
95  public:
96 
109  virtual ~AirLibQuadcopterFactory(){};
110 
111  virtual BasePlatform * create(
112  const madara::knowledge::KnowledgeMap & args,
113  madara::knowledge::KnowledgeBase * knowledge,
114  variables::Sensors * sensors,
115  variables::Platforms * platforms,
116  variables::Self * self);
117  };
118  } // namespace platform
119 } // namespace gams
120 
121 #endif // _GAMS_AIRLIB_
122 
123 #endif // _GAMS_PLATFORM_AIRLIB_QUADCOPTER_H_
#define GAMS_EXPORT
Definition: GamsExport.h:20
Copyright(c) 2014 Carnegie Mellon University.
Copyright(c) 2014 Carnegie Mellon University.
Copyright(c) 2014 Carnegie Mellon University.
Copyright(c) 2014 Carnegie Mellon University.
Provides Reference Frame (i.e., coordinate systemm) transforms.
std::map< std::string, PlatformStatus > Platforms
a map of sensor names to the sensor information
std::map< std::string, Sensor * > Sensors
a map of sensor names to the sensor information
Definition: Sensor.h:238
Contains all GAMS-related tools, classes and code.
Copyright (c) 2015 Carnegie Mellon University.
Copyright (c) 2015 Carnegie Mellon University.