a radical open source, open data, no license approach to ... · a radical open source, open data,...
TRANSCRIPT
1 |
A Radical Open Source, Open Data, No License Approach to Air Traffic SimulationJacco Hoekstra, Joost Ellerbroek, Junzi Sun
2 |
Outline• Why open source, open data traffic simulation?
• Open source challenge
• Open data challenge (includes OpenAP)
• BlueSky project:
• Example application
• Adoption, Community
3 |
ATM papers reviewing
“ The AFM-2 is the preferred option for the OPCS when AFDRS is not available in the ACCS. In all scenarios the I-IAA was higher with ARRS switched on.”
4 |
now AFeasible!
Better!
Current status of ATM Science
5 |
now AFeasible!
Better!
BFeasible!
Better!
6 |
now AFeasible!
Better!
BFeasible!
Better!
C
Feasible!
Better!
7 |
now AFeasible!
Better!
BFeasible!
Better!
C
Feasible!
Better!
DFeasible!
Better!
8 |
now AFeasible!
Better!
BFeasible!
Better!
C
Feasible!
Better!
DFeasible!
Better!
EFeasible!
Better!
F
Feasible!Better!
Feasible!
GBetter!
HFeasible!
Better!
9 |
Research lines CNS/ATM group TU Delft1. Foundation of ATM research
1. Open source tools (ADS-B decoding, ATM simulation, conversion tools)2. Open Data (Performance data, scenarios, historic traffic data)3. Big Data & Metrics (Complexity, Traffic Flow dynamics)
2. ADS-B surveillance and applications1. Raw data analysis, surveillance quality2. Airborne Applications (ATSAW, CD&R algorithms)
3. Drone CNS/ATM technology1. Indoor & outdoor navigation and autonomy2. Swarming
4. General Aviation CNS/ATM technology1. Airborne radar & surveillance technology for safety
5. Schiphol/Mainport related CNS/ATM issues
Google: ADS-B Junzi Sun
Google: ProfHoekstra BlueSky
10 |
Improve science & research in ATM• Comparable research results, same metrics, tools and scenarios
• Research does not thrive under standardisation
• But every researcher needs aircraft performance models => success BADA 3
• Open Source, free (also for tools)
• Open Data, free
11 |
Previous work: BADA, “only” aircraft data• Data files with performance and procedure data
• BADA 3 vs BADA 4
• Quality BADA 3 could be improved easily
• BADA 4 has more sensitive, proprietary data
• BADA 3 currently default standard for research
• Licensing regime tightens
• Not fully open (sharing/publishing not allowed)
12 |
BlueSky Air Traffic Simulator• For use in academic world:
• 100 % fully open data:• Aircraft performance data• Navigation data
• 100 % open source:• Co-development shared via GitHub/TUDelft-CNS-ATM/BlueSky• Should not require any commercial development tools or libraries• Quality control?
• Increase adoption:• Easy to use: GUI and data/scenarios in plain text files, run locally • Readable source code for scientists who are not computer experts• Philosophy: no need to understand what you do not need to know
13 |
BlueSky GNU General Public License v3 • Required:
• Disclose Source• License and copyright notice• State Changes
• Permitted:• Commercial Use• Distribution• Modification• Patent Use, Private Use
• Forbidden:• Hold Liable
• http://www.gnu.org/licenses/quick-guide-gplv3.en.html
14 |
Challenges Open Data vs Quality?• Navigation data:
• Geographical information• Navigational Aids• Waypoints• Airport data: taxiways, runways• Sector lay-out/Airspaces
• Aircraft Performance data:• Drag polar• Engine performance• Operating weights• Autopilot/Autothrottle settings, mode logic• Procedural speeds
• Weather data?
15 |
Open data: navaids• Web-crawling programs collect the data from public sites and convert
to text data files
• Global coverage for navaids and waypoints
• No guarantee that it is always up-to-date
16 |
Open Data: Geographical information• Just background for GUI
• Geo-website contains all required info:• Coastlines• Rivers• Borders
• Satellite imageused from GoogleEarth
17 |
Open data: Airports• 14480 airports included
• Large airports also featuretaxiway and runway layout
• Flight simulator and gamingcommunity have people who collectthis information as well
18 |
Open Data: FIRs, Sectors etc• Supplied data limited
• Web-crawling possible,no global repository
• Often implementedmanually based onscenarios
• Console is not ATCo HMI,but fully reconfigurable
• More help needed
19 |
Open Data: Aircraft Performance models• Compatible Plug& Play with BADA v3.12 (nearly open):Copy BADA files to empty folder: .\data\coefficients\BADA
• Generic Open Data models fully based on Open sources (built-in)
• Big Data effort using ADS-B data to develop comprehensive set of aircraft performance files (built-in)
• Metrics also use generic measure Energy, independent of Fuel Flow
20 |
Spin-off: OpenAP/WRAP models• Based on Bayesian approach (particle model) to ADS-B data
• Also supplied with BlueSky (Options: BADA/OpenAP/Legacy)
• Structure is not too different from BADA but no license required. Physics based, focus is on performance limits.
• Includes generic drone models and equivalence table
• Can also be used in other modules or programs
• https://github.com/junzis/openap
• https://github.com/junzis/wrap
21 |
Open Source: Python language of choice• BlueSky simulator made entirely in Python
• Based on standard scientific libraries
• Python 3.6+
• Uses Numpy, Scipy
• For GUIs:- Qt, OpenGL,zmq- baseline: SDL (via Pygame)
V3.6+32-bits
OpenGLzmq
22 |
Open Source: Python language of choice
V3.6+32-bits
• BlueSky simulator made entirely in Python
• Based on standard scientific libraries
• Python 3.6+
• Uses Numpy, Scipy
• For GUIs:- Qt, OpenGL,zmq- baseline: SDL (via Pygame)
from math import *
print "Hello ICRAT"
a,b,c = input("Give a,b,c":)
D = b**2-4.0*a*ctop = -b/(2.0*a)
if D>=0.0 :x1 = (-b-sqrt(D))/(2.0*a)x2 = (-b+sqrt(D))/(2.0*a)print "x = ",x1," or x =",x2
else:print "No solutions"
23 |
Python has many free IDE/Editors:PyCharm & VSCode for example
24 |
Python has many free IDE/Editors:Sublime & Atom for example
25 |
Modules inside BlueSky
Includes 3D/4D wind modeland turbulence
Extremely scalable(#ac, #clients, #plug insdata access unlimited)
26 |
GUI: Standard (Qt/OpenGL based)
27 |
GUI: Classic (Pygame/SDL based)
28 |
• Easiest way to set up BlueSky:• Download and install BlueSky : Clone or Download and Download ZIP• Download latest Python version and a select “Add to PATH”• Run the supplied BleuSky script to install modules required for BlueSky with
PIP
• Double click BlueSky.py to run BlueSKy or BleuSky-pygame in case of problems
Download & set-up GitHub>ProfHoekstra>BlueSky
29 |
• Easiest way to set up BlueSky:• Download and install BlueSky : Clone or Download and Download ZIP• Download latest Python version and a select “Add to PATH”• Run the supplied BleuSky script to install modules required for BlueSky with
PIP
• Double click BlueSky.py to run BlueSKy or BleuSky-pygame in case of problems
Download & set-up GitHub>ProfHoekstra>BlueSky
30 |
BlueSky setting up• It is run by BlueSky.py to check
• The first time (when no settings.cfg exists), answer questions
31 |
Choose yourself which user interface you want (classic in case of problems)
• Delete settings.cfg and run BlueSky.py again
• Or double click on (create a shortcut to)
32 |
Scenario file• Scenario file are basically time stamped input by a user
33 |
Scenario file• Scenario file are basically time stamped input by a user
34 |
Scenario file: demo.scn• Scenario file are basically time stamped input by a user
35 |
Run BlueSky:• In QtGl version: Enter “IC” to select a file or “IC demo” to start demo
file (“IC de”+Tab uses file completion) as Initial Condition
• In pygame version: select demo.scn
36 |
Language in console and files: TrafScript• CRE ?CRE acid,type,lat,lon,hdg,alt,spd• CRE KL204,B744,52,4,090,FL100,250
37 |
• CRE ?CRE acid,type,lat,lon,hdg,alt,spd• CRE KL204,B747,52,4,090,FL100,250
Click on an aircraft (once to select, double to see status)• KL204 HDG 270 (call sign and command can be reversed)• ALT KL204, FL250
• PAN KJFK and zoom in with zoom buttons or gestures on touchscreen• QUIT stops program• IC allows selecting a new scenario file
• ADDWPT ?KL204 DEST EHAMKL204 ORIG KJFKADDWPT acid, (wpname/lat,lon),[alt],[spd],[afterwp]• KL204 addwpt SPY,FL240,350
Language in console and files: TrafScript
Flight plan entered like an FMSAlso see commands LNAV, VNAV, DIRECT, etc.
38 |
TrafScript: ease of use, compatibility• Easy to use in console or in time-stamped scenario file
• Scenario files are text files can be edited in Notepad or Word
• Scenarios compatible with tools like NLR Traffic Manager TMX or NASA LaRC ATOL lab
• Convertersfor Eurocontrol DDR2 are in beta phase, other converter can easily be added due to simplicity TrafScript language
• Scenario generation tools run external
• Requires only basic computer skills from user
39 |
BlueSky already contains many features• FMS and autopilot logic
• ASAS/ATC simulation for conflict detection and resolution (different modules)
• Extensive scenario control
• External connections
• Batch simulation on multiple CPUs and multiple PCs, very fast, thousands of aircraft (QtGL version only)
• Metrics & data logging
• Visualisation: traffic samples, ADS-B plug-in
40 |
Applications so far• Complexity metrics in existing traffic demand scenarios
• Simulate/analyze ATM procedures like Upstream delay absorption
• AMAN and XMAN interference of scheduling with pop-up traffic
• Visualize ADS-B data from receivers or networks
• Conflict Detection and Resolution studies
• ASAS/Swarming algorithms
• Effect of procedures and airspace structure oncapacity and safety (UTM)
• Machine learning plug-ins for sequencing task
41
Manage high density U-space
Manage local traffic density
Geofencing Geocaging
Reduce number of conflicts
Increase safety or increase capacity
Segmentation effect
Manage traffic complexity
Geovectoring
Reduce conflict rate
Reduce relative speed
New
42
Geovectoring: a generic way to define this
• Define an area (polygon/min alt/max alt) and define a geovectorconsisting of intervals in three specific dimensions:
• Note: horizontal speed is defined in polar notation: ( GS , HDG )
[ ][ ]
[ ]
min max
min max
min max
,, ( , , ),
geo
Groundspeed GroundspeedV Course Course f lat lon altitude
VerticalSpeed VerticalSpeed
= =
250 2000
FL100
180
360
SpdHdgV/S
43
Static vs Dynamic Geovectoring
StaticPart of navigation/procedural
data for a given airspacecan be stored or uplinked
DynamicVaries with time and situation
Needs to be uplinked
44 |
Your help is needed• Fully open source, so help us:
• Missing data in GUI/model: sectors, airspaces, weather/wind data
• Debugging: send reports
• Extension: request us to add functionality you need
• Extension: add your own functionality in a plug in
• Wikipedia philosophy: open source and forever “beta”
• Documentation:https://github.com/TUDelft-CNS-ATM/bluesky/wiki
45 |
Plug-in: Easy way to code your extension• Init_plugin() function:
• Define the frequency with which your update should be called• Add your own user command to the dictionary, connect them to your own
added functions. Uses built-in argument interpreter if you want.
• Update() function:• Called each time step (optionally before traffic update with preupdate)
• Reset() function:• Reset everything for next scenario run
• Input:• Access freely all variables e.g. traf.gs[idx] or functions e.g.
traf.id2idx(“KL204”)
• Output:• stack.stack(‘CRE KL642,KJFK,RW22L,0,0”)
46 |
The End Goal of BlueSky• A fully open source, open data, with extensive features but still easy to
use and develop by everyone without any restrictions or licensing
• Exchange metrics (common measures)
• Exchange scenarios (reference set will be developed in AHMED project)
• Stand on the shoulders of yourfellow researchers (giants?)
• Join the BlueSky community
• Experimental…..
47 |
Current status BlueSky community• https://github.com/TUDelft-CNS-ATM/bluesky/graphs/contributors
• Global user community (Europe/US/China dominant, but also users in African countries)https://github.com/TUDelft-CNS-ATM/bluesky/network/members
• Many spin-offs, development of plugins (of which 13 have been added to the master version) and 80 forks
• 1182 commits