Merge branch 'rel-nano-15.05' into corvuscorax/fixedwingautotakeofftest
[librepilot.git] / shared / uavobjectdefinition / fixedwingpathfollowersettings.xml
blob68b0a406e8f46b30ec0e7530d738fa6001b7d864
1 <xml>
2     <object name="FixedWingPathFollowerSettings" singleinstance="true" settings="true" category="Control">
3         <description>Settings for the @ref FixedWingPathFollowerModule</description>
5         <!-- these coefficients control desired movement in airspace -->
6         <field name="HorizontalVelMax" units="m/s" type="float" elements="1" defaultvalue="20"/>
7                 <!-- Maximum speed the autopilot will try to achieve, usually for long distances -->
8         <field name="HorizontalVelMin" units="m/s" type="float" elements="1" defaultvalue="10"/>
9                 <!-- V_y, Minimum speed the autopilot will try to fly, for example when loitering -->
10         <field name="VerticalVelMax" units="m/s" type="float" elements="1" defaultvalue="10"/>
11                 <!-- maximum allowed climb or sink rate in guided flight-->
13         <field name="CourseFeedForward" units="s" type="float" elements="1" defaultvalue="3.0"/>
14                 <!-- how many seconds to plan the flight vector ahead when initiating necessary heading changes - increase for planes with sluggish response -->
15         <field name="ReverseCourseOverlap" units="deg" type="float" elements="1" defaultvalue="20.0"/>
16                 <!-- how big the overlapping area behind the plane is, where, if the desired course lies behind, the current bank angle will determine if the plane goes left or right -->
18         <field name="HorizontalPosP" units="(m/s)/m" type="float" elements="1" defaultvalue="0.2"/>
19                 <!-- proportional coefficient for correction vector in path vector field to get back on course - reduce for fast planes to prevent course oscillations -->
20         <field name="VerticalPosP" units="(m/s)/m" type="float" elements="1" defaultvalue="0.4"/>
21                 <!-- proportional coefficient for desired vertical speed in relation to altitude displacement-->
23         <field name="UseAirspeedSensor" units="bool" type="enum" elements="1" options="False,True" defaultvalue="True"/>
24                 <!-- allows to ignore the airspeed sensor, set to false if you have none, which will trigger fallback algorithm without indicating a fault -->
26         <!-- these coefficients control actual control outputs -->
27         <field name="CoursePI" units="deg/deg" type="float" elements="3" elementnames="Kp,Ki,ILimit" defaultvalue="0.2, 0, 0"/>
28                 <!-- coefficients for desired bank angle in relation to ground bearing error - this controls heading -->
30         <field name="SpeedPI" units="deg / (m/s)" type="float" elements="3" elementnames="Kp,Ki,ILimit" defaultvalue="2.5, .25, 10"/>
31                 <!-- coefficients for desired pitch
32                      in relation to speed error IASerror -->
33         <field name="VerticalToPitchCrossFeed" units="deg / (m/s)" type="float" elementnames="Kp,Max" defaultvalue="5, 10"/>
34                 <!-- coefficients for adjusting desired pitch
35                      in relation to "vertical speed error -->
36         <field name="AirspeedToPowerCrossFeed" units="1 / (m/s)" type="float" elementnames="Kp,Max" defaultvalue="0.2, 1"/>
37                 <!-- proportional coefficient for adjusting vertical speed error for power calculation
38                      in relation to airspeed error IASerror -->
39         <field name="PowerPI" units="1/(m/s)" type="float" elements="3" elementnames="Kp,Ki,ILimit" defaultvalue="0.01,0.05,0.5"/>
40                 <!-- proportional coefficient for desired thrust
41                      in relation to vertical speed error (absolute but including crossfeed) -->
43         <!-- output limits -->
44         <field name="RollLimit" units="deg" type="float" elements="3" elementnames="Min,Neutral,Max" defaultvalue="-45,0,45" />
45                 <!-- maximum allowed bank angles in navigates flight -->
46         <field name="PitchLimit" units="deg" type="float" elements="3" elementnames="Min,Neutral,Max" defaultvalue="-10,5,20" />
47                 <!-- maximum allowed pitch angles and setpoint for neutral pitch -->
48         <field name="ThrustLimit" units="" type="float" elements="3" elementnames="Min,Neutral,Max" defaultvalue="0.1,0.5,0.9" />
49                 <!-- minimum and maximum allowed thrust and setpoint for cruise speed -->
50         <field name="Safetymargins" units="" type="float"
51                 elementnames="Wind, Stallspeed, Lowspeed, Highspeed, Overspeed, Lowpower, Highpower, Rollcontrol, Pitchcontrol"
52                 defaultvalue="1, 1.0, 0.5, 1.5, 1.0, 1, 0, 1, 1" />
53                 <!-- Wind: degrees of crabbing allowed
54                      Speeds: percentage (1.0=100%) of the limit to be over/onder
55                      Power & Control: flag to turn on/off 0.0 =off 1.0 = on -->
56         <field name="SafetyCutoffLimits" units="" type="float"
57                 elementnames="RollDeg,PitchDeg,YawDeg,MaxDecelerationDeltaMPS" defaultvalue="25.0, 25.0, 25.0, 4.0" />
58                 <!-- maximum margins from attempted attitude allowed during takeoff
59                      In flight Roll/Pitch are added to RollLimit/PitchLimit as max limits - throttle is cut when beyond
60                      if roll > RollLimit.Max + TakeOffLimits.RollDeg
61                      the same happens when MaxDecelerationDeltaMPS below Lowspeed limit
62                      if speed < Safetymargins.Lowspeed*HorizontalVelMin - TakeOffLimits.MaxDecelerationDeltaMPS --> 
65         <field name="TakeOffPitch" units="deg" type="float" elements="1" defaultvalue="25.0"/>
66         <field name="LandingPitch" units="deg" type="float" elements="1" defaultvalue="7.5"/>
68         <field name="UpdatePeriod" units="ms" type="int32" elements="1" defaultvalue="100"/>
70         <access gcs="readwrite" flight="readwrite"/>
71         <telemetrygcs acked="true" updatemode="onchange" period="0"/>
72         <telemetryflight acked="true" updatemode="onchange" period="0"/>
73         <logging updatemode="manual" period="0"/>
74     </object>
75 </xml>