From 4b1cf027b8bf633a946037e8a375a8a13c079391 Mon Sep 17 00:00:00 2001 From: "ucart@co3050-12" <dawehr@iastate.edu> Date: Sun, 2 Apr 2017 21:08:02 -0500 Subject: [PATCH] 1. Changed default yaw controller to be stable. 2. Switched to level 5 IMU filter 3. logging setpoints 4. Logging for up to 5 minutes 5. Also accounting for time spent during logging when calculating LOOP_TIME 6. Logging during manual mode now, too. --- quad/src/quad_app/PID.h | 2 +- quad/src/quad_app/iic_utils.c | 2 +- quad/src/quad_app/log_data.c | 3 +++ quad/src/quad_app/log_data.h | 2 +- quad/src/quad_app/quad_app.c | 12 ++++++------ 5 files changed, 12 insertions(+), 9 deletions(-) diff --git a/quad/src/quad_app/PID.h b/quad/src/quad_app/PID.h index 4c5e4b81f..5a83225b0 100644 --- a/quad/src/quad_app/PID.h +++ b/quad/src/quad_app/PID.h @@ -21,7 +21,7 @@ //#define YAW_ANGLE_KD 0.0f // when using units of radians -#define YAW_ANGULAR_VELOCITY_KP 190.0f * 2292.0f//200.0f * 2292.0f +#define YAW_ANGULAR_VELOCITY_KP 29700//200.0f * 2292.0f #define YAW_ANGULAR_VELOCITY_KI 0.0f #define YAW_ANGULAR_VELOCITY_KD 0.0f #define YAW_ANGLE_KP 2.6f diff --git a/quad/src/quad_app/iic_utils.c b/quad/src/quad_app/iic_utils.c index 90cdfb687..a0061e6b0 100644 --- a/quad/src/quad_app/iic_utils.c +++ b/quad/src/quad_app/iic_utils.c @@ -30,7 +30,7 @@ int iic0_mpu9150_start(){ // Set clock reference to Z Gyro iic0_mpu9150_write(0x6B, 0x03); // Configure Digital Low/High Pass filter - iic0_mpu9150_write(0x1A,0x06); // Level 6 low pass on gyroscope + iic0_mpu9150_write(0x1A,0x05); // Level 5 low pass on gyroscope // Configure Gyro to 2000dps, Accel. to +/-8G iic0_mpu9150_write(0x1B, 0x18); diff --git a/quad/src/quad_app/log_data.c b/quad/src/quad_app/log_data.c index 9448fc10d..3e67c14aa 100644 --- a/quad/src/quad_app/log_data.c +++ b/quad/src/quad_app/log_data.c @@ -112,6 +112,9 @@ void initialize_logging(log_t* log_struct, parameter_t* ps) { addOutputToLog(log_struct, ps->vrpn_alt, CONST_VAL, m); addOutputToLog(log_struct, ps->vrpn_pitch, CONST_VAL, rad); addOutputToLog(log_struct, ps->vrpn_roll, CONST_VAL, rad); + addOutputToLog(log_struct, ps->x_set, CONST_VAL, m); + addOutputToLog(log_struct, ps->y_set, CONST_VAL, m); + addOutputToLog(log_struct, ps->alt_set, CONST_VAL, m); addOutputToLog(log_struct, ps->mixer, MIXER_PWM0, pwm_val); addOutputToLog(log_struct, ps->mixer, MIXER_PWM1, pwm_val); addOutputToLog(log_struct, ps->mixer, MIXER_PWM2, pwm_val); diff --git a/quad/src/quad_app/log_data.h b/quad/src/quad_app/log_data.h index 34f1658d0..becc2c2e1 100644 --- a/quad/src/quad_app/log_data.h +++ b/quad/src/quad_app/log_data.h @@ -9,7 +9,7 @@ #define LOG_DATA_H_ #include "type_def.h" -#define LOG_STARTING_SIZE 8192 //262144 // 2^18 32768 2^15 +#define LOG_STARTING_SIZE 60000 //262144 // 2^18 32768 2^15 // Maximum number of block outputs you can record, and maximum number of block parameters to record #define MAX_LOG_NUM 50 diff --git a/quad/src/quad_app/quad_app.c b/quad/src/quad_app/quad_app.c index 1e3017328..01eabe901 100644 --- a/quad/src/quad_app/quad_app.c +++ b/quad/src/quad_app/quad_app.c @@ -75,15 +75,12 @@ int quad_main(int (*setup_hardware)(hardware_t *hardware_struct)) // update the GUI update_GUI(&(structs.log_struct)); - // Processing of loop timer at the end of the control loop - timer_end_loop(&(structs.log_struct)); - if (!this_kill_condition) { + // Log the data collected in this loop + log_data(&(structs.log_struct), &(structs.parameter_struct)); + if(structs.user_defined_struct.flight_mode == AUTO_FLIGHT_MODE) { - // Log the data collected in this loop - log_data(&(structs.log_struct), &(structs.parameter_struct)); - static int loop_counter = 0; loop_counter++; @@ -113,6 +110,9 @@ int quad_main(int (*setup_hardware)(hardware_t *hardware_struct)) } last_kill_condition = this_kill_condition; + + // Processing of loop timer at the end of the control loop + timer_end_loop(&(structs.log_struct)); } kill_motors(&(structs.hardware_struct.pwm_outputs)); -- GitLab