To leverage my current skills while continuing to grow and develop my software engineering skills, I decided to make a standalone trajectory optimization application.

To keep myself busy with a project that would help grow my skills, I decided to make an interactive application to perform trajectory optimization in real time.

I feel confident coding in Python, but I wanted to further develop my proficiency in C++. Also, if I want to perform calculations on the fly very quickly, C++ is a better option than Python. With this in mind, I decided to structure the project such that the interface will be created using Qt (pronounced “cute”) and the backend will be written in C++. To create my app, I have used the Qt Creator application. This comes with a built-in graphical editor that allows for creating and editing the layout of my app in addition to a text editor for the backend development.

The app is laid out with two main components: the settings panel on the left, and the visualization window on the right. The settings panel allows the user to change all of boundary conditions for the trajectory as well as the central body and the number of intermediate points in the trajectory. Whenever the user updates any of the settings, the app will recompute the optimal trajectory for the given boundary conditions, and display the trajectory to the right.

Since the problem is defined as a two-body problem (with the two bodies being the central body, such as Earth, and the spacecraft) with fully specified starting and ending states and a time-of-flight, the optimal solution can be computed by solving the Lambert arc between the two states.

The first draft of the interface is shown here:

Previous
Previous

Dissertation

Next
Next

Software Project: Minesweeper