SITL: remove zero initialisations, move more into class definitions

This commit is contained in:
Peter Barker 2020-09-23 08:44:18 +10:00 committed by Peter Barker
parent da5da6b14e
commit abab203b32
7 changed files with 28 additions and 54 deletions

View File

@ -41,25 +41,7 @@ using namespace SITL;
*/
Aircraft::Aircraft(const char *frame_str) :
ground_level(0.0f),
frame_height(0.0f),
dcm(),
gyro(),
velocity_ef(),
mass(0.0f),
accel_body(0.0f, 0.0f, -GRAVITY_MSS),
time_now_us(0),
gyro_noise(radians(0.1f)),
accel_noise(0.3f),
rate_hz(1200.0f),
autotest_dir(nullptr),
frame(frame_str),
num_motors(1),
#if defined(__CYGWIN__) || defined(__CYGWIN64__)
min_sleep_time(20000)
#else
min_sleep_time(5000)
#endif
frame(frame_str)
{
// make the SIM_* variables available to simulator backends
sitl = AP::sitl();
@ -67,7 +49,6 @@ Aircraft::Aircraft(const char *frame_str) :
set_speedup(1.0f);
last_wall_time_us = get_wall_time_us();
frame_counter = 0;
// allow for orientation settings, such as with tailsitters
enum ap_var_type ptype;

View File

@ -164,15 +164,15 @@ protected:
Vector3f velocity_air_bf; // velocity relative to airmass, body frame
Vector3f position; // meters, NED from origin
float mass; // kg
float external_payload_mass = 0.0f; // kg
Vector3f accel_body; // m/s/s NED, body frame
float external_payload_mass; // kg
Vector3f accel_body{0.0f, 0.0f, -GRAVITY_MSS}; // m/s/s NED, body frame
float airspeed; // m/s, apparent airspeed
float airspeed_pitot; // m/s, apparent airspeed, as seen by fwd pitot tube
float battery_voltage = -1.0f;
float battery_current = 0.0f;
float battery_current;
uint8_t num_motors = 1;
float rpm[12];
uint8_t rcin_chan_count = 0;
uint8_t rcin_chan_count;
float rcin[12];
float range = -1.0f; // externally supplied rangefinder value, assumed to have been corrected for vehicle attitude
@ -192,17 +192,17 @@ protected:
} wind_vane_apparent;
// Wind Turbulence simulated Data
float turbulence_azimuth = 0.0f;
float turbulence_horizontal_speed = 0.0f; // m/s
float turbulence_vertical_speed = 0.0f; // m/s
float turbulence_azimuth;
float turbulence_horizontal_speed; // m/s
float turbulence_vertical_speed; // m/s
Vector3f mag_bf; // local earth magnetic field vector in Gauss, earth frame
uint64_t time_now_us;
const float gyro_noise;
const float accel_noise;
float rate_hz;
const float gyro_noise = radians(0.1f);
const float accel_noise = 0.3f;
float rate_hz = 1200.0f;
float target_speedup;
uint64_t frame_time_us;
uint64_t last_wall_time_us;
@ -289,10 +289,14 @@ protected:
float get_local_updraft(Vector3f currentPos);
private:
uint64_t last_time_us = 0;
uint32_t frame_counter = 0;
uint64_t last_time_us;
uint32_t frame_counter;
uint32_t last_ground_contact_ms;
const uint32_t min_sleep_time;
#if defined(__CYGWIN__) || defined(__CYGWIN64__)
const uint32_t min_sleep_time{20000};
#else
const uint32_t min_sleep_time{5000};
#endif
struct {
Vector3f accel_body;

View File

@ -24,8 +24,7 @@
using namespace SITL;
MultiCopter::MultiCopter(const char *frame_str) :
Aircraft(frame_str),
frame(nullptr)
Aircraft(frame_str)
{
mass = 1.5f;

View File

@ -24,13 +24,7 @@
namespace SITL {
SimRover::SimRover(const char *frame_str) :
Aircraft(frame_str),
max_speed(20),
max_accel(10),
max_wheel_turn(35),
turning_circle(1.8),
skid_turn_rate(140), // degrees/sec
skid_steering(false)
Aircraft(frame_str)
{
skid_steering = strstr(frame_str, "skid") != nullptr;

View File

@ -38,11 +38,11 @@ public:
}
private:
float max_speed;
float max_accel;
float max_wheel_turn;
float turning_circle;
float skid_turn_rate;
float max_speed = 20.0f;
float max_accel = 10.0f;
float max_wheel_turn = 35.0f;
float turning_circle = 1.8f;
float skid_turn_rate = 140.0f;
bool skid_steering;
float turn_circle(float steering);

View File

@ -22,11 +22,6 @@
namespace SITL {
Tracker::Tracker(const char *frame_str) :
Aircraft(frame_str)
{}
/*
update function for position (normal) servos.
*/

View File

@ -27,7 +27,8 @@ namespace SITL {
*/
class Tracker : public Aircraft {
public:
Tracker(const char *frame_str);
using Aircraft::Aircraft;
void update(const struct sitl_input &input) override;
/* static object creator */
@ -44,7 +45,7 @@ private:
const float yaw_range = 170;
const float zero_yaw = 270; // yaw direction at startup
const float zero_pitch = 10; // pitch at startup
uint64_t last_debug_us = 0;
uint64_t last_debug_us;
float pitch_input;
float yaw_input;