-
Notifications
You must be signed in to change notification settings - Fork 87
GSoC 2010 3DTrajectories
The Interplanetary Trajectories 3D Graphics project aims to overcome that currently in PaGMO Available_Problems (both chemically-propelled and using an ion thruster) are represented by long vectors of doubles (i.e., a 'decision vector' or 'chromosome'). While this encoding is very efficient, it fails to provide any visual clue about the properties of the trajectory (e.g., Keplerian arcs, spiral legs, etc.). These clues have been proven to be valuable in almost all missions flown by space agencies (NASA, ESA, JAXA, etc.), and provide the possibility to add a human-in-the-loop element to the otherwise fully-automated approach pursued by PaGMO.
The goal of the coding activity in this area would be to provide a 3D visualization tool to navigate and explore interactively interplanetary trajectories, thus allowing for a fast visual inspection of chromosomes associated to these types of problems.
Student: Edgar Simo Serra
Mentors: Chit-Hong Yam, Dario Izzo
to be added
Technical Details: The plan is to augment the trajectory problems exposed in Python with a show() method that when invoked would pop up an interactive 3D window displaying the Planets, the trajectory legs and actual spacecraft position (at an epoch set by a slider). The information needed to generate such a plot will be provided by a method of the problem returning time, position, velocity and (separately) control vector or calculated in the Python show() method using basic geometrical shapes (ellipses + hyperbola). Test trajectories will be provided including Cassini, Rosetta and Messenger.
The timeline is not set in stone and is subject to change.
- Look at the details on how PaGMO handles trajectories.
- Familiarize with code.
- With the research done, figure out possible implementations.
- Plan for different features for usability and sort them by priority.
- Features list will be run by possible users for feedback.
- Propose a definite implementation and incremental additions of features.
- Core implementation should be finished and be able to output primitive trajectories.
- Implementation with the most important user features added.
- This version should be fully usable although might have bugs.
- Should be run through users to detect issues that could need corrections and bugs.
- Should use all the feedback from 0.9 to improve the final software.
- Any issues found past 1.0 will be handled.
- Extensive and verbose documentation will be written.
- [DONE] Planning of features and project scope.
- [DONE] Working on the core implementation.
- [DONE] Working on interface and usability.
- [DONE] Documentation and example usage.
- None yet