mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-05-28 01:53:48 +08:00
[generator] add support for matrix and struct in airframe (#3228)
* [generator] add support for matrix and struct in airframe update ENAC airframe and code for indi G1 matrix and IMU calib * update calibration tool output
This commit is contained in:
committed by
GitHub
parent
175e3e018c
commit
1b345804b4
@@ -162,10 +162,12 @@
|
||||
|
||||
<section name="CTRL_EFF_SCHEDULING" prefix="FWD_">
|
||||
<!-- control effectiveness, scaled by INDI_G_SCALING (1000)-->
|
||||
<define name="G1_ROLL" value="{ 0, 0, -13.0, 13.0}"/>
|
||||
<define name="G1_PITCH" value="{-12.0, 12.0, 0, 0}"/>
|
||||
<define name="G1_YAW" value="{-20.0, -20.0, 0.0, 0.0}"/>
|
||||
<define name="G1_THRUST" value="{ 0, 0, -0.9, -0.9}"/>
|
||||
<define name="G1" type="matrix">
|
||||
<field name="ROLL" value="{ 0, 0, -13.0, 13.0}"/>
|
||||
<field name="PITCH" value="{-12.0, 12.0, 0, 0}"/>
|
||||
<field name="YAW" value="{-20.0, -20.0, 0.0, 0.0}"/>
|
||||
<field name="THRUST" value="{ 0, 0, -0.9, -0.9}"/>
|
||||
</define>
|
||||
</section>
|
||||
|
||||
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">
|
||||
@@ -180,10 +182,12 @@
|
||||
|
||||
<section name="STABILIZATION_ATTITUDE_INDI" prefix="STABILIZATION_INDI_">
|
||||
<!-- control effectiveness, scaled by INDI_G_SCALING (1000)-->
|
||||
<define name="G1_ROLL" value="{ 0, 0, -13.3, 13.3}"/>
|
||||
<define name="G1_PITCH" value="{-2.1, 2.1, 0, 0}"/>
|
||||
<define name="G1_YAW" value="{-2.0, -2.0, 0.0, 0.0}"/>
|
||||
<define name="G1_THRUST" value="{ 0, 0, -1.1, -1.1}"/>
|
||||
<define name="G1" type="matrix">
|
||||
<field name="ROLL" value="{ 0, 0, -13.3, 13.3}"/>
|
||||
<field name="PITCH" value="{-2.1, 2.1, 0, 0}"/>
|
||||
<field name="YAW" value="{-2.0, -2.0, 0.0, 0.0}"/>
|
||||
<field name="THRUST" value="{ 0, 0, -1.1, -1.1}"/>
|
||||
</define>
|
||||
<!--Counter torque effect of spinning up a rotor-->
|
||||
<define name="G2" value="{0, 0, 0, 0}"/>
|
||||
|
||||
|
||||
@@ -184,10 +184,12 @@
|
||||
|
||||
<section name="EFF_SCHEDULING" prefix="FWD_">
|
||||
<!-- control effectiveness, scaled by INDI_G_SCALING (1000)-->
|
||||
<define name="G1_ROLL" value="{ -9.0, -9.0, 9.0, 9.0}"/>
|
||||
<define name="G1_PITCH" value="{ -9.0, 9.0, 9.0, -9.0}"/>
|
||||
<define name="G1_YAW" value="{ -7.0, 7.0, -7.0, 7.0}"/>
|
||||
<define name="G1_THRUST" value="{ -0.6, -0.6, -0.6, -0.6}"/>
|
||||
<define name="G1" type="matrix">
|
||||
<field value="{ -9.0, -9.0, 9.0, 9.0}"/>
|
||||
<field value="{ -9.0, 9.0, 9.0, -9.0}"/>
|
||||
<field value="{ -7.0, 7.0, -7.0, 7.0}"/>
|
||||
<field value="{ -0.6, -0.6, -0.6, -0.6}"/>
|
||||
</define>
|
||||
|
||||
<!--<define name="G1_ROLL" value="{ -10.0, -10.0, 10.0, 10.0}"/>
|
||||
<define name="G1_PITCH" value="{ -10.0, 10.0, 10.0, -10.0}"/>
|
||||
@@ -198,10 +200,12 @@
|
||||
<section name="STABILIZATION_ATTITUDE_INDI" prefix="STABILIZATION_INDI_">
|
||||
<!-- UR BR BL UL-->
|
||||
<!-- control effectiveness, scaled by INDI_G_SCALING (1000)-->
|
||||
<define name="G1_ROLL" value="{ -20.0, -20.0, 20.0, 20.0}"/>
|
||||
<define name="G1_PITCH" value="{ -19.5, 19.5, 19.5, -19.5}"/>
|
||||
<define name="G1_YAW" value="{ -7.0, 7.0, -7.0, 7.0}"/>
|
||||
<define name="G1_THRUST" value="{ -0.85, -0.85, -0.85, -0.85}"/>
|
||||
<define name="G1" type="matrix">
|
||||
<field value="{ -20.0, -20.0, 20.0, 20.0}"/>
|
||||
<field value="{ -19.5, 19.5, 19.5, -19.5}"/>
|
||||
<field value="{ -7.0, 7.0, -7.0, 7.0}"/>
|
||||
<field value="{ -0.85, -0.85, -0.85, -0.85}"/>
|
||||
</define>
|
||||
|
||||
<!-- Big Wings -->
|
||||
<!-- <define name="G1_ROLL" value="{ -4.0, -4.0, 4.0, 4.0}"/>
|
||||
|
||||
@@ -208,19 +208,23 @@
|
||||
|
||||
<section name="EFF_SCHEDULING" prefix="FWD_">
|
||||
<!-- control effectiveness, scaled by INDI_G_SCALING (1000)-->
|
||||
<define name="G1_ROLL" value="{ -9.0, -9.0, 9.0, 9.0, 0.0, 0.0}"/>
|
||||
<define name="G1_PITCH" value="{ -20.0, 20.0, 20.0, -20.0, 15.0, -15.0}"/> <!-- 12 , -12 -->
|
||||
<define name="G1_YAW" value="{ -3.0, 3.0, -3.0, 3.0, -10.0, -10.0}"/> <!-- -20 -20 -->
|
||||
<define name="G1_THRUST" value="{ -0.6, -0.6, -0.6, -0.6, 0.0, 0.0}"/>
|
||||
<define name="G1" type="matrix">
|
||||
<field value="{ -9.0, -9.0, 9.0, 9.0, 0.0, 0.0}"/>
|
||||
<field value="{ -20.0, 20.0, 20.0, -20.0, 15.0, -15.0}"/> <!-- 12 , -12 -->
|
||||
<field value="{ -3.0, 3.0, -3.0, 3.0, -10.0, -10.0}"/> <!-- -20 -20 -->
|
||||
<field value="{ -0.6, -0.6, -0.6, -0.6, 0.0, 0.0}"/>
|
||||
</define>
|
||||
</section>
|
||||
|
||||
<section name="STABILIZATION_ATTITUDE_INDI" prefix="STABILIZATION_INDI_">
|
||||
<!-- UR BR BL UL-->
|
||||
<!-- control effectiveness, scaled by INDI_G_SCALING (1000)-->
|
||||
<define name="G1_ROLL" value="{ -9.0, -9.0, 9.0, 9.0, 0.0, 0.0}"/>
|
||||
<define name="G1_PITCH" value="{ -19.5, 19.5, 19.5, -19.5, 0.0, 0.0}"/>
|
||||
<define name="G1_YAW" value="{ -3.0, 3.0, -3.0, 3.0, 0.0, 0.0}"/>
|
||||
<define name="G1_THRUST" value="{ -0.85, -0.85, -0.85, -0.85, 0.0, 0.0}"/>
|
||||
<define name="G1" type="matrix">
|
||||
<field value="{ -9.0, -9.0, 9.0, 9.0, 0.0, 0.0}"/>
|
||||
<field value="{ -19.5, 19.5, 19.5, -19.5, 0.0, 0.0}"/>
|
||||
<field value="{ -3.0, 3.0, -3.0, 3.0, 0.0, 0.0}"/>
|
||||
<field value="{ -0.85, -0.85, -0.85, -0.85, 0.0, 0.0}"/>
|
||||
</define>
|
||||
|
||||
<!--Counter torque effect of spinning up a rotor-->
|
||||
<define name="G2" value="{0, 0, 0, 0, 0, 0}"/>
|
||||
|
||||
@@ -182,10 +182,12 @@
|
||||
|
||||
<!-- Full INDI -->
|
||||
<!-- control effectiveness -->
|
||||
<define name="G1_ROLL" value="{-40 , -40, 40 , 40 }"/>
|
||||
<define name="G1_PITCH" value="{40 , -40, -40 , 40 }"/>
|
||||
<define name="G1_YAW" value="{5, -5, 5, -5}"/>
|
||||
<define name="G1_THRUST" value="{-1.5, -1.5, -1.5, -1.5}"/>
|
||||
<define name="G1" type="matrix">
|
||||
<field value="{-40 , -40, 40 , 40 }"/>
|
||||
<field value="{40 , -40, -40 , 40 }"/>
|
||||
<field value="{5, -5, 5, -5}"/>
|
||||
<field value="{-1.5, -1.5, -1.5, -1.5}"/>
|
||||
</define>
|
||||
<!--Counter torque effect of spinning up a rotor-->
|
||||
<define name="G2" value="{150.0, -150.0, 150.0, -150.0 }"/>
|
||||
<!-- first order actuator dynamics -->
|
||||
|
||||
@@ -102,8 +102,17 @@
|
||||
</command_laws>
|
||||
|
||||
<section name="IMU" prefix="IMU_">
|
||||
<define name="ACCEL_CALIB" value="{{.abi_id=9, .calibrated={.neutral=true, .scale=true},.neutral={-12,23,29}, .scale={{65369,62166,40813},{28737,25351,16753}}}}"/>
|
||||
<!--define name="MAG_CALIB" value="{{.abi_id=3, .calibrated={.neutral=true, .scale=true},.neutral={-833,-5969,-931}, .scale={{22816,38799,15650},{34941,60353,24187}}}}"/-->
|
||||
<define name="ACCEL_CALIB" type="array">
|
||||
<field type="struct">
|
||||
<field name="abi_id" value="9"/>
|
||||
<field name="calibrated" type="struct">
|
||||
<field name="neutral" value="true"/>
|
||||
<field name="scale" value="true"/>
|
||||
</field>
|
||||
<field name="neutral" value="-12,23,29" type="int[]"/>
|
||||
<field name="scale" value="{{65369,62166,40813},{28737,25351,16753}}"/>
|
||||
</field>
|
||||
</define>
|
||||
|
||||
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
|
||||
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
|
||||
@@ -143,10 +152,12 @@
|
||||
|
||||
<!-- Full INDI -->
|
||||
<!-- control effectiveness -->
|
||||
<define name="G1_ROLL" value="{ -20.0, -20.0, 20.0, 20.0 }"/>
|
||||
<define name="G1_PITCH" value="{ 20.0, -20.0, -20.0, 20.0 }"/>
|
||||
<define name="G1_YAW" value="{ 3, -3, 3, -3 }"/>
|
||||
<define name="G1_THRUST" value="{ -1., -1., -1., -1.}"/>
|
||||
<define name="G1" type="matrix">
|
||||
<field value="{ -20.0, -20.0, 20.0, 20.0 }"/>
|
||||
<field value="{ 20.0, -20.0, -20.0, 20.0 }"/>
|
||||
<field value="{ 3., -3., 3., -3. }"/>
|
||||
<field value="{ -1., -1., -1., -1.}"/>
|
||||
</define>
|
||||
<!--Counter torque effect of spinning up a rotor-->
|
||||
<define name="G2" value="{80, -80, 80, -80.0 }"/>
|
||||
<!-- first order actuator dynamics -->
|
||||
|
||||
@@ -98,10 +98,44 @@
|
||||
</command_laws>
|
||||
|
||||
<section name="IMU" prefix="IMU_">
|
||||
<define name="ACCEL_CALIB" value="{{.abi_id=24, .calibrated={.neutral=true, .scale=true, .rotation=true},.neutral={-10,-47,-130}, .scale={{36821,8142,5741},{60003,13319,9358}}, TAWAKIV2_IMU_ROT}}"/>
|
||||
<define name="GYRO_CALIB" value="{{.abi_id=24, .calibrated={.neutral=false, .scale=false, .rotation=true}, TAWAKIV2_IMU_ROT}}"/>
|
||||
<define name="MAG_CALIB" value="{{.abi_id=3, .calibrated={.neutral=true, .scale=true, .rotation=true},.neutral={791,-190,2545}, .scale={{26437,35997,25098},{35181,44272,29767}}, TAWAKIV2_MAG_ROT}}"/>
|
||||
|
||||
<define name="ACCEL_CALIB" type="array">
|
||||
<field type="struct">
|
||||
<field name="abi_id" value="24"/>
|
||||
<field name="calibrated" type="struct">
|
||||
<field name="neutral" value="true"/>
|
||||
<field name="scale" value="true"/>
|
||||
<field name="rotation" value="true"/>
|
||||
</field>
|
||||
<field name="neutral" value="-10,-47,-130" type="int[]"/>
|
||||
<field name="scale" value="{{36821,8142,5741},{60003,13319,9358}}"/>
|
||||
<field value="TAWAKIV2_IMU_ROT"/>
|
||||
</field>
|
||||
</define>
|
||||
<define name="GYRO_CALIB" type="array">
|
||||
<field type="struct">
|
||||
<field name="abi_id" value="24"/>
|
||||
<field name="calibrated" type="struct">
|
||||
<field name="neutral" value="false"/>
|
||||
<field name="scale" value="false"/>
|
||||
<field name="rotation" value="true"/>
|
||||
</field>
|
||||
<field value="TAWAKIV2_IMU_ROT"/>
|
||||
</field>
|
||||
</define>
|
||||
<define name="MAG_CALIB" type="array">
|
||||
<field type="struct">
|
||||
<field name="abi_id" value="3"/>
|
||||
<field name="calibrated" type="struct">
|
||||
<field name="neutral" value="true"/>
|
||||
<field name="scale" value="true"/>
|
||||
<field name="rotation" value="true"/>
|
||||
</field>
|
||||
<field name="neutral" value="791,-190,2545" type="int[]"/>
|
||||
<field name="scale" value="{{26437,35997,25098},{35181,44272,29767}}"/>
|
||||
<field value="TAWAKIV2_MAG_ROT"/>
|
||||
</field>
|
||||
</define>
|
||||
|
||||
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
|
||||
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
|
||||
<define name="BODY_TO_IMU_PSI" value="180." unit="deg"/>
|
||||
@@ -140,10 +174,12 @@
|
||||
|
||||
<!-- Full INDI -->
|
||||
<!-- control effectiveness -->
|
||||
<define name="G1_ROLL" value="{ -20.0, -20.0, 20.0, 20.0 }"/>
|
||||
<define name="G1_PITCH" value="{ 20.0, -20.0, -20.0, 20.0 }"/>
|
||||
<define name="G1_YAW" value="{ 3, -3, 3, -3 }"/>
|
||||
<define name="G1_THRUST" value="{ -1., -1., -1., -1.}"/>
|
||||
<define name="G1" type="matrix">
|
||||
<field value="{ -20.0, -20.0, 20.0, 20.0 }"/>
|
||||
<field value="{ 20.0, -20.0, -20.0, 20.0 }"/>
|
||||
<field value="{ 3., -3., 3., -3. }"/>
|
||||
<field value="{ -1., -1., -1., -1.}"/>
|
||||
</define>
|
||||
<!--Counter torque effect of spinning up a rotor-->
|
||||
<define name="G2" value="{80, -80, 80, -80.0 }"/>
|
||||
<!-- first order actuator dynamics -->
|
||||
|
||||
@@ -94,7 +94,20 @@
|
||||
</command_laws>
|
||||
|
||||
<section name="IMU" prefix="IMU_">
|
||||
<define name="ACCEL_CALIB" value="{{.abi_id=9, .calibrated={.neutral=true, .scale=true},.neutral={18,45,-22}, .scale={{47720,3841,3732},{18911,1570,1517}}}}"/>
|
||||
<define name="ACCEL_CALIB" type="array">
|
||||
<field type="struct">
|
||||
<field name="abi_id" value="9"/>
|
||||
<field name="calibrated" type="struct">
|
||||
<field name="neutral" value="true"/>
|
||||
<field name="scale" value="true"/>
|
||||
</field>
|
||||
<field name="neutral" value="18,45,-22" type="int[]"/>
|
||||
<field name="scale" type="matrix">
|
||||
<field value="47720,3841,3732" type="int[]"/>
|
||||
<field value="18911,1570,1517" type="int[]"/>
|
||||
</field>
|
||||
</field>
|
||||
</define>
|
||||
|
||||
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/>
|
||||
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/>
|
||||
@@ -134,10 +147,12 @@
|
||||
|
||||
<!-- Full INDI -->
|
||||
<!-- control effectiveness -->
|
||||
<define name="G1_ROLL" value="{ -20.0, -20.0, 20.0, 20.0 }"/>
|
||||
<define name="G1_PITCH" value="{ 20.0, -20.0, -20.0, 20.0 }"/>
|
||||
<define name="G1_YAW" value="{ 3, -3, 3, -3 }"/>
|
||||
<define name="G1_THRUST" value="{ -1., -1., -1., -1.}"/>
|
||||
<define name="G1" type="matrix">
|
||||
<field value="{ -20.0, -20.0, 20.0, 20.0 }"/>
|
||||
<field value="{ 20.0, -20.0, -20.0, 20.0 }"/>
|
||||
<field value="{ 3., -3., 3., -3. }"/>
|
||||
<field value="{ -1., -1., -1., -1.}"/>
|
||||
</define>
|
||||
<!--Counter torque effect of spinning up a rotor-->
|
||||
<define name="G2" value="{80, -80, 80, -80.0 }"/>
|
||||
<!-- first order actuator dynamics -->
|
||||
|
||||
@@ -165,10 +165,12 @@
|
||||
|
||||
<!-- Full INDI -->
|
||||
<!-- control effectiveness -->
|
||||
<define name="G1_ROLL" value="{ -20.0, -20.0, 20.0, 20.0 }"/>
|
||||
<define name="G1_PITCH" value="{ 20.0, -20.0, -20.0, 20.0 }"/>
|
||||
<define name="G1_YAW" value="{ 3, -3, 3, -3 }"/>
|
||||
<define name="G1_THRUST" value="{ -1., -1., -1., -1.}"/>
|
||||
<define name="G1" type="matrix">
|
||||
<field value="{ -20.0, -20.0, 20.0, 20.0 }"/>
|
||||
<field value="{ 20.0, -20.0, -20.0, 20.0 }"/>
|
||||
<field value="{ 3, -3, 3, -3 }"/>
|
||||
<field value="{ -1., -1., -1., -1.}"/>
|
||||
</define>
|
||||
<!--Counter torque effect of spinning up a rotor-->
|
||||
<define name="G2" value="{80, -80, 80, -80.0 }"/>
|
||||
<!-- first order actuator dynamics -->
|
||||
|
||||
@@ -195,10 +195,12 @@
|
||||
|
||||
<!-- Full INDI -->
|
||||
<!-- control effectiveness -->
|
||||
<define name="G1_ROLL" value="{ -20.0, -20.0, 20.0, 20.0 }"/>
|
||||
<define name="G1_PITCH" value="{ 20.0, -20.0, -20.0, 20.0 }"/>
|
||||
<define name="G1_YAW" value="{ 3, -3, 3, -3 }"/>
|
||||
<define name="G1_THRUST" value="{ -0.5, -0.5, -0.5, -0.5}"/>
|
||||
<define name="G1" type="matrix">
|
||||
<field value="{ -20.0, -20.0, 20.0, 20.0 }"/>
|
||||
<field value="{ 20.0, -20.0, -20.0, 20.0 }"/>
|
||||
<field value="{ 3, -3, 3, -3 }"/>
|
||||
<field value="{ -0.5, -0.5, -0.5, -0.5}"/>
|
||||
</define>
|
||||
<!--Counter torque effect of spinning up a rotor-->
|
||||
<define name="G2" value="{100, -100, 100, -100.0 }"/>
|
||||
<!-- first order actuator dynamics -->
|
||||
|
||||
@@ -176,10 +176,12 @@
|
||||
|
||||
<!-- Full INDI -->
|
||||
<!-- control effectiveness -->
|
||||
<define name="G1_ROLL" value="{-40 , -40, 40 , 40 }"/>
|
||||
<define name="G1_PITCH" value="{40 , -40, -40 , 40 }"/>
|
||||
<define name="G1_YAW" value="{5, -5, 5, -5}"/>
|
||||
<define name="G1_THRUST" value="{-1.5, -1.5, -1.5, -1.5}"/>
|
||||
<define name="G1" type="matrix">
|
||||
<field value="{-40 , -40, 40 , 40 }"/>
|
||||
<field value="{40 , -40, -40 , 40 }"/>
|
||||
<field value="{5, -5, 5, -5}"/>
|
||||
<field value="{-1.5, -1.5, -1.5, -1.5}"/>
|
||||
</define>
|
||||
<!--Counter torque effect of spinning up a rotor-->
|
||||
<define name="G2" value="{150.0, -150.0, 150.0, -150.0 }"/>
|
||||
<!-- first order actuator dynamics -->
|
||||
|
||||
@@ -18,7 +18,8 @@
|
||||
<!ELEMENT copy EMPTY>
|
||||
<!ELEMENT curve EMPTY>
|
||||
<!ELEMENT let EMPTY>
|
||||
<!ELEMENT define EMPTY>
|
||||
<!ELEMENT define (field)*>
|
||||
<!ELEMENT field (field)*>
|
||||
<!ELEMENT modules (module)*>
|
||||
<!ELEMENT configure EMPTY>
|
||||
<!ELEMENT firmware (target|module|autopilot|configure|define|comment)*>
|
||||
@@ -105,6 +106,11 @@ integer CDATA #IMPLIED
|
||||
type CDATA #IMPLIED
|
||||
description CDATA #IMPLIED>
|
||||
|
||||
<!ATTLIST field
|
||||
name CDATA #IMPLIED
|
||||
value CDATA #IMPLIED
|
||||
type CDATA #IMPLIED>
|
||||
|
||||
<!ATTLIST configure
|
||||
name CDATA #REQUIRED
|
||||
value CDATA #REQUIRED
|
||||
|
||||
Reference in New Issue
Block a user