mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-06-06 16:58:48 +08:00
Move motor scale factor into airframe, and add thrust coefs
This commit is contained in:
@@ -26,9 +26,11 @@
|
||||
<define name="TRIM_E" value="0"/>
|
||||
<define name="TRIM_R" value="0"/>
|
||||
<define name="NB_MOTOR" value="4"/>
|
||||
<define name="SCALE" value="256"/>
|
||||
<define name="ROLL_COEF" value="{ 0, 0, -256, 256}"/>
|
||||
<define name="PITCH_COEF" value="{ 256, -256, 0, 0}"/>
|
||||
<define name="YAW_COEF" value="{ -256, -256, 256, 256}"/>
|
||||
<define name="THRUST_COEF" value="{ 1, 1, 1, 1}"/>
|
||||
</section>
|
||||
|
||||
<section name="IMU" prefix="IMU_">
|
||||
|
||||
@@ -28,9 +28,11 @@
|
||||
<define name="TRIM_E" value="0"/>
|
||||
<define name="TRIM_R" value="0"/>
|
||||
<define name="NB_MOTOR" value="6"/>
|
||||
<define name="SCALE" value="256"/>
|
||||
<define name="ROLL_COEF" value="{ -69, 69, -256, 256, -186, 186 }"/>
|
||||
<define name="PITCH_COEF" value="{ -256, -256, 0, 0, 256, 256 }"/>
|
||||
<define name="YAW_COEF" value="{ -153, 153, 256, -256, -115, 115 }"/>
|
||||
<define name="THRUST_COEF" value="{ 1, 1, 1, 1, 1, 1 }"/>
|
||||
</section>
|
||||
|
||||
<section name="IMU" prefix="IMU_">
|
||||
|
||||
@@ -27,9 +27,11 @@
|
||||
<define name="TRIM_E" value="0"/>
|
||||
<define name="TRIM_R" value="0"/>
|
||||
<define name="NB_MOTOR" value="4"/>
|
||||
<define name="SCALE" value="256"/>
|
||||
<define name="ROLL_COEF" value="{ 0, 0, -256, 256}"/>
|
||||
<define name="PITCH_COEF" value="{ 256, -256, 0, 0}"/>
|
||||
<define name="YAW_COEF" value="{ -256, -256, 256, 256}"/>
|
||||
<define name="THRUST_COEF" value="{ 1, 1, 1, 1}"/>
|
||||
</section>
|
||||
|
||||
<section name="IMU" prefix="IMU_">
|
||||
|
||||
@@ -32,9 +32,10 @@
|
||||
#define INT32_MAX (2147483647)
|
||||
#endif
|
||||
|
||||
static const int32_t roll_coef[SUPERVISION_NB_MOTOR] = SUPERVISION_ROLL_COEF;
|
||||
static const int32_t pitch_coef[SUPERVISION_NB_MOTOR] = SUPERVISION_PITCH_COEF;
|
||||
static const int32_t yaw_coef[SUPERVISION_NB_MOTOR] = SUPERVISION_YAW_COEF;
|
||||
static const int32_t roll_coef[SUPERVISION_NB_MOTOR] = SUPERVISION_ROLL_COEF;
|
||||
static const int32_t pitch_coef[SUPERVISION_NB_MOTOR] = SUPERVISION_PITCH_COEF;
|
||||
static const int32_t yaw_coef[SUPERVISION_NB_MOTOR] = SUPERVISION_YAW_COEF;
|
||||
static const int32_t thrust_coef[SUPERVISION_NB_MOTOR] = SUPERVISION_THRUST_COEF;
|
||||
|
||||
struct BoozSupervision supervision;
|
||||
|
||||
@@ -70,11 +71,11 @@ void supervision_run(bool_t motors_on, int32_t in_cmd[] ) {
|
||||
int32_t max_cmd = INT32_MIN;
|
||||
for (i=0; i<SUPERVISION_NB_MOTOR; i++) {
|
||||
supervision.commands[i] =
|
||||
in_cmd[COMMAND_THRUST] +
|
||||
(roll_coef[i] * in_cmd[COMMAND_ROLL] +
|
||||
pitch_coef[i] * in_cmd[COMMAND_PITCH] +
|
||||
yaw_coef[i] * in_cmd[COMMAND_YAW] +
|
||||
supervision.trim[i] )/256;
|
||||
(thrust_coef[i] * in_cmd[COMMAND_THRUST] +
|
||||
roll_coef[i] * in_cmd[COMMAND_ROLL] +
|
||||
pitch_coef[i] * in_cmd[COMMAND_PITCH] +
|
||||
yaw_coef[i] * in_cmd[COMMAND_YAW] +
|
||||
supervision.trim[i]) / SUPERVISION_SCALE;
|
||||
if (supervision.commands[i] < min_cmd)
|
||||
min_cmd = supervision.commands[i];
|
||||
if (supervision.commands[i] > max_cmd)
|
||||
|
||||
Reference in New Issue
Block a user