Download presentation
Presentation is loading. Please wait.
Published byMelvyn Harper Modified over 8 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.