An open API service indexing awesome lists of open source software.

https://github.com/dmalyuta/successive_rendezvous

Fast Trajectory Optimization via Successive Convexification for Spacecraft Rendezvous with Integer Constraints
https://github.com/dmalyuta/successive_rendezvous

Last synced: 6 months ago
JSON representation

Fast Trajectory Optimization via Successive Convexification for Spacecraft Rendezvous with Integer Constraints

Awesome Lists containing this project

README

          

# Fast Fuel Optimal Rendezvous Trajectory Generation


View a video of the optimized trajectory





Figure: Total fuel consumption of the converged trajectories output by the
algorithm. The Apollo G-type mission nominal fuel consumption is shown as
reference. Up to 90% of fuel is saved.

## General Description

This repository implements the successive convexification algorithm with
state-triggered constraints for solving a 6 degree of freedom rendezvous
trajectory generation problem, in particular Apollo [transposition and
docking](https://en.wikipedia.org/wiki/Transposition,_docking,_and_extraction)
of the command and service module with the lunar module, submitted to [AIAA
SciTech 2020](https://www.aiaa.org/SciTech).

```
@inproceedings{Malyuta2020,
doi = {10.2514/6.2020-0616},
url = {https://doi.org/10.2514/6.2020-0616},
year = {2020},
month = jan,
publisher = {American Institute of Aeronautics and Astronautics},
author = {Danylo Malyuta and Taylor Reynolds and Michael Szmuk and Behcet Acikmese and Mehran Mesbahi},
title = {Fast Trajectory Optimization via Successive Convexification for Spacecraft Rendezvous with Integer Constraints},
booktitle = {{AIAA} Scitech 2020 Forum}
}
```

## Requirements

To run the code, you must have Python 3.7.2, CVXPY 1.0.24 and [MOSEK
9.0.87](https://www.mosek.com/downloads/) installed. To install Python and other
dependenies (except MOSEK) on Ubuntu, we recommend that you install [Anaconda
for Python 3.7](https://www.anaconda.com/distribution/) and then execute (from
inside this repository's directory):

```
$ conda create -n py372 python=3.7.2 anaconda # Answer yes to everything
$ source activate py372
$ pip install -r requirements.txt
```

## Instructions

You may run a particular rendezvous scenario by editing after ``if
__name__=='__main__'`` in `rendezvous.py`. You may also just run the following
for the default example of transposition and docking with a 150 second time of
flight:

```
python rendezvous.py
```

Plots are generated by running the `*_plot.py` files. Data is stored in the
`data/` directory and figures in the `figures/` directory.