|
Department of Computer Science
|
University of Colorado Boulder
|
|
|
|
|
|
|
|
|
home · undergraduate program · senior project · projects ·
|
| |
Senior Project - Pterodactyl |
| |
3D Simulation for Satellite Flight Control, Version 2.0
Senior Project: 2009-2010
The Laboratory for Atmospheric and Space Physics (LASP) currently controls four
Earth-orbiting satellites from their mission operations center at CU's East
Campus Research Park. The most important interaction they have with their
satellites is via a ground station contact, wherein recorded data and telemetry
is downlinked and new commands are uplinked to the satellite.
Last year's LaspView
project provided a framework for assisting LASP with these
interactions. The goal of this year's project was to extend that work
by producing demonstration and operations modes. To achieve this objective,
a series of issues were addressed including data transfer, Python script
commands, and smooth camera transitions. Other requirements included rendering
space and ground tracks using the
C++/OpenGL environment.
Demo and Operations Scripts:
Two different modes were implemented for LaspView:
an Operations Mode and a Demo Mode.
The Operations Mode is intended to give flight operators a
visualization of the satellites and their statuses. The Demo Mode is
intended to provide visitors to LASP a visual context for where LASP's
satellites are in real time in a visually appealing way.
Database:
The database implementation is
PostgreSQL. Since
LASP's database is Sybase,
a conversion routine from Sybase to PostgreSQL must be
run to update the external database. Additionally, because the database is
housed external to LASP, database access is slow;
this translates to visual lag in LaspView.
To alleviate this, the LASP database updates in a separate thread, pulling
large chunks of data (specifiable by the user) from the database into local
memory for access. The local data structure is available for use by the
print functions described below.
Print Functions:
The print functionality built into LaspView is a three-tiered
system. The lowest tier retrieves information from the local data structure
and is useful for internal LaspView decisions like
"interestingness" in the demo script.
The second tier provides actual print functionality through the
LaspView API. This level is for more advanced users who would like
to position text in unique places. The highest tier is
"printSelectedFunctions()", which calls on the functions in the second tier.
Unlike the second tier, the user isn't responsible for placement of text.
Rather, they just have to specify what information they want displayed and
the information will be drawn with correct spacing in the lower left hand
corner of the screen. The goal of this, as well as many components of
LaspView, was to make everything as user friendly as possible.
Linux Access:
Building LaspView for Linux is not very intuitive. A list of
library dependencies have been compiled and given to the sponsors for
allowing LaspView to run on Linux. Likewise, the makefile has been
modified to serve as a template for what a makefile on the local machines
should look like.
Space and Ground Tracks:
The space tracks (or trajectories) show the satellite's orbit and add a
sense of movement to the visual experience. The ground tracks are a
projection of the satellite position onto the Earth's surface. Users are
able to toggle these lines via scripts or keyboard.

Tracks
Ground Station Contact
AIM Satellite
|
|
|
|
|
|
|
|
| |