diff --git a/crazyflie_software/crazyflie-firmware-2021.06/src/modules/src/controller_student.c b/crazyflie_software/crazyflie-firmware-2021.06/src/modules/src/controller_student.c index 634bfcc0b532d32b2c8bb939f4341219d15af4d1..86b26c5620616e343dd186cc44dfed62a96f828f 100644 --- a/crazyflie_software/crazyflie-firmware-2021.06/src/modules/src/controller_student.c +++ b/crazyflie_software/crazyflie-firmware-2021.06/src/modules/src/controller_student.c @@ -118,7 +118,7 @@ void controllerStudent(control_t *control, setpoint_t *setpoint, const sensorDat } //set desired thrust - thrustDesired = setpoint->thrust; + thrustDesired = setpoint->thrust/4; // Run the attitude controller with the measured attitude and desired attitude @@ -144,6 +144,7 @@ void controllerStudent(control_t *control, setpoint_t *setpoint, const sensorDat if(tuning_mode == true){ if (setpoint->mode.yaw == modeVelocity) { rateDesired.yaw = setpoint->attitudeRate.yaw; + attitudeDesired.roll = 3; studentAttitudeControllerResetYawAttitudePID(); } } @@ -151,9 +152,9 @@ void controllerStudent(control_t *control, setpoint_t *setpoint, const sensorDat //update the attitude rate PID, given the current angular rate //read by the gyro and the desired rate studentAttitudeControllerCorrectRatePID(sensors->gyro.x, -sensors->gyro.y, sensors->gyro.z, - rateDesired.roll, rateDesired.pitch, rateDesired.yaw, + rateDesired.roll, rateDesired.pitch, setpoint->attitudeRate.yaw, &(control->roll), &(control->pitch), &(control->yaw)); - + rateDesired.yaw = setpoint->attitudeRate.yaw; //invert yaw control control->yaw = -control->yaw; } diff --git a/crazyflie_software/crazyflie-firmware-2021.06/src/modules/src/student_attitude_controller.c b/crazyflie_software/crazyflie-firmware-2021.06/src/modules/src/student_attitude_controller.c index 0f4c6b3001069adf89226bae540f611fbb6904ad..6285f129e58e8cbb22c58f2346f1ff50f7420d7d 100644 --- a/crazyflie_software/crazyflie-firmware-2021.06/src/modules/src/student_attitude_controller.c +++ b/crazyflie_software/crazyflie-firmware-2021.06/src/modules/src/student_attitude_controller.c @@ -134,13 +134,14 @@ void studentAttitudeControllerCorrectRatePID( ) { studentPidSetDesired(&pidRollRate, rollRateDesired); - *rollCommand = saturateSignedInt16(studentPidUpdate(&pidRollRate, rollRateMeasured, true)); + + *rollCommand = saturateSignedInt16(studentPidUpdate(&pidRollRate, rollRateMeasured, true)/4); studentPidSetDesired(&pidPitchRate, pitchRateDesired); - *pitchCommand = saturateSignedInt16(studentPidUpdate(&pidPitchRate, pitchRateMeasured, true)); + *pitchCommand = saturateSignedInt16(studentPidUpdate(&pidPitchRate, pitchRateMeasured, true)/4); studentPidSetDesired(&pidYawRate, yawRateDesired); - *yawCommand = saturateSignedInt16(studentPidUpdate(&pidYawRate, yawRateMeasured, true)); + *yawCommand = saturateSignedInt16(studentPidUpdate(&pidYawRate, yawRateMeasured, true)/4); } void studentAttitudeControllerResetRollAttitudePID(void)