Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: RTOS-Setup/src/setup.cpp
- Revision:
- 21:b642c18eccd1
- Parent:
- 20:b193a50a2ba3
- Child:
- 22:ef8aa9728013
diff -r b193a50a2ba3 -r b642c18eccd1 RTOS-Setup/src/setup.cpp
--- a/RTOS-Setup/src/setup.cpp Sat May 03 02:55:24 2014 +0000
+++ b/RTOS-Setup/src/setup.cpp Thu May 08 09:39:12 2014 +0000
@@ -1,3 +1,12 @@
+float KP_PITCH_STABLE = 0.0;//0.5;
+float KP_ROLL_STABLE = 0.0;//0.5;
+float KP_YAW_RATE = 8.5;
+float KP_PITCH_RATE = 8.5;//4.0;
+float KP_ROLL_RATE = 8.5;//4.0;
+
+float PID_TI_RATE = 0.0;
+float PID_TI_STABLE = 0.0;
+
#include "setup.h"
#include "tasks.h"
@@ -16,13 +25,12 @@
//DigitalOut LED[4] = {LED1, LED2, LED3, LED4};
//Kc, Ti, Td, interval
-float KP_YAW_RATE = 0.0;
-float KP_PITCH_RATE = 0.0;
-float KP_ROLL_RATE = 0.0;
+PID yawPIDrate(KP_YAW_RATE, PID_TI_RATE, 0.0, TASK2_PERIOD/1000.0);
+PID pitchPIDrate(KP_PITCH_RATE, PID_TI_RATE, 0.0, TASK2_PERIOD/1000.0);
+PID rollPIDrate(KP_ROLL_RATE, PID_TI_RATE, 0.0, TASK2_PERIOD/1000.0);
-PID yawPIDrate(KP_YAW_RATE, 0.0, 0.0, TASK2_PERIOD/1000.0);
-PID pitchPIDrate(KP_PITCH_RATE, 0.0, 0.0, TASK2_PERIOD/1000.0);
-PID rollPIDrate(KP_ROLL_RATE, 0.0, 0.0, TASK2_PERIOD/1000.0);
+PID pitchPIDstable(KP_PITCH_STABLE, PID_TI_STABLE, 0.0, TASK1_PERIOD/1000.0);
+PID rollPIDstable(KP_ROLL_STABLE, PID_TI_STABLE, 0.0, TASK1_PERIOD/1000.0);
PwmOut ESC[4] = {p21, p22, p23, p24};
@@ -35,7 +43,7 @@
{
bool error = false;
- box_demo = true;
+ //box_demo = true;
if (!setup_ESC()) {
imu.debugSerial.printf("ESC FAILED!!!\n");
@@ -43,25 +51,25 @@
}
if (setup_bt())
- BT.printf("BT established!\n");
+ imu.debugSerial.printf("BT established!\n");
else error = true;
if (setup_PID())
- BT.printf("PID established!\n");
+ imu.debugSerial.printf("PID established!\n");
else error = true;
if (setup_mpu6050())
- BT.printf("MPU6050 established!\n");
+ imu.debugSerial.printf("MPU6050 established!\n");
else error = true;
#ifdef ENABLE_COMPASS
if (setup_compass())
- BT.printf("Compass established!\n");
+ imu.debugSerial.printf("Compass established!\n");
else error = true;
#endif
if (setup_altimeter())
- BT.printf("Altimeter established!\n");
+ imu.debugSerial.printf("Altimeter established!\n");
else {
error = true;
imu.debugSerial.printf("ALTI FAILED\n");
@@ -105,17 +113,32 @@
// ****************************************************************
bool setup_PID(void)
{
- yawPIDrate.setInputLimits(-1100, 1100);
- yawPIDrate.setOutputLimits(-1000, 1000);
+ pitchPIDstable.setInputLimits(-90.0, 90.0);
+ pitchPIDstable.setOutputLimits(-500, 500.0);
+ pitchPIDstable.setBias(0.0);
+ pitchPIDstable.setMode(AUTO_MODE);
+
+ rollPIDstable.setInputLimits(-90.0, 90.0);
+ rollPIDstable.setOutputLimits(-500, 500.0);
+ rollPIDstable.setBias(0.0);
+ rollPIDstable.setMode(AUTO_MODE);
+
+ yawPIDrate.setInputLimits(-500.0, 500.0);
+ yawPIDrate.setOutputLimits(-200.0, 200.0);
+ yawPIDrate.setBias(0.0);
yawPIDrate.setMode(AUTO_MODE);
- pitchPIDrate.setInputLimits(-1100, 1100);
- pitchPIDrate.setOutputLimits(-1000, 1000);
+ pitchPIDrate.setInputLimits(-500.0, 500.0);
+ pitchPIDrate.setOutputLimits(-200.0, 200.0);
+ pitchPIDrate.setBias(0.0);
pitchPIDrate.setMode(AUTO_MODE);
-
- rollPIDrate.setInputLimits(-1100, 1100);
- rollPIDrate.setOutputLimits(-1000, 1000);
+
+ rollPIDrate.setInputLimits(-500.0, 500.0);
+ rollPIDrate.setOutputLimits(-200.0, 200.0);
+ rollPIDrate.setBias(0.0);
rollPIDrate.setMode(AUTO_MODE);
+
+
return true;
}