This commit is contained in:
Pascal Brisset
2009-09-12 21:26:18 +00:00
parent 1b177afbbe
commit 95ae9fc8bf
7 changed files with 71 additions and 59 deletions
+2
View File
@@ -110,6 +110,8 @@
<define name="GLIDE_AIRSPEED" value="12.5"/> <define name="GLIDE_AIRSPEED" value="12.5"/>
<define name="GLIDE_VSPEED" value="2."/> <define name="GLIDE_VSPEED" value="2."/>
<define name="GLIDE_PITCH" value="45" unit="deg"/> <define name="GLIDE_PITCH" value="45" unit="deg"/>
<define name="TELEMETRY_MODE_AP" value="1"/>
</section> </section>
<section name="VERTICAL CONTROL" prefix="V_CTL_"> <section name="VERTICAL CONTROL" prefix="V_CTL_">
+10 -15
View File
@@ -17,9 +17,8 @@
<!-- commands section --> <!-- commands section -->
<servos> <servos>
<servo name="MOTOR" no="3" min="1250" neutral="1250" max="1800"/> <servo name="MOTOR" no="3" min="1250" neutral="1250" max="1800"/>
<servo name="AILEVON_LEFT" no="4" min="1850" neutral="1370" max="1000"/> <servo name="AILEVON_LEFT" no="4" min="1850" neutral="1470" max="1100"/>
<servo name="AILEVON_RIGHT" no="5" min="1000" neutral="1515" max="1870"/> <servo name="AILEVON_RIGHT" no="5" min="1100" neutral="1545" max="1870"/>
<servo name="HATCH" no="6" min="1350" neutral="1900" max="1900"/>
</servos> </servos>
<commands> <commands>
@@ -33,7 +32,6 @@
<set command="THROTTLE" value="@THROTTLE"/> <set command="THROTTLE" value="@THROTTLE"/>
<set command="ROLL" value="@ROLL"/> <set command="ROLL" value="@ROLL"/>
<set command="PITCH" value="@PITCH"/> <set command="PITCH" value="@PITCH"/>
<set command="HATCH" value="@GAIN1"/>
</rc_commands> </rc_commands>
<section name="MIXER"> <section name="MIXER">
@@ -46,7 +44,6 @@
<let var="aileron" value="@ROLL * AILEVON_AILERON_RATE"/> <let var="aileron" value="@ROLL * AILEVON_AILERON_RATE"/>
<let var="elevator" value="@PITCH * AILEVON_ELEVATOR_RATE"/> <let var="elevator" value="@PITCH * AILEVON_ELEVATOR_RATE"/>
<set servo="MOTOR" value="@THROTTLE"/> <set servo="MOTOR" value="@THROTTLE"/>
<set servo="HATCH" value="@HATCH"/>
<set servo="AILEVON_LEFT" value="$elevator + ($aileron > 0 ? 1 : AILERON_DIFF) * $aileron"/> <set servo="AILEVON_LEFT" value="$elevator + ($aileron > 0 ? 1 : AILERON_DIFF) * $aileron"/>
<set servo="AILEVON_RIGHT" value="$elevator - ($aileron > 0 ? AILERON_DIFF : 1) * $aileron"/> <set servo="AILEVON_RIGHT" value="$elevator - ($aileron > 0 ? AILERON_DIFF : 1) * $aileron"/>
</command_laws> </command_laws>
@@ -82,7 +79,7 @@
<define name="TOP_SIGN" value="-1"/> <define name="TOP_SIGN" value="-1"/>
<define name="ROLL_NEUTRAL_DEFAULT" value="3.49504256248" unit="deg"/> <define name="ROLL_NEUTRAL_DEFAULT" value="3.49504256248" unit="deg"/>
<define name="PITCH_NEUTRAL_DEFAULT" value="-0.114591561258" unit="deg"/> <define name="PITCH_NEUTRAL_DEFAULT" value="8.42247962952" unit="deg"/>
<define name="CORRECTION_UP" value="1."/> <define name="CORRECTION_UP" value="1."/>
<define name="CORRECTION_DOWN" value="1."/> <define name="CORRECTION_DOWN" value="1."/>
@@ -91,14 +88,12 @@
</section> </section>
<section name="GYRO" prefix="GYRO_"> <section name="GYRO" prefix="GYRO_">
<define name="ADC_ROLL_NEUTRAL" value="492"/> <define name="ADC_ROLL_NEUTRAL" value="512"/>
<define name="ADC_TEMP_NEUTRAL" value="512"/>
<define name="ADC_TEMP_SLOPE" value="0"/>
<define name="DYNAMIC_RANGE" value="300" unit="deg/s"/> <define name="DYNAMIC_RANGE" value="300" unit="deg/s"/>
<define name="ADXRS300_RESISTOR_BRIDGE" value="(3.3/(3.3+1.8))"/> <define name="ADXRS300_RESISTOR_BRIDGE" value="(3.3/(3.3+1.8))"/>
<define name="ADXRS300_SENSITIVITY" value="5" unit="mV/(deg/s)"/> <define name="ADXRS300_SENSITIVITY" value="5" unit="mV/(deg/s)"/>
<define name="ROLL_SCALE" value="3.3*1000./1024./(GYRO_ADXRS300_SENSITIVITY*GYRO_ADXRS300_RESISTOR_BRIDGE)" unit="deg/s/adc_unit"/> <define name="ROLL_SCALE" value="3.3*1000./1024./(GYRO_ADXRS300_SENSITIVITY*GYRO_ADXRS300_RESISTOR_BRIDGE)" unit="deg/s/adc_unit"/>
<define name="ROLL_DIRECTION" value="1."/> <define name="ROLL_DIRECTION" value="-1."/>
</section> </section>
<section name="BAT"> <section name="BAT">
@@ -129,7 +124,7 @@
<define name="ALTITUDE_MAX_CLIMB" value="2."/> <define name="ALTITUDE_MAX_CLIMB" value="2."/>
<!-- auto throttle inner loop --> <!-- auto throttle inner loop -->
<define name="AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE" value="0.5"/> <define name="AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE" value="0.356000006199"/>
<define name="AUTO_THROTTLE_MIN_CRUISE_THROTTLE" value="0.25"/> <define name="AUTO_THROTTLE_MIN_CRUISE_THROTTLE" value="0.25"/>
<define name="AUTO_THROTTLE_MAX_CRUISE_THROTTLE" value="0.80"/> <define name="AUTO_THROTTLE_MAX_CRUISE_THROTTLE" value="0.80"/>
<define name="AUTO_THROTTLE_LOITER_TRIM" value="1500"/> <define name="AUTO_THROTTLE_LOITER_TRIM" value="1500"/>
@@ -150,9 +145,9 @@
</section> </section>
<section name="HORIZONTAL CONTROL" prefix="H_CTL_"> <section name="HORIZONTAL CONTROL" prefix="H_CTL_">
<define name="COURSE_PGAIN" value="-1.23500001431"/> <define name="COURSE_PGAIN" value="-0.885999977589"/>
<define name="ROLL_MAX_SETPOINT" value="0.805000007153" unit="radians"/> <define name="ROLL_MAX_SETPOINT" value="0.7" unit="radians"/>
<define name="PITCH_MAX_SETPOINT" value="0.5" unit="radians"/> <define name="PITCH_MAX_SETPOINT" value="0.5" unit="radians"/>
<define name="PITCH_MIN_SETPOINT" value="-0.5" unit="radians"/> <define name="PITCH_MIN_SETPOINT" value="-0.5" unit="radians"/>
@@ -232,9 +227,9 @@ ap.srcs += inter_mcu.c
ap.CFLAGS += -DADC -DUSE_ADC_0 -DUSE_ADC_1 -DUSE_ADC_2 -DUSE_ADC_3 ap.CFLAGS += -DADC -DUSE_ADC_0 -DUSE_ADC_1 -DUSE_ADC_2 -DUSE_ADC_3
ap.srcs += $(SRC_ARCH)/adc_hw.c ap.srcs += $(SRC_ARCH)/adc_hw.c
ap.CFLAGS += -DGPS -DUBX -DUSE_UART1 -DGPS_LINK=Uart1 -DUART1_BAUD=B38400 -DGPS_LED=2 ap.CFLAGS += -DGPS -DUBX -DUSE_UART1 -DGPS_LINK=Uart1 -DUART1_BAUD=B9600 -DGPS_LED=2
#ap.CFLAGS += -DGPS -DUBX -DUSE_UART1 -DGPS_LINK=Uart1 -DUART1_BAUD=B9600 -DGPS_LED=2 #ap.CFLAGS += -DGPS -DUBX -DUSE_UART1 -DGPS_LINK=Uart1 -DUART1_BAUD=B9600 -DGPS_LED=2
#ap.CFLAGS += -DGPS_CONFIGURE -DGPS_BAUD=38400 ap.CFLAGS += -DGPS_CONFIGURE -DGPS_BAUD=38400
ap.srcs += gps_ubx.c gps.c latlong.c ap.srcs += gps_ubx.c gps.c latlong.c
+46
View File
@@ -0,0 +1,46 @@
<!DOCTYPE procedure SYSTEM "flight_plan.dtd">
<procedure>
<waypoints>
<waypoint lat="52.38252048723831" lon="5.897420494955952" name="_CENTER" alt="100"/>
<waypoint lat="52.39223341391188" lon="5.891920215186895" name="_G1"/>
<waypoint lat="52.38457192890880" lon="5.905759083500732" name="_G2"/>
<waypoint lat="52.37522867761314" lon="5.891055906501672" name="_G3"/>
<waypoint lat="52.38389131932532" lon="5.876775757075523" name="_G4"/>
<waypoint lat="52.39502349675812" lon="5.890603491493776" name="_R1"/>
<waypoint lat="52.38568420330603" lon="5.907529980510587" name="_R2"/>
<waypoint lat="52.37341656154337" lon="5.888204759419744" name="_R3"/>
<waypoint lat="52.38371772691826" lon="5.870010280721401" name="_R4"/>
<waypoint lat="52.38833565818008" lon="5.888958356099608" name="_S1"/>
<waypoint lat="52.38741511939426" lon="5.896820110526804" name="_S2"/>
<waypoint lat="52.38344448233852" lon="5.895558989657886" name="_S3"/>
<waypoint lat="52.38442017389706" lon="5.887661800773984" name="_S4"/>
<waypoint lat="52.38117866835545" lon="5.897949813109249" name="E1"/>
<waypoint lat="52.38219156830098" lon="5.890795873256735" name="E2"/>
<waypoint name="BALLOON" x="27.1" y="41.9"/>
<waypoint name="ARCH" x="6.5" y="33.2"/>
<waypoint name="DROP_RED" x="-14.5" y="28.3"/>
<waypoint name="DROP_BLUE" x="-23.5" y="-0.6"/>
</waypoints>
<sectors>
<sector name="Red" color="red">
<corner name="_R1"/>
<corner name="_R2"/>
<corner name="_R3"/>
<corner name="_R4"/>
</sector>
<sector name="Green" color="green">
<corner name="_G1"/>
<corner name="_G2"/>
<corner name="_G3"/>
<corner name="_G4"/>
</sector>
<sector name="Search">
<corner name="_S1"/>
<corner name="_S2"/>
<corner name="_S3"/>
<corner name="_S4"/>
</sector>
</sectors>
</procedure>
-39
View File
@@ -1,45 +1,6 @@
<!DOCTYPE procedure SYSTEM "flight_plan.dtd"> <!DOCTYPE procedure SYSTEM "flight_plan.dtd">
<procedure> <procedure>
<waypoints>
<waypoint lat="52.38252048723831" lon="5.897420494955952" name="_CENTER" alt="100"/>
<waypoint lat="52.39223341391188" lon="5.891920215186895" name="_G1"/>
<waypoint lat="52.38457192890880" lon="5.905759083500732" name="_G2"/>
<waypoint lat="52.37522867761314" lon="5.891055906501672" name="_G3"/>
<waypoint lat="52.38389131932532" lon="5.876775757075523" name="_G4"/>
<waypoint lat="52.39502349675812" lon="5.890603491493776" name="_R1"/>
<waypoint lat="52.38568420330603" lon="5.907529980510587" name="_R2"/>
<waypoint lat="52.37341656154337" lon="5.888204759419744" name="_R3"/>
<waypoint lat="52.38371772691826" lon="5.870010280721401" name="_R4"/>
<waypoint lat="52.38833565818008" lon="5.888958356099608" name="_S1"/>
<waypoint lat="52.38741511939426" lon="5.896820110526804" name="_S2"/>
<waypoint lat="52.38344448233852" lon="5.895558989657886" name="_S3"/>
<waypoint lat="52.38442017389706" lon="5.887661800773984" name="_S4"/>
<waypoint lat="52.38117866835545" lon="5.897949813109249" name="E1"/>
<waypoint lat="52.38219156830098" lon="5.890795873256735" name="E2"/>
</waypoints>
<sectors>
<sector name="Red" color="red">
<corner name="_R1"/>
<corner name="_R2"/>
<corner name="_R3"/>
<corner name="_R4"/>
</sector>
<sector name="Green" color="green">
<corner name="_G1"/>
<corner name="_G2"/>
<corner name="_G3"/>
<corner name="_G4"/>
</sector>
<sector name="Search">
<corner name="_S1"/>
<corner name="_S2"/>
<corner name="_S3"/>
<corner name="_S4"/>
</sector>
</sectors>
<exceptions> <exceptions>
<exception cond="Or(! InsideGreen(estimator_x, estimator_y), estimator_z > ground_alt + 150)" deroute="Center"/> <exception cond="Or(! InsideGreen(estimator_x, estimator_y), estimator_z > ground_alt + 150)" deroute="Center"/>
</exceptions> </exceptions>
+11 -3
View File
@@ -44,13 +44,21 @@
<call fun="nav_poles_init(WP_1, WP_2, WP_C1, WP_C2, nav_radius)"/> <call fun="nav_poles_init(WP_1, WP_2, WP_C1, WP_C2, nav_radius)"/>
<oval p1="C1" p2="C2" radius="nav_radius" until="nav_oval_count>=nav_poles_count"/> <oval p1="C1" p2="C2" radius="nav_radius" until="nav_oval_count>=nav_poles_count"/>
</block> </block>
<block name="Drop"> <block name="Goto Target">
<go wp="TARGET" approaching_time="0"/> <go wp="TARGET" approaching_time="0"/>
<set value="MAX_PPRZ" var="ap_state->commands[COMMAND_HATCH]"/>
</block> </block>
<block name="Poles 2" pre_call="nav_ground_speed_loop()"> <block name="Drop">
<set value="MIN_PPRZ" var="ap_state->commands[COMMAND_HATCH]"/>
</block>
<block name="Poles 2">
<oval p1="C1" p2="C2" radius="nav_radius" until="nav_oval_count>=nav_poles_count"/> <oval p1="C1" p2="C2" radius="nav_radius" until="nav_oval_count>=nav_poles_count"/>
</block>
<block name="Auto pitch (circle wp 1)">
<circle pitch="auto" radius="nav_radius" throttle="0.45" wp="1"/>
</block> </block>
<block name="Land Right AF-TD" strip_button="Land right (wp AF-TD)" strip_icon="land-right.png"> <block name="Land Right AF-TD" strip_button="Land right (wp AF-TD)" strip_icon="land-right.png">
<set value="DEFAULT_CIRCLE_RADIUS" var="nav_radius"/> <set value="DEFAULT_CIRCLE_RADIUS" var="nav_radius"/>
<deroute block="land"/> <deroute block="land"/>
+1 -1
View File
@@ -5,7 +5,7 @@
<file name="MPPT.h"/> <file name="MPPT.h"/>
</header> </header>
<init fun="MPPT_init()"/> <init fun="MPPT_init()"/>
<periodic fun="MPPT_periodic()" freq="4." delay="4" autorun="TRUE"/> <periodic fun="MPPT_periodic()" freq="8." delay="4" autorun="TRUE"/>
<makefile target="ap"> <makefile target="ap">
<file name="MPPT.c"/> <file name="MPPT.c"/>
</makefile> </makefile>
+1 -1
View File
@@ -18,7 +18,7 @@
<message name="DOWNLINK" period="5.1"/> <message name="DOWNLINK" period="5.1"/>
<message name="DL_VALUE" period="1.5"/> <message name="DL_VALUE" period="1.5"/>
<message name="IR_SENSORS" period="1.2"/> <message name="IR_SENSORS" period="1.2"/>
<message name="GYRO_RATES" period="0.05"/> <message name="GYRO_RATES" period="0.2"/>
<message name="SURVEY" period="2.1"/> <message name="SURVEY" period="2.1"/>
<message name="GPS_SOL" period="2.0"/> <message name="GPS_SOL" period="2.0"/>
</mode> </mode>