diff --git a/sw/airborne/subsystems/actuators/motor_mixing_types.h b/sw/airborne/subsystems/actuators/motor_mixing_types.h index d0b6fe38da..a08f39796f 100644 --- a/sw/airborne/subsystems/actuators/motor_mixing_types.h +++ b/sw/airborne/subsystems/actuators/motor_mixing_types.h @@ -27,12 +27,13 @@ #define MOTOR_MIXING_TYPES_H /* already defined common configurations*/ -#define QUAD_PLUS 1 -#define QUAD_X 2 -#define HEXA_X 3 -#define HEXA_PLUS 4 -#define OCTO_X 5 -#define OCTO_PLUS 6 +#define QUAD_PLUS 1 +#define QUAD_X 2 +#define QUAD_X_CCW 3 +#define HEXA_X 4 +#define HEXA_PLUS 5 +#define OCTO_X 6 +#define OCTO_PLUS 7 #if MOTOR_MIXING_TYPE == QUAD_PLUS /* @@ -66,6 +67,22 @@ #define MOTOR_MIXING_YAW_COEF { -128, 128, -128, 128 } #define MOTOR_MIXING_THRUST_COEF { 256, 256, 256, 256 } +#elif MOTOR_MIXING_TYPE == QUAD_X_CCW +/* + * Quadrotor in time cross (X) configuration with motor order (reversed from QUAD_X): + * front left (CCW), front right (CW), back right (CCW), back left (CW) + */ +#define MOTOR_FRONT_LEFT 0 +#define MOTOR_FRONT_RIGHT 1 +#define MOTOR_BACK_RIGHT 2 +#define MOTOR_BACK_LEFT 3 +#define MOTOR_MIXING_NB_MOTOR 4 +#define MOTOR_MIXING_SCALE 256 +#define MOTOR_MIXING_ROLL_COEF { 181, -181, -181, 181 } +#define MOTOR_MIXING_PITCH_COEF { 181, 181, -181, -181 } +#define MOTOR_MIXING_YAW_COEF { 128, -128, 128, -128 } +#define MOTOR_MIXING_THRUST_COEF { 256, 256, 256, 256 } + #elif MOTOR_MIXING_TYPE == HEXA_X /* * Hexarotor in time cross (X) configuration with motor order: