[imu] Enable IMU integration and fix small mistakes

This commit is contained in:
Freek van Tienen
2022-09-20 13:51:28 +02:00
parent affcc2c2d9
commit 3e473e72a6
11 changed files with 226 additions and 180 deletions
+24 -45
View File
@@ -49,7 +49,9 @@
<define name="RADIO_FBW_MODE" value="RADIO_AUX3"/> <!-- Switch between AP and FBW control -->
<define name="RADIO_KILL_SWITCH" value="RADIO_AUX1"/>
<!-- Use the external mag (not in NPS target as then it needs to listen to all) -->
<!-- Choose which sensors to use in the EKF2 (not in NPS target as then it needs to listen to all) -->
<define name="INS_EKF2_ACCEL_ID" value="IMU_CUBE2_ID"/>
<define name="INS_EKF2_GYRO_ID" value="IMU_CUBE2_ID"/>
<define name="INS_EKF2_MAG_ID" value="MAG_LIS3MDL_SENDER_ID"/>
</target>
@@ -84,7 +86,7 @@
<module name="gps" type="ubx_ucenter"/>
<module name="stabilization" type="indi_simple"/>
<module name="stabilization" type="rate_indi"/>
<module name="ins" type="ekf2" />
<module name="ins" type="ekf2"/>
<module name="air_data"/>
@@ -128,7 +130,7 @@
<module name="motor_mixing"/>
</firmware>
<!-- CAN BUS 1 (Front Wing) -->
<!-- CPWM outputs -->
<servos driver="Pwm">
<servo name="MOTOR_1" no="0" min="1000" neutral="1100" max="2000"/>
<servo name="MOTOR_2" no="1" min="1000" neutral="1100" max="2000"/>
@@ -139,7 +141,7 @@
<servo name="MOTOR_7" no="6" min="1000" neutral="1100" max="2000"/>
</servos>
<!-- CAN BUS 1 (Front Wing) -->
<!-- CAN BUS 1 outputs -->
<servos driver="Uavcan1">
<!--servo name="MOTOR_1" no="0" min="-8191" neutral="1500" max="8191"/>
<servo name="MOTOR_2" no="1" min="-8191" neutral="1500" max="8191"/>
@@ -153,17 +155,17 @@
<servo name="AIL_2" no="9" min="-6000" neutral="0" max="6000"/>
</servos>
<!-- CAN BUS 2 outputs -->
<servos driver="Uavcan2">
<!--servo name="MOTOR_1" no="0" min="-8191" neutral="1500" max="8191"/>
<servo name="MOTOR_2" no="1" min="-8191" neutral="1500" max="8191"/>
<servo name="MOTOR_3" no="2" min="-8191" neutral="1500" max="8191"/>
<servo name="MOTOR_4" no="3" min="-8191" neutral="1500" max="8191"/>
<servo name="MOTOR_5" no="4" min="-8191" neutral="1500" max="8191"/>
<servo name="MOTOR_6" no="5" min="-8191" neutral="1500" max="8191"/-->
<servo name="AIL1_1" no="6" min="6000" neutral="0" max="-6000"/>
<servo name="FLAP1_1" no="7" min="6000" neutral="0" max="-6000"/>
<servo name="FLAP1_2" no="8" min="-6000" neutral="0" max="6000"/>
<servo name="AIL1_2" no="9" min="-6000" neutral="0" max="6000"/>
<servo name="MOTOR_8" no="0" min="-8191" neutral="1500" max="8191"/>
<servo name="MOTOR_9" no="1" min="-8191" neutral="1500" max="8191"/>
<servo name="MOTOR_10" no="2" min="-8191" neutral="1500" max="8191"/>
<servo name="MOTOR_11" no="3" min="-8191" neutral="1500" max="8191"/>
<servo name="MOTOR_12" no="4" min="-8191" neutral="1500" max="8191"/>
<servo name="AIL_3" no="6" min="6000" neutral="0" max="-6000"/>
<servo name="FLAP_3" no="7" min="6000" neutral="0" max="-6000"/>
<servo name="FLAP_4" no="8" min="-6000" neutral="0" max="6000"/>
<servo name="AIL_4" no="9" min="-6000" neutral="0" max="6000"/>
</servos>
<commands>
@@ -202,6 +204,12 @@
<set servo="MOTOR_4" value="($th_hold? -9600 : motor_mixing.commands[3])"/>
<set servo="MOTOR_5" value="($th_hold? -9600 : motor_mixing.commands[4])"/>
<set servo="MOTOR_6" value="($th_hold? -9600 : motor_mixing.commands[5])"/>
<set servo="MOTOR_7" value="($th_hold? -9600 : motor_mixing.commands[6])"/>
<set servo="MOTOR_8" value="($th_hold? -9600 : motor_mixing.commands[7])"/>
<set servo="MOTOR_9" value="($th_hold? -9600 : motor_mixing.commands[8])"/>
<set servo="MOTOR_10" value="($th_hold? -9600 : motor_mixing.commands[9])"/>
<set servo="MOTOR_11" value="($th_hold? -9600 : motor_mixing.commands[10])"/>
<set servo="MOTOR_12" value="($th_hold? -9600 : motor_mixing.commands[11])"/>
</command_laws>
<section name="MISC">
@@ -232,37 +240,8 @@
</section>
<section name="IMU" prefix="IMU_">
<!-- Rotate the IMU (for Pixhawk 4) -->
<define name="MPU_CHAN_X" value="1"/>
<define name="MPU_CHAN_Y" value="0"/>
<define name="MPU_CHAN_Z" value="2"/>
<define name="MPU_X_SIGN" value="1"/>
<define name="MPU_Y_SIGN" value="1"/>
<define name="MPU_Z_SIGN" value="-1"/>
<!-- Calibrated 09-03-2021 in MAVLab outside body -->
<define name="ACCEL_X_NEUTRAL" value="16"/>
<define name="ACCEL_Y_NEUTRAL" value="31"/>
<define name="ACCEL_Z_NEUTRAL" value="10"/>
<define name="ACCEL_X_SENS" value="4.793311542012962" integer="16"/>
<define name="ACCEL_Y_SENS" value="4.893892083504835" integer="16"/>
<define name="ACCEL_Z_SENS" value="4.791159603565934" integer="16"/>
<!-- NOT CALIBRATED (internal magnetometer) -->
<!--define name="MAG_X_NEUTRAL" value="-13"/>
<define name="MAG_Y_NEUTRAL" value="-15"/>
<define name="MAG_Z_NEUTRAL" value="12"/>
<define name="MAG_X_SENS" value="12.823826623678" integer="16"/>
<define name="MAG_Y_SENS" value="12.86305350064853" integer="16"/>
<define name="MAG_Z_SENS" value="12.512614596093622" integer="16"/-->
<!-- NOT CALIBRATED (external magnetometer) -->
<define name="MAG_X_NEUTRAL" value="2457"/>
<define name="MAG_Y_NEUTRAL" value="-1123"/>
<define name="MAG_Z_NEUTRAL" value="-1843"/>
<define name="MAG_X_SENS" value="0.590610116730755" integer="16"/>
<define name="MAG_Y_SENS" value="0.6411943049128617" integer="16"/>
<define name="MAG_Z_SENS" value="0.6279536066632421" integer="16"/>
<!-- Calibrations -->
<define name="MAG_CALIB" value="{{.abi_id=3, .calibrated={.neutral=true, .scale=true}, .neutral={1696,-4095,3641}, .scale={{15263,26021,26309},{25440,40858,41277}}}}"/>
<!-- Define axis in hover frame -->
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>