APM:Libraries
SIM_SingleCopter.h
Go to the documentation of this file.
1 /*
2  This program is free software: you can redistribute it and/or modify
3  it under the terms of the GNU General Public License as published by
4  the Free Software Foundation, either version 3 of the License, or
5  (at your option) any later version.
6 
7  This program is distributed in the hope that it will be useful,
8  but WITHOUT ANY WARRANTY; without even the implied warranty of
9  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  GNU General Public License for more details.
11 
12  You should have received a copy of the GNU General Public License
13  along with this program. If not, see <http://www.gnu.org/licenses/>.
14  */
15 /*
16  single copter simulator class
17 */
18 
19 #pragma once
20 
21 #include "SIM_Aircraft.h"
22 #include <AP_Motors/AP_Motors.h>
23 
24 namespace SITL {
25 
26 /*
27  a single copter simulator
28  */
29 class SingleCopter : public Aircraft {
30 public:
31  SingleCopter(const char *home_str, const char *frame_str);
32 
33  /* update model by one time step */
34  void update(const struct sitl_input &input);
35 
36  /* static object creator */
37  static Aircraft *create(const char *home_str, const char *frame_str) {
38  return new SingleCopter(home_str, frame_str);
39  }
40 
41 private:
42  float terminal_rotation_rate = 4*radians(360.0f);
43  float hover_throttle = 0.65f;
44  float terminal_velocity = 40;
46  float roll_rate_max = radians(700);
47  float pitch_rate_max = radians(700);
48  float yaw_rate_max = radians(700);
49  float thrust_scale;
50 
51  enum {
54  } frame_type;
55 };
56 
57 } // namespace SITL
void update(const struct sitl_input &input)
SingleCopter(const char *home_str, const char *frame_str)
static Aircraft * create(const char *home_str, const char *frame_str)
enum SITL::SingleCopter::@210 frame_type
#define f(i)
static constexpr float radians(float deg)
Definition: AP_Math.h:158
#define AP_MOTORS_MATRIX_YAW_FACTOR_CW