mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-05-09 22:49:53 +08:00
161 lines
5.2 KiB
XML
161 lines
5.2 KiB
XML
<!DOCTYPE flight_plan SYSTEM "flight_plan.dtd">
|
|
|
|
<flight_plan ground_alt="0" alt="75" lat0="43.2375" lon0="1.3277" max_dist_from_home="3500" name="Intelligent Surveillance" qfu="270" security_height="35">
|
|
<header>
|
|
#include "subsystems/datalink/datalink.h"
|
|
</header>
|
|
<waypoints>
|
|
<waypoint name="HOME" x="0" y="0"/>
|
|
<waypoint name="AF" x="200" y="-10" alt="215"/>
|
|
<waypoint name="TOD" x="-150" y="0"/>
|
|
<waypoint name="TD" x="80" y="20" alt="185"/>
|
|
<waypoint name="1" x="-75" y="75"/>
|
|
<waypoint name="2" x="75" y="75"/>
|
|
<waypoint name="MOB" x="200" y="200"/>
|
|
<waypoint name="S1" x="-200" y="-200"/>
|
|
<waypoint name="S2" x="300" y="400"/>
|
|
<waypoint name="C" x="-250" y="-200"/>
|
|
<waypoint name="C1" x="-250" y="-200"/>
|
|
<waypoint name="C2" x="350" y="400"/>
|
|
<waypoint name="PLUME" x="400" y="300"/>
|
|
<waypoint name="BASELEG" x="400" y="350"/>
|
|
<waypoint name="CAM_TARGET" x="100" y="-200" alt="0"/>
|
|
</waypoints>
|
|
<blocks>
|
|
<block name="wait GPS">
|
|
<while cond="!GpsFixValid()"/>
|
|
</block>
|
|
|
|
<block name="init">
|
|
<while cond="LessThan(NavBlockTime(), 10)"/>
|
|
<call_once fun="NavSetGroundReferenceHere()"/>
|
|
<deroute block="wait"/>
|
|
</block>
|
|
|
|
<block name="wait" strip_button="0">
|
|
<circle radius="nav_radius" wp="1"/>
|
|
</block>
|
|
|
|
<block name="ground speed">
|
|
<!-- <exception cond="nav_ground_speed_loop()" deroute="ground speed"/> -->
|
|
<circle radius="nav_radius" wp="1"/>
|
|
</block>
|
|
|
|
<block name="eight 1" strip_button="8">
|
|
<eight radius="nav_radius" center="1" turn_around="2"/>
|
|
</block>
|
|
|
|
<block name="Line">
|
|
<call_once fun="nav_line_setup()"/>
|
|
<call fun="nav_line_run(WP_1, WP_2, nav_radius)"/>
|
|
</block>
|
|
|
|
|
|
<block name="oval">
|
|
<oval p1="1" p2="2" radius="nav_radius"/>
|
|
</block>
|
|
|
|
<block name="MOB" strip_button="MOB">
|
|
<call_once fun="NavSetWaypointHere(WP_MOB)"/>
|
|
<circle wp="MOB" radius="nav_radius"/>
|
|
</block>
|
|
|
|
<block name="Anemotaxis" strip_button="Anem">
|
|
<call fun="nav_anemotaxis_downwind(WP_C, 300)"/>
|
|
<go from="HOME" wp="C" hmode="route" approaching_time="0"/>
|
|
<call_once fun="nav_anemotaxis_init(WP_C)"/>
|
|
<call fun="nav_anemotaxis(WP_C, WP_C1, WP_C2, WP_PLUME)"/>
|
|
</block>
|
|
|
|
<block name="Chemotaxis">
|
|
<call_once fun="nav_chemotaxis_init(WP_C, WP_PLUME)"/>
|
|
<call fun="nav_chemotaxis(WP_C, WP_PLUME)"/>
|
|
</block>
|
|
|
|
<block name="ChemotaxisHere">
|
|
<set var="waypoints[WP_C].x" value="GetPosX()"/>
|
|
<set var="waypoints[WP_C].y" value="GetPosY()"/>
|
|
<deroute block="Chemotaxis"/>
|
|
</block>
|
|
|
|
<block name="Disc survey" strip_button="DS">
|
|
<exception cond="chemo_sensor > 0" deroute="ChemotaxisHere"/>
|
|
<call_once fun="nav_survey_disc_setup(150)"/>
|
|
<call fun="nav_survey_disc_run(WP_HOME, 350)"/>
|
|
</block>
|
|
|
|
<!--
|
|
<block name="circle 1 auto pitch">
|
|
<circle radius="75" wp="1" pitch="auto" throttle="0.7"/>
|
|
</block>
|
|
-->
|
|
|
|
<block name="far away">
|
|
<exception cond="datalink_time > 22" deroute="wait"/>
|
|
<go approaching_time="0" from="1" hmode="route" wp="2"/>
|
|
<go approaching_time="0" from="2" hmode="route" wp="1"/>
|
|
</block>
|
|
|
|
<block name="circle left 1">
|
|
<circle radius="-75" wp="1"/>
|
|
</block>
|
|
|
|
<block name="climb 75">
|
|
<circle radius="50+(GetPosAlt()-GetAltRef())/2" wp="1" throttle="0.75" pitch="15" vmode="throttle" until="10 > PowerVoltage()"/>
|
|
</block>
|
|
|
|
<block name="climb 1">
|
|
<circle radius="50+(GetPosAlt()-GetAltRef())/2" wp="1" climb="1" pitch="5" vmode="climb" until="10 > PowerVoltage()"/>
|
|
</block>
|
|
|
|
<block name="descent 0">
|
|
<circle radius="50+(GetPosAlt()-GetAltRef())/2" wp="1" throttle="0.0" pitch="-15" vmode="throttle" until="GetAltRef()+50 > GetPosAlt()"/>
|
|
<deroute block="wait"/>
|
|
</block>
|
|
|
|
<block name="route12">
|
|
<go approaching_time="0" from="1" hmode="route" wp="2"/>
|
|
</block>
|
|
|
|
<block name="glide12">
|
|
<go from="1" hmode="route" vmode="glide" wp="2"/>
|
|
</block>
|
|
|
|
<block name="stack 2">
|
|
<circle radius="75" wp="2"/>
|
|
</block>
|
|
|
|
<block name="route21">
|
|
<go approaching_time="0" from="2" hmode="route" wp="1"/>
|
|
</block>
|
|
|
|
<block name="stack 1">
|
|
<circle radius="75" wp="1"/>
|
|
</block>
|
|
|
|
<block name="survey">
|
|
<survey_rectangle grid="nav_survey_shift" wp1="S1" wp2="S2"/>
|
|
</block>
|
|
|
|
<block name="land">
|
|
<call_once fun="nav_compute_baseleg(WP_AF, WP_TD, WP_BASELEG)"/>
|
|
<circle radius="nav_radius" until="NavCircleCount() > 0.5" wp="BASELEG"/>
|
|
<set value="V_CTL_AUTO_THROTTLE_MIN_CRUISE_THROTTLE" var="v_ctl_auto_throttle_cruise_throttle"/>
|
|
<circle radius="nav_radius"
|
|
until="NavQdrCloseTo(DegOfRad(baseleg_out_qdr)-(nav_radius/fabs(nav_radius))*10) && 10 > fabs(GetPosAlt() - WaypointAlt(WP_BASELEG))"
|
|
wp="BASELEG"/>
|
|
</block>
|
|
|
|
<block name="final">
|
|
<exception cond="GetAltRef() + 10 > GetPosAlt()" deroute="flare"/>
|
|
<go from="AF" hmode="route" vmode="glide" wp="TD"/>
|
|
</block>
|
|
|
|
<block name="flare">
|
|
<go approaching_time="0" from="AF" hmode="route" throttle="0.0" vmode="throttle" wp="TD"/>
|
|
<attitude roll="0.0" throttle="0.0" until="FALSE" vmode="throttle"/>
|
|
</block>
|
|
|
|
</blocks>
|
|
</flight_plan>
|