From 39ba406957f6e0b08d3b23c43fe322f48f5a6ba2 Mon Sep 17 00:00:00 2001 From: Randy Mackay Date: Sun, 31 Mar 2013 12:41:02 +0900 Subject: [PATCH] Copter: add trapezoid frame type We still need to properly define the motor mixing for the trapezoid frame in AP_MotorsQuad.cpp --- libraries/AP_Motors/AP_MotorsQuad.cpp | 6 ++++++ libraries/AP_Motors/AP_Motors_Class.h | 7 ++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/libraries/AP_Motors/AP_MotorsQuad.cpp b/libraries/AP_Motors/AP_MotorsQuad.cpp index ba6876b5cd..1d2740e21f 100644 --- a/libraries/AP_Motors/AP_MotorsQuad.cpp +++ b/libraries/AP_Motors/AP_MotorsQuad.cpp @@ -23,6 +23,12 @@ void AP_MotorsQuad::setup_motors() add_motor(AP_MOTORS_MOT_2, -90, AP_MOTORS_MATRIX_MOTOR_CCW, 4); add_motor(AP_MOTORS_MOT_3, 0, AP_MOTORS_MATRIX_MOTOR_CW, 1); add_motor(AP_MOTORS_MOT_4, 180, AP_MOTORS_MATRIX_MOTOR_CW, 3); + }else if( _frame_orientation == AP_MOTORS_TRAPEZOID_FRAME ) { + // To-Do correct motor mixing properly for trapezoidal frame + add_motor(AP_MOTORS_MOT_1, 45, AP_MOTORS_MATRIX_MOTOR_CCW, 1); + add_motor(AP_MOTORS_MOT_2, -135, AP_MOTORS_MATRIX_MOTOR_CCW, 3); + add_motor(AP_MOTORS_MOT_3, -45, AP_MOTORS_MATRIX_MOTOR_CW, 4); + add_motor(AP_MOTORS_MOT_4, 135, AP_MOTORS_MATRIX_MOTOR_CW, 2); }else{ // X frame set-up add_motor(AP_MOTORS_MOT_1, 45, AP_MOTORS_MATRIX_MOTOR_CCW, 1); diff --git a/libraries/AP_Motors/AP_Motors_Class.h b/libraries/AP_Motors/AP_Motors_Class.h index a21056f451..d7f74c328c 100644 --- a/libraries/AP_Motors/AP_Motors_Class.h +++ b/libraries/AP_Motors/AP_Motors_Class.h @@ -32,9 +32,10 @@ #define AP_MOTORS_APM2 2 // frame definitions -#define AP_MOTORS_PLUS_FRAME 0 -#define AP_MOTORS_X_FRAME 1 -#define AP_MOTORS_V_FRAME 2 +#define AP_MOTORS_PLUS_FRAME 0 +#define AP_MOTORS_X_FRAME 1 +#define AP_MOTORS_V_FRAME 2 +#define AP_MOTORS_TRAPEZOID_FRAME 3 // motor update rate #define AP_MOTORS_SPEED_DEFAULT 490