skip to main content
Department of Computer Science University of Colorado Boulder
cu: home | engineering | mycuinfo | about | cu a-z | search cu | contact cu cs: about | calendar | directory | catalog | schedules | mobile | contact cs
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.

Ground Station Contact
Ground Station Contact
AIM Satellite
AIM Satellite
See also:
Department of Computer Science
College of Engineering and Applied Science
University of Colorado Boulder
Boulder, CO 80309-0430 USA
Send email to

Engineering Center Office Tower
ECOT 717
FAX +1-303-492-2844
XHTML 1.0/CSS2 ©2012 Regents of the University of Colorado
Privacy · Legal · Trademarks
May 5, 2012 (14:07)