Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages | Examples

UsingFramework.h

Go to the documentation of this file.
00001 /*! \page UsingOpenSESSAME Using the Open-SESSAME Framework
00002 \ref TableOfContents
00003 <hr>
00004     This section is meant to describe the design philosophy and methodology behind the <em>Open-Source, Extensible Spacecraft Simulation And Modeling Environment</em> Framework. It should give the reader a better understanding of the design of the framework and how to use it. 
00005   
00006   \section Philosophy
00007   No, this section is not for expounding upon the virtues of Plato or Kant or Nietzsche. What it is mean to convey is the philosophy behind the development of, and developing simulations with, the Open-SESSAME Framework. Hopefully this will give you a little better insight into the design of the framework, and how best to use, maintain, and extend it.
00008   
00009   First off, I think it is important to lay out the actual title of the framework:
00010   - <b>Open-Source</b> - the source is free (as in beer) and available for users and developers. Changes are propagated back to the community via the publicly hosted repository so the software continues to grow \& mature.
00011   
00012   - <b>Extensible</b> - the framework is designed with the premise that functionality will be added as necessary by new users and developers. The code is plainly written and well-documented to ease understanding of the source, and also encourages development via @em hotspots, points which assist in adding functionality (ie environmental disturbance functions, dynamic equations, kinematic representations, etc.)
00013   
00014   - <b>Spacecraft</b> - Open-SESSAME is developed with the target of simulating spacecraft and satellites in outer space. While there are generic mathematical and operational toolboxes (matrix, rotation, XML storage) as part of the software package, these libraries were developed or interfaced with the given goal in mind.
00015   
00016   - <b>Simulation And Modeling</b> - Simulation is providing a user with a non-real, but approximated environment that accurately corresponds to the real-world. Modeling is the creation of the physical dynamics and characteristics of this simulated world. Open-SESSAME is meant to be used as both a stand-alone model of spacecraft, and for use in creating simulations which interact with hardware and other software programs. 
00017   
00018   - <b>Environment</b> - the environment is the entire collection of dynamics, disturbances, data handling operations and interfaces that allow the user to interact with the simulation.
00019   
00020   - <b>Framework</b> - Open-SESSAME is a framework. It provides the tools and libraries that are combined together to create a simulation environment. By themselves they do not constitute an application, but must be joined by the user/developer in a meaningful way to simulate and analyze their particular problem. 
00021   
00022   \section Methodology
00023     So how do you actually create a simulation? A complete Open-Sessame simulation application (remember, Open-Sessame is just a framework, it is up to you to develop the application) consists of the following parts:
00024     - Attitude dynamics equation
00025     - Attitude kinematics equation
00026     - Orbit dynamics equation
00027     - Environmental disturbance torque \& force functions (may include a central body)
00028     - Physical object definition (mass, moments of inertia, ballistic coefficient, etc)
00029     - Propagator defining the coupling of the attitude \& orbit dynamics
00030     - Integrators (both orbital & attitude) and Interpolators
00031     - Data handling (history, saving, restoring, graphical output, input)
00032     - Communications (only if running on distributed machines or using hardware)
00033     
00034     Each of these components is implemented in one of the various toolboxes that compose the Open-Sessame Framework. The user must build the appropriate component (for example, writing the right-hand side of the attitude dynamics equation using momentum wheels) using the toolboxes and examples. These are then brought together in a main function to facilitate communication between the components to run the simulation. See \ref Examples for more help.
00035     
00036     \section Components Framework Components
00037     Below is a UML-esque diagram showing the Open-Sessame simulation application architecture. Components are color coded as follows:
00038     - @em Purple: #RotationLibrary
00039     - @em Blue: Attitude toolkit
00040     - @em Pink: Orbit toolkit
00041     - @em Green: Environment library
00042     - @em Brown: Dynamics library
00043     - @em Yellow: Data Handling library
00044     
00045     \image html Open-SESSAME_Architecture.jpg
00046     \image latex Open-SESSAME_Architecture.pdf "Open-Sessame Framework Architecture"
00047     
00048     Simple arrows indicate a "@em has-a" relationship (OrbitState has an OrbitRep and an OrbitFrame).
00049     Empty arrow heads indicate a derived class, or "@em is-a" (Quaternion is a Vector), and therefore has all the same functionality of the base class (Quaternion has all the funcionality of a Vector, as well as any more implemented in the Quaternion class itself).
00050     
00051     The components (each of the boxes) are coupled as shown to implement an actual spacecraft simulation application for modeling \& analysis. 
00052 */

Generated on Wed Sep 5 12:54:27 2007 for DSACSS Operational Code by  doxygen 1.3.9.1