IT Autoflight: Difference between revisions

Jump to navigation Jump to search
IT-AUTOFLIGHT -> IT Autoflight
mNo edit summary
(IT-AUTOFLIGHT -> IT Autoflight)
Line 1: Line 1:
{{infobox subsystem
{{infobox subsystem
|name        = IT-AUTOFLIGHT
|name        = IT Autoflight System
|started    = March 2016
|started    = March 2016
|description = Advanced Autopilot System
|description = Advanced Autopilot System
Line 7: Line 7:
}}
}}


[[File:ITAF-Current-UI.png|thumb|300px|The latest IT-AUTOFLIGHT GUI]]
[[File:ITAF-Current-UI.png|thumb|300px|The latest IT Autoflight GUI]]


{{Autoflight Navigation}}
{{Autoflight Navigation}}


'''IT-AUTOFLIGHT''' is a modular, light, and advanced airliner autoflight framework for FlightGear. The purpose of IT-AUTOFLIGHT is to provide a system for other airliner developers to use as a stable base for their autopilots. Examples of custom IT-AUTOFLIGHT installations are shown off in the [[MD-11]] and [[A320-family]] amongst others.
The '''IT Autoflight System''' is a modular, light, and advanced airliner autoflight framework for FlightGear. The purpose of the system is to provide a system for other airliner developers to use as a stable base for their autopilots. Examples of custom IT Autoflight System installations are shown off in the [[MD-11]] amongst others.


Download IT-AUTOFLIGHT from [https://github.com/Octal450/IT-AUTOFLIGHT/releases/latest here]!
Download the IT Autoflight from [https://github.com/Octal450/IT Autoflight/releases/latest here]!


The changelog for IT-AUTOFLIGHT can be viewed [https://github.com/Octal450/IT-AUTOFLIGHT/blob/master/CHANGELOG.txt here]!
The changelog can be viewed [https://github.com/Octal450/IT Autoflight/blob/master/CHANGELOG.txt here]!


IT-AUTOFLIGHT is a component of [[IntegratedSystems]].
The IT Autoflight is a component of [[IntegratedSystems]].


{{TOC limit|3}}
{{TOC limit|3}}


== Information ==
== Information ==
The standard version of IT-AUTOFLIGHT, modeled after complex jet airliner autopilots.
The standard version of IT Autoflight System, modeled after complex jet airliner autopilots.


== Available Modes ==
== Available Modes ==
Line 44: Line 44:
* Flight Director
* Flight Director
* Blank modes (AP will not control the axis with a blank mode enabled)
* Blank modes (AP will not control the axis with a blank mode enabled)
* Changelog can be viewed [https://github.com/Octal450/IT-AUTOFLIGHT/blob/master/CHANGELOG.txt here]
* Changelog can be viewed [https://github.com/Octal450/IT Autoflight/blob/master/CHANGELOG.txt here]


== Mode Functionality ==
== Mode Functionality ==
Line 90: Line 90:


=== Installing ===
=== Installing ===
This guide will teach you how to install IT-AUTOFLIGHT to an aircraft.
This guide will teach you how to install IT Autoflight to an aircraft.


==== Before you Begin ====
==== Before you Begin ====
Download the latest version of IT-AUTOFLIGHT V4.0.X from [https://github.com/Octal450/IT-AUTOFLIGHT/releases/latest here]. Extract the Archive with WinRAR, 7Zip, or similar. If you are using a custom instrumentation file, make sure it contains the <gps> item, as IT-AUTOFLIGHT uses it to get an accurate and stable V/S signal. You also need the property "<tt>/position/gear-agl-ft</tt>". This property is automatically created by YAsim, but for JSBsim you need to add a calculation for it on your own. See instructions below.
Download the latest version of IT Autoflight V4.0.X from [https://github.com/Octal450/IT Autoflight/releases/latest here]. Extract the Archive with WinRAR, 7Zip, or similar. If you are using a custom instrumentation file, make sure it contains the <gps> item, as IT Autoflight uses it to get an accurate and stable V/S signal. You also need the property "<tt>/position/gear-agl-ft</tt>". This property is automatically created by YAsim, but for JSBsim you need to add a calculation for it on your own. See instructions below.


==== Installation ====
==== Installation ====
* Copy the gui, Systems, and Nasal folders from the IT-AUTOFLIGHT folder to the aircraft's folder. Overwrite any conflicts.
* Copy the gui, Systems, and Nasal folders from the IT Autoflight folder to the aircraft's folder. Overwrite any conflicts.
* You may need to remove old autopilot dialogs for the IT-AUTOFLIGHT dialog to appear. Look inside the Systems and gui/dialogs folders.
* You may need to remove old autopilot dialogs for the IT Autoflight dialog to appear. Look inside the Systems and gui/dialogs folders.
* Open the -set file of the aircraft, and find the <systems> area inside <sim></sim>.
* Open the -set file of the aircraft, and find the <systems> area inside <sim></sim>.
* Add the following inside <systems></systems>
* Add the following inside <systems></systems>
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
<autopilot n="0">
<autopilot n="0">
     <name>IT-AUTOFLIGHT</name>
     <name>IT Autoflight</name>
     <path>Systems/it-autoflight.xml</path>
     <path>Systems/it-autoflight.xml</path>
</autopilot>
</autopilot>
</syntaxhighlight>
</syntaxhighlight>


If you wish to use the IT-AUTOFLIGHT Default Autothrottle, add the following inside <systems></systems>:
If you wish to use the IT Autoflight default autothrottle, add the following inside <systems></systems>:
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
<autopilot>
<autopilot>
     <name>IT-AUTOTHRUST</name>
     <name>IT Autothrust</name>
     <path>Systems/it-autothrust.xml</path>
     <path>Systems/it-autothrust.xml</path>
</autopilot>
</autopilot>
</syntaxhighlight>
</syntaxhighlight>
* If you do not add this, the A/T button in the IT-AUTOFLIGHT GUI Dialog will do nothing, and in PITCH mode, the pilot must adjust the throttles accordingly. You do NOT need to add this if your aircraft uses a customized autothrottle, as long as that autothrottle is compatible with IT-AUTOFLIGHT. See Interfacing section below for more information.
* If you do not add this, the A/T button in the IT Autoflight GUI Dialog will do nothing, and in PITCH mode, the pilot must adjust the throttles accordingly. You do NOT need to add this if your aircraft uses a customized autothrottle, as long as that autothrottle is compatible with IT Autoflight. See Interfacing section below for more information.


If you using a [[JSBsim]] aircraft :
If you using a [[JSBsim]] aircraft :
* Copy the Systems folder from inside the JSBsim Only folder in the IT-AUTOFLIGHT folder to the aircraft's folder. Overwrite any conflicts.
* Copy the Systems folder from inside the JSBsim Only folder in the IT Autoflight folder to the aircraft's folder. Overwrite any conflicts.
* Then, add the following inside <systems></systems>:
* Then, add the following inside <systems></systems>:
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
Line 127: Line 127:
* Note: You may need to adjust the value inside the <tt>gear-agl-ft.xml</tt> to match your aircraft. You can find the value by looking at <tt>/position/altitude-agl-ft</tt> property.
* Note: You may need to adjust the value inside the <tt>gear-agl-ft.xml</tt> to match your aircraft. You can find the value by looking at <tt>/position/altitude-agl-ft</tt> property.


Now to add the IT-AUTOFLIGHT controller:
Now to add the IT Autoflight controller:
* Find the <nasal> area, which is outside <sim></sim>.
* Find the <nasal> area, which is outside <sim></sim>.
* Add the following inside <nasal></nasal>:
* Add the following inside <nasal></nasal>:
Line 141: Line 141:
* Finally, add the following anywhere outside <sim></sim>:
* Finally, add the following anywhere outside <sim></sim>:
* Copy and Paste from this file, start at line 6.
* Copy and Paste from this file, start at line 6.
* [https://github.com/Octal450/IT-AUTOFLIGHT/blob/master/ITAF%20CONFIG.txt ITAF CONFIG.txt].
* [https://github.com/Octal450/IT Autoflight/blob/master/ITAF%20CONFIG.txt ITAF CONFIG.txt].
* This is the default IT-AUTOFLIGHT Configuration. We will be adjusting this later.
* This is the default IT Autoflight Configuration. We will be adjusting this later.


----
----


==== Complete ====
==== Complete ====
You have finished installing IT-AUTOFLIGHT. However, I highly suggest to go over the Tuning and Configuration section below, to tune the PIDs to your aircraft, and set up the settings. If you want to connect IT-AUTOFLIGHT to a PFD or MCP, see SDK.
You have finished installing IT Autoflight. However, I highly suggest to go over the Tuning and Configuration section below, to tune the PIDs to your aircraft, and set up the settings. If you want to connect IT Autoflight to a PFD or MCP, see SDK.


=== Tuning and Configuration ===
=== Tuning and Configuration ===
Below is listed each area of the IT-AUTOFLIGHT Config Module, and what it is used for. We will also discuss how to tune IT-AUTOFLIGHT efficiently.
Below is listed each area of the IT Autoflight Config Module, and what it is used for. We will also discuss how to tune IT Autoflight efficiently.


You can view the Config Module [https://github.com/Octal450/IT-AUTOFLIGHT/blob/master/ITAF%20CONFIG.txt here].
You can view the Config Module [https://github.com/Octal450/IT Autoflight/blob/master/ITAF%20CONFIG.txt here].


This area is for the tuning of the PID controllers used. These are not hard coded, so users can update IT-AUTOFLIGHT without needing to edit any files. You can also adjust these in the property browser, and they take affect immediately, without needing to reload anything.
This area is for the tuning of the PID controllers used. These are not hard coded, so users can update IT Autoflight without needing to edit any files. You can also adjust these in the property browser, and they take affect immediately, without needing to reload anything.


===== config/roll =====
===== config/roll =====
Line 197: Line 197:
* '''bank-max-deg''': Adjust the maximum bank limit, can be any positive non-zero number.
* '''bank-max-deg''': Adjust the maximum bank limit, can be any positive non-zero number.
* '''custom-fma''': When Enabled (1), custom functions will be called when modes changed for custom FMA logic. See SDK.
* '''custom-fma''': When Enabled (1), custom functions will be called when modes changed for custom FMA logic. See SDK.
* '''disable-final''': Enable (0) or Disable (1) the Roll and Pitch Final Controllers. IT-AUTOFLIGHT will compute target rates and degrees, but not control aircraft.
* '''disable-final''': Enable (0) or Disable (1) the Roll and Pitch Final Controllers. IT Autoflight will compute target rates and degrees, but not control aircraft.
* '''elevator-in-trim''': Normalized elevator value to stop trimming the stabilizer.
* '''elevator-in-trim''': Normalized elevator value to stop trimming the stabilizer.
* '''elevator-out-of-trim''': Normalized elevator value to start trimming the stabilizer.
* '''elevator-out-of-trim''': Normalized elevator value to start trimming the stabilizer.
* '''fd-starts-on''': Disable (0) or Enable (1) the Flight Director being on by default when IT-AUTOFLIGHT initializes.
* '''fd-starts-on''': Disable (0) or Enable (1) the Flight Director being on by default when IT Autoflight initializes.
* '''fd-takeoff-deg''': Set a value that the Flight Director pitch bar should be at when the aircraft is on the ground and in T/O CLB mode.
* '''fd-takeoff-deg''': Set a value that the Flight Director pitch bar should be at when the aircraft is on the ground and in T/O CLB mode.
* '''ground-mode-select''': Disable (0) or Enable (1) the ability to select active modes on the ground.
* '''ground-mode-select''': Disable (0) or Enable (1) the ability to select active modes on the ground.
Line 218: Line 218:


=== How to Tune ===
=== How to Tune ===
So, now that IT-AUTOFLIGHT is installed, how do you tune it to the aircraft? IT-AUTOFLIGHT uses a config module, so you can drop in update to the system, with minor changes required. This also means you can tune IT-AUTOFLIGHT while FGFS is running, no need to reload anything! So lets get started!
So, now that IT Autoflight is installed, how do you tune it to the aircraft? IT Autoflight uses a config module, so you can drop in update to the system, with minor changes required. This also means you can tune IT Autoflight while FGFS is running, no need to reload anything! So lets get started!


* First, you need to adjust the area of the config module "settings". Once this is done, start FGFS.  
* First, you need to adjust the area of the config module "settings". Once this is done, start FGFS.  
* Takeoff and climb above 2000ft manually. Once above 2000ft, pause the sim (p)
* Takeoff and climb above 2000ft manually. Once above 2000ft, pause the sim (p)
* I highly recommend following this tuning guide in order, as IT-AUTOFLIGHT uses cascading controllers, tuning out of order may cause system instabilities.
* I highly recommend following this tuning guide in order, as IT Autoflight uses cascading controllers, tuning out of order may cause system instabilities.


==== Roll and Pitch ====
==== Roll and Pitch ====
Line 237: Line 237:


==== Complete ====
==== Complete ====
The tuning is now complete. Remember to check the CHANGELOG.txt after each IT-AUTOFLIGHT Update, to make sure, nothing needs to be retuned.
The tuning is now complete. Remember to check the CHANGELOG.txt after each IT Autoflight Update, to make sure, nothing needs to be retuned.


== Interface Reference ==
== Interface Reference ==
This section will discuss the inputs and outputs of IT-AUTOFLIGHT. These can be used for PFD/MCP interfacing, or building a custom autothrottle, or any other need for communicating with IT-AUTOFLIGHT. Also listed are what types of inputs are allowed. (BOOL, INT, etc.)
This section will discuss the inputs and outputs of IT Autoflight. These can be used for PFD/MCP interfacing, or building a custom autothrottle, or any other need for communicating with IT Autoflight. Also listed are what types of inputs are allowed. (BOOL, INT, etc.)


==== FD: /it-autoflight/fd ====
==== FD: /it-autoflight/fd ====
Line 247: Line 247:


==== Input: /it-autoflight/input ====
==== Input: /it-autoflight/input ====
* '''alt''': Adjusts the Target Altitude in feet (0 - 50000). INT (Note: IT-AUTOFLIGHT can fly higher than 50,000 feet)
* '''alt''': Adjusts the Target Altitude in feet (0 - 50000). INT (Note: IT Autoflight can fly higher than 50,000 feet)
* '''ap1''': Switches the Autopilot 1 Off (0) and On (1). BOOL
* '''ap1''': Switches the Autopilot 1 Off (0) and On (1). BOOL
* '''ap1-avail''': Sets whether the Autopilot 1 is Unavailable (0) or Available (1). BOOL
* '''ap1-avail''': Sets whether the Autopilot 1 is Unavailable (0) or Available (1). BOOL
Line 259: Line 259:
* '''fd1''': Switches the Flight Director 1 Off (0) and On (1). BOOL
* '''fd1''': Switches the Flight Director 1 Off (0) and On (1). BOOL
* '''fd2''': Switches the Flight Director 2 Off (0) and On (1). BOOL
* '''fd2''': Switches the Flight Director 2 Off (0) and On (1). BOOL
* '''fpa''': Adjusts the Target Flight Path Angle in degrees (-9.9 - 9.9). DOUBLE (Note: IT-AUTOFLIGHT can use higher/lower FPA)
* '''fpa''': Adjusts the Target Flight Path Angle in degrees (-9.9 - 9.9). DOUBLE (Note: IT Autoflight can use higher/lower FPA)
* '''fpa-abs''': Automatically set by IT-AUTOFLIGHT. Absolute value of the '''fpa''' input, used for fixing problems when animating cockpit controls. DOUBLE
* '''fpa-abs''': Automatically set by IT Autoflight. Absolute value of the '''fpa''' input, used for fixing problems when animating cockpit controls. DOUBLE
* '''hdg''': Adjusts the Target Heading in degrees (1 - 360, or 0 - 359). INT
* '''hdg''': Adjusts the Target Heading in degrees (1 - 360, or 0 - 359). INT
* '''lat''': Changes the lateral mode to HDG SEL (0), LNAV (1), VOR/LOC (2), HDG HLD (3), ROLL (6), Blank (9). INT (Note: Mode 4 and Mode 5 exist, but only engaged by the controller automatically, do not set to these values)
* '''lat''': Changes the lateral mode to HDG SEL (0), LNAV (1), VOR/LOC (2), HDG HLD (3), ROLL (6), Blank (9). INT (Note: Mode 4 and Mode 5 exist, but only engaged by the controller automatically, do not set to these values)
* '''kts''': Adjusts the Target Airspeed in Knots (100 - 350 by default). INT (Note: IT-AUTOFLIGHT can use higher/lower airspeed)
* '''kts''': Adjusts the Target Airspeed in Knots (100 - 350 by default). INT (Note: IT Autoflight can use higher/lower airspeed)
* '''kts-mach''': Switches between Speed (0) and Mach mode (1). BOOL
* '''kts-mach''': Switches between Speed (0) and Mach mode (1). BOOL
* '''mach''': Adjusts the Target Mach (0.5 - 0.9 by default). DOUBLE (Note: IT-AUTOFLIGHT can use higher/lower mach)
* '''mach''': Adjusts the Target Mach (0.5 - 0.9 by default). DOUBLE (Note: IT Autoflight can use higher/lower mach)
* '''mach-x1000''': Automatically set by IT-AUTOFLIGHT. Value of '''mach''' input converted to an integer, used for fixing problems when animating cockpit controls. INT
* '''mach-x1000''': Automatically set by IT Autoflight. Value of '''mach''' input converted to an integer, used for fixing problems when animating cockpit controls. INT
* '''pitch''': Adjusts the Target Pitch Angle in degrees. INT
* '''pitch''': Adjusts the Target Pitch Angle in degrees. INT
* '''pitch-abs''': Automatically set by IT-AUTOFLIGHT. Absolute value of the '''pitch''' input, used for fixing problems when animating cockpit controls. INT
* '''pitch-abs''': Automatically set by IT Autoflight. Absolute value of the '''pitch''' input, used for fixing problems when animating cockpit controls. INT
* '''radio-sel''': Switches VOR/LOC and ILS functions between NAV1 (0), NAV2 (1), and NAV3 (2). INT
* '''radio-sel''': Switches VOR/LOC and ILS functions between NAV1 (0), NAV2 (1), and NAV3 (2). INT
* '''roll''': Adjusts the Target Roll Angle in degrees. INT
* '''roll''': Adjusts the Target Roll Angle in degrees. INT
* '''roll-abs''': Automatically set by IT-AUTOFLIGHT. Absolute value of the '''roll''' input, used for fixing problems when animating cockpit controls. INT
* '''roll-abs''': Automatically set by IT Autoflight. Absolute value of the '''roll''' input, used for fixing problems when animating cockpit controls. INT
* '''toga''': Engage Takeoff or Go Around Mode (1). BOOL (Note: Do not change this value back to (0), IT-AUTOFLIGHT will do this automatically once the modes engage correctly)
* '''toga''': Engage Takeoff or Go Around Mode (1). BOOL (Note: Do not change this value back to (0), IT Autoflight will do this automatically once the modes engage correctly)
* '''trk''': Switches between Heading (0) and Track (1). BOOL
* '''trk''': Switches between Heading (0) and Track (1). BOOL
* '''true-course''': Switches between Magentic Heading (0) and True Heading (1). BOOL
* '''true-course''': Switches between Magentic Heading (0) and True Heading (1). BOOL
* '''vert''': Changes the vertical mode to ALT HLD (0), V/S (1), ILS (2), FLCH (4), FPA (5), Blank (9). INT (Note: Mode 3, Mode 6, and Mode 7 exist, but only engaged by the controller automatically, do not set to these values)
* '''vert''': Changes the vertical mode to ALT HLD (0), V/S (1), ILS (2), FLCH (4), FPA (5), Blank (9). INT (Note: Mode 3, Mode 6, and Mode 7 exist, but only engaged by the controller automatically, do not set to these values)
* '''vs''': Adjusts the Target Vertical Speed in feet per minute (-6000 -6000). INT (Note: IT-AUTOFLIGHT can use higher/lower FPM)
* '''vs''': Adjusts the Target Vertical Speed in feet per minute (-6000 -6000). INT (Note: IT Autoflight can use higher/lower FPM)
* '''vs-abs''': Automatically set by IT-AUTOFLIGHT. Absolute value of the '''vs''' input, used for fixing problems when animating cockpit controls. INT
* '''vs-abs''': Automatically set by IT Autoflight. Absolute value of the '''vs''' input, used for fixing problems when animating cockpit controls. INT


==== Internal: /it-autoflight/internal ====
==== Internal: /it-autoflight/internal ====
Line 286: Line 286:
* '''rudder''': Rudder servo output used when not using /controls/flight.
* '''rudder''': Rudder servo output used when not using /controls/flight.
* '''throttle[n]''': Throttle servo output used when not using /controls/engines, where n is 0 through 7 (engines 1-8).
* '''throttle[n]''': Throttle servo output used when not using /controls/engines, where n is 0 through 7 (engines 1-8).
* '''vert-speed-fpm''': IT-AUTOFLIGHT's internal vertical speed computer.
* '''vert-speed-fpm''': IT Autoflight's internal vertical speed computer.


==== Output: /it-autoflight/output ====
==== Output: /it-autoflight/output ====
Line 335: Line 335:
You need to enable the '''custom-fma''' setting in the config module. Then, add the Custom FMA nasal file in the itaf namespace:
You need to enable the '''custom-fma''' setting in the config module. Then, add the Custom FMA nasal file in the itaf namespace:


* ITAF includes an optional [https://github.com/Octal450/IT-AUTOFLIGHT/blob/master/Custom%20FMA/custom-fma.nas custom-fma.nas] file as an example. It is in the Custom FMA folder, copy it to the Nasal folder in your aircraft.
* ITAF includes an optional [https://github.com/Octal450/IT Autoflight/blob/master/Custom%20FMA/custom-fma.nas custom-fma.nas] file as an example. It is in the Custom FMA folder, copy it to the Nasal folder in your aircraft.
* Find the <nasal> area, which is outside <sim></sim>.
* Find the <nasal> area, which is outside <sim></sim>.
* Find where you added <itaf></itaf> to <nasal></nasal>
* Find where you added <itaf></itaf> to <nasal></nasal>
Line 355: Line 355:
== Related content ==
== Related content ==
=== Forum topic ===
=== Forum topic ===
* {{forum link|title=IT-AUTOFLIGHT|t=35474}}
* {{forum link|title=IT Autoflight|t=35474}}
* GIT development repository: http://www.github.com/Octal450/IT-AUTOFLIGHT.git
* GIT development repository: http://www.github.com/Octal450/IT Autoflight.git


[[Category:Autoflight]]
[[Category:Autoflight]]
2,204

edits

Navigation menu