340 likes | 641 Views
Design of a modular and robust astrodynamics toolbox New Trends in Astrodynamics and Applications VI 6th of June, 2011 Kumar, K., et al. Phd Candidate Astrodynamics & Space Missions Delft University of Technology. Assistant Specialist Center for Integrative Planetary Science
E N D
Design of a modular and robust astrodynamics toolbox New Trends in Astrodynamics and Applications VI 6th of June, 2011 Kumar, K., et al. Phd Candidate Astrodynamics & Space Missions Delft University of Technology Assistant Specialist Center for Integrative Planetary Science University of California-Berkeley
Contents • Why another astrodynamics toolbox? • Applications • What is Tudat? • Software architecture • Example simulation • Conclusions 2
Why another astrodynamics toolbox? • Need for generic, collaboratively developed astrodynamics toolbox within group • Current software is fragmented • Learning curve to start using existing software is steep • Lack of collaborative development = reinvention of the wheel • Many existing packages are available, but with limitations (e.g., application scope and licensing) 3
Applications • Interplanetary trajectories • Launcher ascent trajectories • Re-entry • Exoplanet orbits • Planetary rings • And many more … 4
Applications • Interplanetary trajectories • Launcher ascent trajectories • Re-entry • Exoplanet orbits • Planetary rings • And many more … 5
Applications • Interplanetary trajectories • Launcher ascent trajectories • Re-entry • Exoplanet orbits • Planetary rings • And many more … 6
Applications • Interplanetary trajectories • Launcher ascent trajectories • Re-entry • Exoplanet orbits • Planetary rings • And many more … 7
Applications • Interplanetary trajectories • Launcher ascent trajectories • Re-entry • Exoplanet orbits • Planetary rings • And many more … 8
Applications • Interplanetary trajectories • Launcher ascent trajectories • Re-entry • Exoplanet orbits • Planetary rings • And many more … 9
What is Tudat? TU Delft Astrodynamics Toolbox 10
What is Tudat? • NOT AN END-TO-END TOOL! • C++ Library to aid astrodynamics simulations • Collaboratively developed by students and staff of A&S • Implementation of commonly used solutions for astrodynamics 11
Software architecture • Many common elements for different applications • Common elements written generically • “Lego blocks” • A lot of time spent on software architecture – investment of time pays back in the long run! • Modularity is difficult to achieve; requires computer science knowledge 12
Software architecture Shape Body Vehicle CelestialBody Spacecraft Launchers Re-entry Vehicles Asteroids Moons Planets 13
Software architecture ForceModel Body Encapsulation 14
Software architecture Polymorphism ForceModel Body Encapsulation 15
Conclusions • Collaborative development is worth it! • Project management tools exist to aid development • Standardization is important • Talk to computer scientists! • Investing time in software architecture is time well spent • Astrodynamics lends itself well to sharing of modular code 20
TU Delft Astrodynamics Toolbox Liban Abdulkadir Luuk van Barneveld Dominic Dirkx Frank Engelen Elisabetta Iorfida Jonatan Leloux Jeroen Melman Erwin Mooij Roon Noomen Bart Römgens
Why another astrodynamics toolbox? • Many existing packages are available, including: • AGI’s Satellite Toolkit (STK) • Mercury • SWIFT • GEODYN • Custom-code that never gets used by anyone else • Etc etc … • Educational and research value in setting out a modular toolbox that has wider scope of applications. B1
Project setup • Coding standards and protocols • Documentation standards and protocols • Code robustness • File repository • Website • Management team / working group B2
Project setup • Coding standards and protocols • All code in C++! • Important to standardize code to ensure longevity, modularity and robustness of project • Rules are “evil”! Important to strike a balance • “N-Commandments document” based on accepted industry standards and group choices B3
Project setup • Documentation standards and protocols • Without proper documentation, project will die for sure! • Tools exist to standardize, we use Doxygen • Tutorials / examples / manuals provided to reduce learning curve for new developers B4
Project setup • Code robustness • Thorough code-checking process: every piece of code in the repository is independently checked by at least one other person • Unit test framework • Performance reports B5
Project setup • File repository • Various applications available to run code repositories like Bazaar, Subversion, Git etc. • Decentralized code development • Ability to access code from anywhere in the world and to review history of developments of code • Controlled commits to repository B6
Project setup • Management team / working group • Management team maintains oversight and longevity of project (meetings once a month) • Working group discusses current and future code development (meetings once every two weeks) • Meeting minutes available to everyone to keep track of action items, discussions, and decisions B7
Project setup • Website • Many code development project management tools and applications available e.g., Redmine, Trac, Sourceforge etc. • Important to make a selection and start project • We use Redmine • Website is vital; provides central point of communcation for entire project B8
Software architecture • Conservative policy towards external libraries – so far only Eigen used for linear algebra • Clear categorization of code, e.g., mathematics vs. astrodynamics vs. input handling etc. • Standard file formats for input and output handling • Internal standardization of units, reference systems etc. B9
Software architecture • Bodies • Environment model • Force models • Propagators • Numerical integrators • Root-finding methods B10
Future Plans Multi-threading External software Ephemeris Local optimization Observation Input/Output Global optimization Hybrid propagator Statistics Deep space manoeuvres Event handling TLE reader Reference frame transformations Data handling Low-thrust Aerodynamic force SGP4 propagator interface Attitude propagator Atmospheres Backwards propagation Dynamical systems theory B11