00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifdef MATRIX_TRICOPTER_YAWTAIL
00022 #define MATRIX_TRICOPTER
00023 #define MATRIX_OUTPUTS 4
00024 #define USE_YAW_COMPENSATION
00025
00026
00027
00028
00029
00030
00031
00032
00033 const float matrixGains[MATRIX_OUTPUTS][MAX_COMMANDS + 2]=
00034 {
00035
00036 {0 ,0 ,-1 ,0 ,0 ,0},
00037 {-0.25 ,0 ,0 ,0.9 ,-1 ,0.1},
00038 {0.125 ,0.216 ,0 ,0.9 ,-1 ,0},
00039 {0.125 ,-0.216 ,0 ,0.9 ,-1 ,0},
00040 };
00041 #endif
00042
00043
00044 #ifdef MATRIX_TRICOPTER_YAWFRONT
00045 #define MATRIX_TRICOPTER
00046 #define MATRIX_OUTPUTS 4
00047 #define USE_YAW_COMPENSATION
00048
00049
00050
00051
00052
00053
00054 const float matrixGains[MATRIX_OUTPUTS][MAX_COMMANDS + 2]=
00055 {
00056
00057 {0 ,0 ,1 ,0 ,0 ,0},
00058 {0.25 ,0 ,0 ,0.9 ,-1 ,0.1},
00059 {-0.125 ,-0.216 ,0 ,0.9 ,-1 ,0},
00060 {-0.125 ,0.216 ,0 ,0.9 ,-1 ,0},
00061 };
00062 #endif
00063
00064 #ifdef MATRIX_TRICOPTER
00065
00066 const float motorDisarmed[MATRIX_OUTPUTS]=
00067 {
00068 0,
00069 -1,
00070 -1,
00071 -1,
00072 };
00073
00074 const char matrixServo0[] PROGMEM = "Servo.1";
00075 const char matrixServo1[] PROGMEM = "FastServo.1";
00076 const char matrixServo2[] PROGMEM = "FastServo.2";
00077 const char matrixServo3[] PROGMEM = "FastServo.3";
00078
00079 const char * matrixServos[MATRIX_OUTPUTS]={
00080 matrixServo0,
00081 matrixServo1,
00082 matrixServo2,
00083 matrixServo3,
00084 };
00085
00086 #endif
00087
00088
00089 #ifdef MATRIX_QUAD_X
00090 #define MATRIX_QUAD
00091 #define MATRIX_OUTPUTS 4
00092
00093
00094
00095
00096
00097
00098 const float matrixGains[MATRIX_OUTPUTS][MAX_COMMANDS + 1]=
00099 {
00100
00101 {0.5 ,0.5 ,0.5 ,1.8 ,-1 },
00102 {0.5 ,-0.5 ,-0.5 ,1.8 ,-1 },
00103 {-0.5 ,-0.5 ,0.5 ,1.8 ,-1 },
00104 {-0.5 ,0.5 ,-0.5 ,1.8 ,-1 },
00105 };
00106
00107 #endif
00108
00109 #ifdef MATRIX_QUAD_PLUS
00110 #define MATRIX_QUAD
00111 #define MATRIX_OUTPUTS 4
00112
00113
00114
00115
00116
00117
00118 const float matrixGains[MATRIX_OUTPUTS][MAX_COMMANDS + 1]=
00119 {
00120
00121 {1 ,0 ,0.5 ,1.8 ,-1 },
00122 {0 ,-1 ,-0.5 ,1.8 ,-1 },
00123 {-1 ,0 ,0.5 ,1.8 ,-1 },
00124 {0 ,1 ,-0.5 ,1.8 ,-1 },
00125 };
00126
00127 #endif
00128
00129
00130 #ifdef MATRIX_QUAD
00131
00132 const float motorDisarmed[MATRIX_OUTPUTS]=
00133 {
00134 -1,
00135 -1,
00136 -1,
00137 -1,
00138 };
00139
00140 const char matrixServo0[] PROGMEM = "FastServo.1";
00141 const char matrixServo1[] PROGMEM = "FastServo.2";
00142 const char matrixServo2[] PROGMEM = "FastServo.3";
00143 const char matrixServo3[] PROGMEM = "FastServo.4";
00144
00145 const char * matrixServos[MATRIX_OUTPUTS]={
00146 matrixServo0,
00147 matrixServo1,
00148 matrixServo2,
00149 matrixServo3,
00150 };
00151
00152 #endif
00153
00154
00155 #include "kinematics.h"
00156
00157
00159
00199