[parrot] Fix Bebop 2 rotation of Magneto and tuning

This commit is contained in:
Freek van Tienen
2015-11-20 18:58:22 +01:00
parent 5d2356b08b
commit 5138012e3f
5 changed files with 30 additions and 44 deletions
@@ -10,7 +10,7 @@
<subsystem name="udp"/> <subsystem name="udp"/>
</target> </target>
<!-- Subsystem section --> <!-- Subsystem section -->
<subsystem name="telemetry" type="transparent_udp"/> <subsystem name="telemetry" type="transparent_udp"/>
<subsystem name="radio_control" type="datalink"/> <subsystem name="radio_control" type="datalink"/>
<subsystem name="motor_mixing"/> <subsystem name="motor_mixing"/>
@@ -23,7 +23,6 @@
<define name="AHRS_USE_GPS_HEADING" value="FALSE"/> <define name="AHRS_USE_GPS_HEADING" value="FALSE"/>
</subsystem> </subsystem>
<subsystem name="ins" type="extended"/> <subsystem name="ins" type="extended"/>
<subsystem name="guidance" type="indi"/>
</firmware> </firmware>
<modules main_freq="512"> <modules main_freq="512">
@@ -34,13 +33,6 @@
<load name="logger_file.xml"> <load name="logger_file.xml">
<define name="FILE_LOGGER_PATH" value="/data/ftp/internal_000"/> <define name="FILE_LOGGER_PATH" value="/data/ftp/internal_000"/>
</load> </load>
<load name="mavlink.xml">
<define name="UDP1_PORT_OUT" value="5000"/>
<define name="UDP1_PORT_IN" value="5000"/>
<define name="UDP1_HOST" value="192.168.42.2"/>
<configure name="MAVLINK_PORT" value="UDP1"/>
<define name="MAVLINK_SYSID" value="1"/>
</load>
</modules> </modules>
<commands> <commands>
@@ -81,12 +73,6 @@
<include href="conf/airframes/TUDelft/calibrations/bebop2_$AC_ID.xml" /> <include href="conf/airframes/TUDelft/calibrations/bebop2_$AC_ID.xml" />
<section name="IMU" prefix="IMU_">
<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="0." unit="deg"/>
</section>
<!-- local magnetic field --> <!-- local magnetic field -->
<!-- http://wiki.paparazziuav.org/wiki/Subsystem/ahrs#Local_Magnetic_Field --> <!-- http://wiki.paparazziuav.org/wiki/Subsystem/ahrs#Local_Magnetic_Field -->
<section name="AHRS" prefix="AHRS_"> <section name="AHRS" prefix="AHRS_">
@@ -196,8 +182,8 @@
</section> </section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_"> <section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="HOVER_KP" value="283"/> <define name="HOVER_KP" value="350"/>
<define name="HOVER_KD" value="82"/> <define name="HOVER_KD" value="85"/>
<define name="HOVER_KI" value="20"/> <define name="HOVER_KI" value="20"/>
<define name="NOMINAL_HOVER_THROTTLE" value="0.655"/> <define name="NOMINAL_HOVER_THROTTLE" value="0.655"/>
<define name="ADAPT_THROTTLE_ENABLED" value="TRUE"/> <define name="ADAPT_THROTTLE_ENABLED" value="TRUE"/>
@@ -209,13 +195,13 @@
<define name="REF_MAX_SPEED" value="2" unit="m/s"/> <define name="REF_MAX_SPEED" value="2" unit="m/s"/>
<!-- Bad weather --> <!-- Bad weather -->
<!-- define name="MAX_BANK" value="32" unit="deg"/ --> <!-- define name="MAX_BANK" value="32" unit="deg"/ -->
<define name="PGAIN" value="79"/> <define name="PGAIN" value="120"/>
<define name="DGAIN" value="100"/> <define name="DGAIN" value="100"/>
<define name="IGAIN" value="30"/> <define name="IGAIN" value="30"/>
</section> </section>
<section name="NAVIGATION" prefix="NAV_"> <section name="NAVIGATION" prefix="NAV_">
<define name="CLIMB_VSPEED" value="2.5"/> <define name="CLIMB_VSPEED" value="4.5"/>
<define name="DESCEND_VSPEED" value="-1.0"/> <define name="DESCEND_VSPEED" value="-1.0"/>
</section> </section>
@@ -3,18 +3,16 @@
<airframe> <airframe>
<section name="IMU" prefix="IMU_"> <section name="IMU" prefix="IMU_">
<!-- Magneto calibration --> <!-- Magneto calibration -->
<define name="MAG_X_NEUTRAL" value="-21"/> <define name="MAG_X_NEUTRAL" value="18"/>
<define name="MAG_Y_NEUTRAL" value="60"/> <define name="MAG_Y_NEUTRAL" value="46"/>
<define name="MAG_Z_NEUTRAL" value="209"/> <define name="MAG_Z_NEUTRAL" value="202"/>
<define name="MAG_X_SENS" value="9.31429497222" integer="16"/> <define name="MAG_X_SENS" value="8.32441255621" integer="16"/>
<define name="MAG_Y_SENS" value="8.63466075593" integer="16"/> <define name="MAG_Y_SENS" value="8.25720085664" integer="16"/>
<define name="MAG_Z_SENS" value="9.57742148079" integer="16"/> <define name="MAG_Z_SENS" value="8.60009819293" integer="16"/>
<!-- Magneto current calibration --> <!-- Magneto current calibration -->
<define name= "MAG_X_CURRENT_COEF" value="-0.00129333644507"/> <!--define name= "MAG_X_CURRENT_COEF" value="0.00129333644507"/>
<define name= "MAG_Y_CURRENT_COEF" value="-0.00180224741034"/> <define name= "MAG_Y_CURRENT_COEF" value="-0.00180224741034"/>
<define name= "MAG_Z_CURRENT_COEF" value="0.00514030157101"/> <define name= "MAG_Z_CURRENT_COEF" value="0.00514030157101"/-->
</section> </section>
</airframe> </airframe>
+12 -10
View File
@@ -10,7 +10,7 @@
<subsystem name="udp"/> <subsystem name="udp"/>
</target> </target>
<!-- Subsystem section --> <!-- Subsystem section -->
<subsystem name="telemetry" type="transparent_udp"/> <subsystem name="telemetry" type="transparent_udp"/>
<subsystem name="radio_control" type="datalink"/> <subsystem name="radio_control" type="datalink"/>
<subsystem name="motor_mixing"/> <subsystem name="motor_mixing"/>
@@ -71,12 +71,14 @@
<define name="CALC_AMSL_BARO" value="TRUE"/> <define name="CALC_AMSL_BARO" value="TRUE"/>
</section> </section>
<include href="conf/airframes/TUDelft/calibrations/bebop7.xml" />
<section name="IMU" prefix="IMU_"> <section name="IMU" prefix="IMU_">
<define name="BODY_TO_IMU_PHI" value="0." unit="deg"/> <!-- Magneto calibration -->
<define name="BODY_TO_IMU_THETA" value="0." unit="deg"/> <define name="MAG_X_NEUTRAL" value="18"/>
<define name="BODY_TO_IMU_PSI" value="0." unit="deg"/> <define name="MAG_Y_NEUTRAL" value="46"/>
<define name="MAG_Z_NEUTRAL" value="202"/>
<define name="MAG_X_SENS" value="8.32441255621" integer="16"/>
<define name="MAG_Y_SENS" value="8.25720085664" integer="16"/>
<define name="MAG_Z_SENS" value="8.60009819293" integer="16"/>
</section> </section>
<!-- local magnetic field --> <!-- local magnetic field -->
@@ -188,8 +190,8 @@
</section> </section>
<section name="GUIDANCE_V" prefix="GUIDANCE_V_"> <section name="GUIDANCE_V" prefix="GUIDANCE_V_">
<define name="HOVER_KP" value="283"/> <define name="HOVER_KP" value="350"/>
<define name="HOVER_KD" value="82"/> <define name="HOVER_KD" value="85"/>
<define name="HOVER_KI" value="20"/> <define name="HOVER_KI" value="20"/>
<define name="NOMINAL_HOVER_THROTTLE" value="0.655"/> <define name="NOMINAL_HOVER_THROTTLE" value="0.655"/>
<define name="ADAPT_THROTTLE_ENABLED" value="TRUE"/> <define name="ADAPT_THROTTLE_ENABLED" value="TRUE"/>
@@ -201,13 +203,13 @@
<define name="REF_MAX_SPEED" value="2" unit="m/s"/> <define name="REF_MAX_SPEED" value="2" unit="m/s"/>
<!-- Bad weather --> <!-- Bad weather -->
<!-- define name="MAX_BANK" value="32" unit="deg"/ --> <!-- define name="MAX_BANK" value="32" unit="deg"/ -->
<define name="PGAIN" value="79"/> <define name="PGAIN" value="120"/>
<define name="DGAIN" value="100"/> <define name="DGAIN" value="100"/>
<define name="IGAIN" value="30"/> <define name="IGAIN" value="30"/>
</section> </section>
<section name="NAVIGATION" prefix="NAV_"> <section name="NAVIGATION" prefix="NAV_">
<define name="CLIMB_VSPEED" value="2.5"/> <define name="CLIMB_VSPEED" value="4.5"/>
<define name="DESCEND_VSPEED" value="-1.0"/> <define name="DESCEND_VSPEED" value="-1.0"/>
</section> </section>
+3 -3
View File
@@ -233,12 +233,12 @@
<aircraft <aircraft
name="bebop2" name="bebop2"
ac_id="203" ac_id="203"
airframe="airframes/examples/bebop2.xml" airframe="airframes/examples/bebop2_indi.xml"
radio="radios/dummy.xml" radio="radios/dummy.xml"
telemetry="telemetry/default_rotorcraft.xml" telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/rotorcraft_basic.xml" flight_plan="flight_plans/rotorcraft_basic.xml"
settings="settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/estimation/ahrs_float_mlkf.xml settings/control/stabilization_att_int_quat.xml settings/nps.xml" settings="settings/rotorcraft_basic.xml settings/control/rotorcraft_guidance.xml settings/control/stabilization_att_indi.xml settings/control/rotorcraft_speed.xml"
settings_modules="modules/geo_mag.xml modules/air_data.xml modules/video_thread.xml modules/video_rtp_stream.xml" settings_modules="[modules/geo_mag.xml] modules/air_data.xml modules/gps_ubx_ucenter.xml"
gui_color="red" gui_color="red"
/> />
<aircraft <aircraft
+1 -1
View File
@@ -133,7 +133,7 @@ void imu_bebop_event(void)
if (imu_bebop.ak.data_available) { if (imu_bebop.ak.data_available) {
#if BEBOP_VERSION2 #if BEBOP_VERSION2
// In the second bebop version the magneto is turned 90 degrees // In the second bebop version the magneto is turned 90 degrees
VECT3_ASSIGN(imu.mag_unscaled, imu_bebop.ak.data.vect.x, -imu_bebop.ak.data.vect.y, imu_bebop.ak.data.vect.z); VECT3_ASSIGN(imu.mag_unscaled, -imu_bebop.ak.data.vect.x, -imu_bebop.ak.data.vect.y, imu_bebop.ak.data.vect.z);
#else #else
VECT3_ASSIGN(imu.mag_unscaled, imu_bebop.ak.data.vect.y, imu_bebop.ak.data.vect.x, imu_bebop.ak.data.vect.z); VECT3_ASSIGN(imu.mag_unscaled, imu_bebop.ak.data.vect.y, imu_bebop.ak.data.vect.x, imu_bebop.ak.data.vect.z);
#endif #endif