ASCO Aerial Autonomy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
sample_parser.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <parsernode/common.h>
4 #include <parsernode/parser.h>
5 
10 class SampleParser : public parsernode::Parser {
11 public:
22  void setRC(int16_t channels[4]) {
23  for (int i = 0; i < 4; i++) {
24  quad_data.servo_in[i] = channels[i];
25  }
26  }
32  virtual bool takeoff() {
33  quad_data.quadstate = "takeoff";
34  return true;
35  }
41  virtual bool land() {
42  quad_data.quadstate = "land";
43  return true;
44  }
50  virtual bool disarm() {
51  quad_data.quadstate = "disarm";
52  return true;
53  }
59  virtual bool flowControl(bool) {
60  quad_data.quadstate = "flowcontrol";
61  return true;
62  }
68  virtual bool calibrateimubias() {
69  quad_data.quadstate = "calibrateimu";
70  return true;
71  }
82  virtual bool cmdrpythrust(geometry_msgs::Quaternion &rpytmsg,
83  bool sendyaw = false) {
84  quad_data.rpydata.x = rpytmsg.x;
85  quad_data.rpydata.y = rpytmsg.y;
86  quad_data.rpydata.z = rpytmsg.z;
87  return true;
88  }
97  virtual bool cmdvelguided(geometry_msgs::Vector3 &vel_cmd, double &yaw_ang) {
98  quad_data.linvel = vel_cmd;
99  quad_data.rpydata.z = yaw_ang;
100  return true;
101  }
110  virtual bool cmdwaypoint(geometry_msgs::Vector3 &desired_pos,
111  double desired_yaw = 0) {
112  quad_data.localpos = desired_pos;
113  quad_data.rpydata.z = desired_yaw;
114  return true;
115  }
121  virtual void grip(int state) {}
129  virtual void reset_attitude(double roll, double pitch, double yaw) {}
135  virtual void setmode(std::string mode) {}
136 
137  // PluginLib initialization function
144  virtual void initialize(ros::NodeHandle &nh_) {}
150  virtual void getquaddata(parsernode::common::quaddata &d1) { d1 = quad_data; }
154  virtual ~SampleParser() {}
160  virtual void setBatteryPercent(double percent) {
161  quad_data.batterypercent = percent;
162  }
168  virtual void setaltitude(double altitude_) {
169  quad_data.altitude = altitude_;
170  quad_data.localpos.z = altitude_;
171  }
177  virtual void setlogdir(string logdir) {}
183  virtual void controllog(bool logswitch) {}
184 
185 private:
189  parsernode::common::quaddata quad_data;
190 };
virtual bool takeoff()
Takeoff.
Definition: sample_parser.h:32
virtual void initialize(ros::NodeHandle &nh_)
Initialize the Hardware with a ros node handle to setup communications.
Definition: sample_parser.h:144
SampleParser()
Implict constructor.
Definition: sample_parser.h:15
virtual bool calibrateimubias()
Recalibrate IMU.
Definition: sample_parser.h:68
virtual bool land()
Land.
Definition: sample_parser.h:41
virtual bool cmdvelguided(geometry_msgs::Vector3 &vel_cmd, double &yaw_ang)
Command velocity and yaw to UAV.
Definition: sample_parser.h:97
virtual void setaltitude(double altitude_)
set the altitude or local z height data(m)
Definition: sample_parser.h:168
An example UAV hardware that emulates actual UAV hardware.
Definition: sample_parser.h:10
virtual void reset_attitude(double roll, double pitch, double yaw)
Set the attitude data to specified roll, pitch, yaw (rad)
Definition: sample_parser.h:129
virtual void setlogdir(string logdir)
Create log directory and create log files.
Definition: sample_parser.h:177
virtual void getquaddata(parsernode::common::quaddata &d1)
Get the sensor data and UAV state.
Definition: sample_parser.h:150
void setRC(int16_t channels[4])
set the rc channel information stored in the UAV brain
Definition: sample_parser.h:22
virtual bool disarm()
Turn off motor.
Definition: sample_parser.h:50
virtual void controllog(bool logswitch)
Toggle logging.
Definition: sample_parser.h:183
virtual ~SampleParser()
Polymorphic destructor.
Definition: sample_parser.h:154
virtual void grip(int state)
Toggle gripper.
Definition: sample_parser.h:121
virtual bool cmdwaypoint(geometry_msgs::Vector3 &desired_pos, double desired_yaw=0)
Command position yaw for UAV.
Definition: sample_parser.h:110
virtual bool cmdrpythrust(geometry_msgs::Quaternion &rpytmsg, bool sendyaw=false)
Command the euler angles of the quad and the thrust.
Definition: sample_parser.h:82
virtual bool flowControl(bool)
Toggle software control.
Definition: sample_parser.h:59
virtual void setBatteryPercent(double percent)
Set the battery percent sensor data.
Definition: sample_parser.h:160
virtual void setmode(std::string mode)
Set UAV controller mode such position controlling, rpyt etc.
Definition: sample_parser.h:135