Presentation is loading. Please wait.

Presentation is loading. Please wait.

State of the Project Alex Woods Ben Link Garston Tremblay Jacob Wisnesky Nawaf Alghamdi.

Similar presentations


Presentation on theme: "State of the Project Alex Woods Ben Link Garston Tremblay Jacob Wisnesky Nawaf Alghamdi."— Presentation transcript:

1 State of the Project Alex Woods Ben Link Garston Tremblay Jacob Wisnesky Nawaf Alghamdi

2 The Speakers  Alex Woods  Ben Link  Garston Tremblay  Jacob Wisnesky  Nawaf Alghamdi 2 Jacob Wisnesky

3 Focus of This Presentation  Project Overview  User Interface Design  Architecture  Software Demo 3 Jacob Wisnesky

4 Focus of This Presentation  Project Overview  The Class  The Problem  The Solution  User Interface Design  Architecture  Software Demo 4 Jacob Wisnesky

5 The Class  Computer Science Capstone  49 Students…10 Teams  Real World Projects ○ 007: Game Creation For The XBOX360 AgentSheets, Inc. ○ triPhone: Geomapping WiFi Hotspots Con-X Corporation ○ SINN: Remote Power Saver Amadeus Consulting Group, Inc. 5 Jacob Wisnesky

6 The Problem  Most important interaction for LASP with satellites is through various ground stations  Data is downloaded, commands are uploaded  Ground station can only communicate with satellite when it’s above the “mask”  Needed: Real-time 3D visualization of satellites and ground stations showing the mask position 6 Jacob Wisnesky

7 The Solution: LaspView  Uses of LaspView  Major Requirements Environmental Functional Performance  Conceptual View of LaspView 7 Jacob Wisnesky

8 Uses of LaspView  Visualize satellites, ground stations and important celestial bodies in real time  Flexible camera placement  Viewable masks for ground stations  Allow user to create scripts that can handle real-time behavior 8 Jacob Wisnesky

9 Example:  Ground station view  Shows mask information 9 Jacob Wisnesky

10 Environmental Requirements  Software/Development Environment Two operating systems, one has to be Linux OpenGL 2.x SPICE toolkit  Hardware Environment 2.0 GHz processor 10 GB available disk space 1 GB RAM 256 MB video memory OpenGL capable video card Minimum 1024x768 16-bit color display One button pointing device Standard keyboard Internet connectivity 10 Jacob Wisnesky

11 Functional Requirements  Retrieve position data from SPICE  Provide flexible camera positioning  Display satellite information  Ability to import scripts  Hands-free operation  Show when a satellite can communicate with a ground station  Must be real-time and accurate 11 Jacob Wisnesky

12 Performance Requirements  Mask information accurate within 1 sec  Start-up time less than 1 min  Average frame rate of around 30 frames/s  Minimum frame rate of 24 frames/s  Math accurate to 32-bit precision  Provides descriptive error messages  Immediate termination upon errors 12 Jacob Wisnesky

13 LaspView Conceptual Diagram LaspView User Scripts Satellite Data From SPICE 13 Jacob Wisnesky

14 Focus of This Presentation  Project Overview  User Interface Design  Architecture  Software Demo 14 Nawaf Alghamdi

15 Focus of This Presentation  Project Overview  User Interface Design  Command Line Invocation  Graphical User Interface  API  Architecture  Software Demo 15 Nawaf Alghamdi

16 Command Line Invocation  LaspView invoked from the command line  File name of a user script or path to script given as a parameter LaspViewUser@Computer:~$ laspview testscript.py C:\LaspView> laspview testscript.py 16 Linux: Windows: Nawaf Alghamdi

17 Current View Satellite Sun Moon Satellite Information Name: SORCE Position: 510, -3600, 5800 km Velocity: 27360 km/hr The LaspView Window (GUI) 17 Nawaf Alghamdi

18 Current View  Main part of GUI  Camera may be positioned anywhere with user scripts  Displays important aspects of the view ○ Sun ○ Earth ○ Moon ○ Current Satellite ○ Mask ○ Major Stars 18 Nawaf Alghamdi

19 Example Views: Global 19 Nawaf Alghamdi

20 Example Views: Ground Station 20 Nawaf Alghamdi

21 Satellite Information  Provides information relevant to current view ○ May display general information about all satellites ○ May display satellite specific information Satellite Information Name: SORCE Position: 510, -3600, 5800 km Velocity: 27360 km/hr 21 Nawaf Alghamdi

22 API  Extremely important part of the user interface  Used for all interaction with the LaspView system  Allows user scripts to interact with LaspView 22 Ben Link

23 API Functionality  Get Data  Camera Control  Get/Set Simulation Speed/Time  Get/Set Event Handlers  Get/Set Update Function  Get API Version 23 Ben Link

24 API Functionality  Get Data Returns position, orientation, or other useful information for given celestial bodies Celestial bodies include satellites, Earth, Moon, Sun, etc.  Camera Control Provides functions to: ○ manipulate camera position ○ Orientation ○ Viewing angles ○ Etc. 24 Ben Link

25 API Functionality  Get/Set Visualization Speed/Time Adjusts visualization speed to be greater or less than real-time Can set current time to any date 25 Ben Link

26 API Functionality  Get/Set Event Handler Gets/Sets the function to be called in the user script when events are detected  Get/Set Update Gets/Sets the function to be called in the user script prior to rendering each frame 26 Ben Link

27 API Functionality  Get API Version Returns the current version of the API Version format: major.minor.patch If API and script versions are different: ○ Patch version: execute with no warning ○ Minor version: execute and produce warning which is output on command line ○ Major version: do not execute and produce error 27 Ben Link

28 Focus of This Presentation  Project Overview  User Interface Design  Architecture  Software Demo 28 Ben Link

29 Focus of This Presentation  Project Overview  User Interface Design  Architecture  Overview  Model – View- Controller  External Data Files  Software Demo 29 Ben Link

30 Architecture Overview Controller Model View User Scripts Satellite Info from SPICE Ground Station Information Software Data Flow File API 30 Ben Link

31 Architecture: Model  Provides interface to handle user scripts and controller input  Interacts and retrieves data from SPICE toolkit  Passes display information to the View for rendering  Contains all state information  Implements the API 31 Ben Link

32 Model: Components  Model divided into three sub components  visTime class  SPICEdata class  pythonAPI class 32 Ben Link

33 Architecture: View  Renders and displays Model data  Handles all interaction with OpenGL  Decoupled from model due to some platform-specific code 33 Ben Link

34 Architecture: Controller  Reacts to user input  Captures user events  Calls API functions provided by the model 34 Ben Link

35 External Data Files  LaspView uses three different types of data files SPICE Toolkit Kernel Data Files User Scripts Ground Station Information File 35 Alexander Woods

36 SPICE Toolkit Kernel Data Files  Provide information for satellites, sun, moon, and other celestial bodies Position Orientation Radii and masses  ‘Kernel’ refers to SPICE data file. 36 Alexander Woods

37 SPICE Concepts  Kernels are furnished  Once furnished, data can be accessed  All positions and orientations given in a reference frame  LaspView uses IUA_EARTH  Reference frames are translated automatically by SPICE 37 Alexander Woods

38 Kernels used by LaspView  Leap second file used to translate times  Physical constants file  Binary SP kernel with positions of solar system objects. Valid from 1958 to 2059  Satellite data in binary SPK files 38 Alexander Woods

39 Example: SPICE Data File NORAD TLE file AIM 1 31304U 07015A 08324.25491160.00000569 00000-0 61726-4 0 53732 31304 97.8002 61.0290 0011413 191.9461 168.1484 14.91994973 85492 Setup file to convert TLE to type-10 SPK INPUT_DATA_TYPE = 'TL_ELEMENTS' OUTPUT_SPK_TYPE = 10 OBJECT_ID = 31304 CENTER_ID = 399 REF_FRAME_NAME = 'J2000' START_TIME = '2008 NOV 01' STOP_TIME = '2008 DEC 15' LEAPSECONDS_FILE = 'naif0009.tls' INPUT_DATA_FILE = 'aim.tle' OUTPUT_SPK_FILE = 'aim.bsp' PCK_FILE = 'geophysical.ker' SEGMENT_ID = 'SATELLITE AIM' PRODUCER_ID = 'Alexander Woods, CU ' 39 Alexander Woods

40 User Scripts  Major component of user interaction with LaspView  Automate camera control and other functionality  Establish various update and event handler functions  Written in Python  Consist of valid Python and LaspView API functions 40 Alexander Woods

41 Example: User Script import laspviewAPI … def init(): # set the update and event handling functions to the global # view’s implementation of these functions. # this effectively sets the view to the global view laspviewAPI.setUpdateFunction("globalViewUpdate") laspviewAPI.setKeyEventFunction("globalViewKeyEve nt") laspviewAPI.setMouseEventFunction("mouseEvent") return 41 Alexander Woods

42 Example: User Script def globalViewKeyEvent(key): if (key == 102): th += 5 if (key == 100): th -= 5 if (key == 101): ph += 5 if (key == 103): ph -= 5 if (key == 104): dim -= 1 if (key == 105): dim += 1 # Switch to the sat view if the ‘v’ key (code 118) is pressed if (key == 118): laspviewAPI.setKeyEventFunction("satViewKeyEvent") laspviewAPI.setUpdateFunction("satViewUpdate") th %= 360 ph %= 360 return 42 Alexander Woods

43 Example: User Script def globalViewUpdate(): # calculate new camera position from th, ph, dim and cdist thr = math.radians(th) phr = math.radians(ph) cameraX = -cdist*dim*math.sin(thr)*math.cos(phr) cameraY = cdist*dim *math.sin(phr) cameraZ = cdist*dim*math.cos(thr)*math.cos(phr) # set the camera position in LaspView laspviewAPI.setCameraPosition(cameraX, cameraY, cameraZ) return 43 Alexander Woods

44 Example: User Script def satViewKeyEvent(key): # switch to the global view if the ‘v’ key (code 118) is pressed if (key == 118): laspviewAPI.setKeyEventFunction("globalViewKeyEvent") laspviewAPI.setUpdateFunction("globalViewUpdate") return def satViewUpdate(): # place the camera at the AIM satellite’s current position pos = laspviewAPI.getCurrentObjectPosition("-131304") laspviewAPI.setCameraPosition(pos[0], pos[1], pos[2]) return 44 Alexander Woods

45 Ground Station Information File  Contain useful information relating to ground stations Ground station location Mask information Satellite contact times 45 Garston Tremblay

46 Example: Ground Station File 36 00.7 100.9 151.2 200.1 … 3600.7 46 Garston Tremblay

47 Focus of This Presentation  Project Overview  User Interface Design  Architecture  Software Demo 47 Garston Tremblay

48 Software Demo 48 Garston Tremblay

49 Summary  Project Overview  The Class  The Problem  The Solution  User Interface Design  Command Line Invocation  Graphical User Interface  API  Architecture  Overview  Model – View- Controller  External Data Files  Software Demo 49 Garston Tremblay

50 LaspView  Real time visualization  Versatile camera placement  Powerful user scripts and automation 50 Garston Tremblay

51 Software Demo: Automatic View Changing Function 51 Garston Tremblay import time def autoViewSwitcher(): localTime=time.localtime() seconds=localTime[5] if((seconds/5)%2==0): globalViewUpdate() else: satViewUpdate() def init(): laspviewAPI.setUpdateFunction("autoViewSwitcher") …

52 Questions? 52


Download ppt "State of the Project Alex Woods Ben Link Garston Tremblay Jacob Wisnesky Nawaf Alghamdi."

Similar presentations


Ads by Google