A gymnasium environment for ADR.
Project description
gym-adr
A gym implementation of the environment used for "AI-Driven Risk-Aware Scheduling for Active Debris Removal Missions", a paper published at SPAICE 2024, a European Space Agency conference.
Installation
Create a virtual environment with Python 3.10 and activate it, e.g. with miniconda:
conda create -y -n active_debris_removal python=3.10 && conda activate active_debris_removal
Install gym-adr:
pip install gym-adr
To run the example script, install gym-adr with the additional dependencies:
pip install gym-adr[example]
Quick start
[!WARNING] Rendering the environment requires running the same environment sequentially with different configurations. In the first configuration, the agent uses removal steps to acquire a list of debris to deorbit. In the second configuration, the environment runs with time steps to smoothly render the orbital transfer vehicle's movement between the debris on the deorbited list. This second configuration is time-consuming because the agent is not actively training, many small actions are simulated, and rendering consumes additional computational resources. As a result, frequent rendering during training is not recommended.
Description
Description
Active Debris Removal environment.
The goal of the agent is to deorbit as many debris as possible given constraints on fuel and time. The agent is an Orbital Transfer Vehicle (OTV).
Action Space
The action space is discrete and consists of n values, n being the number of debris in orbit around the Earth.
Observation Space
The observation space is a (5+2n)-dimensional vector representing the state of the agent:
- removal_step: refer to the number of debris deorbited by the OTV
- number_debris_left: refer to the number of debris still in orbits around the Earth
- current_removing_debris: refer to the current target debris
- dv_left: refer to the current amount of fuel available to the OTV
- dt_left: refer to the current amount of time available to the OTV
- binary_flag_debris_1, ..., binary_flag_debris_n: refer to the state of debris (0 is in orbit, 1 is already deorbited)
- priority_score_debris_1, ..., priority_score_debris_n: refer to the priority score of debris (1 is not prioritary, 10 is prioritary = with a high chance of collision)
Rewards
The reward is 1 when the OTV deorbit an non-prioritary debris, 10 when it deorbit a prioritary debris, 0 if it doesn't deorbit any debris (no more fuel/time or debris already deorbited).
Starting State
The agent starts at the position of a random debris. This debris is considered deorbited for the rest of the episode.
Episode Termination
The episode terminates when the OTV run out of fuel (or time) or when it chose as target debris a debris that has already been deorbited.
Arguments
total_n_debris: (int) The number of total debris in orbit around the Earth. Default is10.dv_max_per_mission: (int) The total amount of fuel available at the start of the mission. Default is5.dt_max_per_mission: (int) The initial duration of the mission. Default is100.random_first_debris: (bool) The debris chosen to initialize the position of the OTV. Default isTrue.first_debris: (int) Ifrandom_first_debrisis set toFalse, the debris chosen to initialize the position of the OTV. Default isNone.
Version History
- v0: Original version
Contribute
Contributions are welcome and greatly appreciated! 🚀
Follow our style
# install pre-commit hooks
pre-commit install
# apply style and linter checks on staged files
pre-commit run --all-files
Citations
@article{2024activedebrisremoval,
title = {AI-Driven Risk-Aware Scheduling for Active Debris Removal Missions},
author = {Antoine Poupon, Hugo de Rohan Willner, Pierre Nikitits and Adam Abdin},
year = {2024},
archivePrefix={arXiv},
primaryClass={cs.CV},
url = {https://arxiv.org/abs/2409.17012}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gym_adr-0.1.0.tar.gz.
File metadata
- Download URL: gym_adr-0.1.0.tar.gz
- Upload date:
- Size: 6.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.3 CPython/3.10.17 Darwin/24.4.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d41221e6dfff2be4dd1eeadd2ab3fb6dae66c37ee59533a9b346e87a25e0a852
|
|
| MD5 |
ab4ddf9f1c7e835e8238c8d9d2c39d9d
|
|
| BLAKE2b-256 |
a1ae4877103d56ca0cc73af0f0c9543c982bc7dcf11a3fb5d1f721f2b622fb2d
|
File details
Details for the file gym_adr-0.1.0-py3-none-any.whl.
File metadata
- Download URL: gym_adr-0.1.0-py3-none-any.whl
- Upload date:
- Size: 6.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.3 CPython/3.10.17 Darwin/24.4.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2cec046c87a5a986d6f386700366af96d3c21da8793e03f12265e211f0d48558
|
|
| MD5 |
a1ec97276faf2341a73431b8538c8864
|
|
| BLAKE2b-256 |
8f2d1ae3018dfb4f7a934748a3fc7ce5b0d09711b21f599816a7d0fe3abb8f45
|