Skip to main content

Open source deep learning framework that focuses on aerospace objects (rockets, planes, UAVs)

Project description

๐Ÿš€ TensorAeroSpace

en ru Documentation Status Hugging Face Ask DeepWiki Python License GitHub stars Coverage Status TensorAeroSpace Logo

Advanced Aerospace Control Systems & Reinforcement Learning Framework

A comprehensive Python library for aerospace simulation, control algorithms, and reinforcement learning implementations

๐Ÿ“– Documentation โ€ข ๐Ÿš€ Quick Start โ€ข ๐Ÿ’ก Examples โ€ข ๐Ÿค Contributing


๐ŸŒŸ Overview

TensorAeroSpace is a cutting-edge Python framework that combines aerospace engineering with modern machine learning. It provides:

  • ๐ŸŽฏ Control Systems: Advanced control algorithms including PID, MPC, and modern RL approaches
  • โœˆ๏ธ Aerospace Models: High-fidelity aircraft and spacecraft simulation models
  • ๐ŸŽฎ OpenAI Gym Integration: Ready-to-use environments for reinforcement learning
  • ๐Ÿง  RL Algorithms: State-of-the-art reinforcement learning implementations
  • ๐Ÿ”ง Extensible Architecture: Easy to extend and customize for your specific needs

๐Ÿš€ Quick Start

๐Ÿ“ฆ Installation

Using Poetry (Recommended)

git clone https://github.com/tensoraerospace/tensoraerospace.git
cd tensoraerospace
poetry install

Using pip

pip install tensoraerospace

๐Ÿณ Docker

docker build -t tensoraerospace . --platform=linux/amd64
# launch Jupyter Lab inside the container so you can open example/quickstart.ipynb
docker run -v $(pwd)/example:/app/example \
  -p 8888:8888 -it tensoraerospace \
  jupyter lab --notebook-dir=/app --ip=0.0.0.0 --no-browser --allow-root

Open the printed URL (default http://127.0.0.1:8888) and navigate to example/quickstart.ipynb to run the SAC walkthrough inside Docker.

๐Ÿƒโ€โ™‚๏ธ Quick Examples

๐Ÿ’ก Interactive walkthrough: open the Quickstart notebook to run the SAC B747 benchmark flow end-to-end inside Jupyter/VSย Code.

๐Ÿš€ Pretrained SAC Agent (Boeing 747)

Run a pretrained Soft Actor-Critic agent on Boeing 747 pitch control:

SAC B747

Command line:

python example/reinforcement_learning/sac-b747-render.py \
    --render \
    --dt 0.1 \
    --tn 200 \
    --repo TensorAeroSpace/sac-b747 \
    --device cuda  # Optional: 'cuda', 'mps', or 'cpu' (auto-detects if not specified)

๐Ÿ“– See full tutorial: SAC B747 Documentation


๐ŸŽ›๏ธ PID Controller (F-16)

import gymnasium as gym
import numpy as np

from tensoraerospace.agent.pid import PID
from tensoraerospace.utils import generate_time_period
from tensoraerospace.signals.standart import unit_step

# Simulation setup
dt = 0.01
tp = generate_time_period(tn=10, dt=dt)  # 10 seconds
N = len(tp)

# Reference signal for alpha tracking (5 deg step in radians)
reference = unit_step(
    degree=5, tp=tp, time_step=100, output_rad=True
).reshape(1, -1)

# Create F-16 longitudinal environment
env = gym.make(
    'LinearLongitudinalF16-v0',
    number_time_steps=N,
    initial_state=[[0], [0]],
    reference_signal=reference,
    use_reward=False,
)

# PID controller with tuned coefficients
pid = PID(
    env,
    kp=-14.290139135229715,
    ki=-8.240470780203491,
    kd=-1.2991634935096958,
    dt=dt
)

obs, info = env.reset()
for t in range(N - 1):
    setpoint = reference[0, t]
    alpha = float(obs[0])
    u = pid.select_action(setpoint, alpha)
    action = np.array([[float(u)]], dtype=np.float32)
    obs, reward, terminated, truncated, info = env.step(action)
    if terminated or truncated:
        break

๐Ÿค– Supported Algorithms

Algorithm Type HuggingFace Export Status
IHDP Incremental Heuristic Dynamic Programming โŒ โœ…
DQN Deep Q-Learning โŒ โœ…
DDPG Deep Deterministic Policy Gradient โŒ โœ…
SAC Soft Actor-Critic โœ… โœ…
A3C Asynchronous Advantage Actor-Critic โŒ โœ…
PPO Proximal Policy Optimization โœ… โœ…
GAIL Imitation Learning (Adversarial) โŒ โœ…
MPC Model Predictive Control โœ… โœ…
A2C Advantage Actor-Critic โœ… โœ…
A2C-NARX A2C with NARX Critic โŒ โœ…
PID Proportional-Integral-Derivative โœ… โœ…

โœˆ๏ธ Aircraft & Spacecraft Models

๐Ÿ›ฉ๏ธ Fixed-Wing Aircraft
  • General Dynamics F-16 Fighting Falcon - High-fidelity fighter jet model
  • Boeing 747 - Commercial airliner dynamics
  • McDonnell Douglas F-4C Phantom II - Military aircraft model
  • North American X-15 - Hypersonic research aircraft
๐Ÿš UAVs & Drones
  • LAPAN Surveillance Aircraft (LSU)-05 - Indonesian surveillance UAV
  • Ultrastick-25e - RC aircraft model
  • Generic UAV State Space - Configurable UAV dynamics
๐Ÿš€ Rockets & Satellites
  • ELV (Expendable Launch Vehicle) - Launch vehicle dynamics
  • Generic Rocket Model - Customizable rocket simulation
  • Geostationary Satellite - Orbital mechanics simulation
  • Communication Satellite - ComSat dynamics and control

๐ŸŽฎ Simulation Environments

๐ŸŽฏ Unity ML-Agents Integration

Unity Demo

TensorAeroSpace seamlessly integrates with Unity ML-Agents for immersive 3D simulations:

  • ๐ŸŽฎ 3D Visualization: Real-time 3D aircraft simulation
  • ๐Ÿ”„ Real-time Training: Train agents in realistic environments
  • ๐Ÿ“Š Rich Sensors: Camera, LiDAR, and physics-based sensors
  • ๐ŸŒ Custom Environments: Build your own aerospace scenarios

๐Ÿ“ Example Environment: UnityAirplaneEnvironment

๐Ÿ”ง MATLAB Simulink Support

Simulink Model

  • ๐Ÿ“ Model Import: Convert Simulink models to Python
  • โšก High Performance: Compiled C++ integration
  • ๐Ÿ”„ Bidirectional: MATLAB โ†” Python workflow
  • ๐Ÿ“Š Validation: Cross-platform model validation

๐Ÿ“Š State Space Matrices

Mathematical foundation for control system design:

  • ๐Ÿงฎ Linear Models: State-space representation
  • ๐ŸŽ›๏ธ Control Design: Modern control theory implementation
  • ๐Ÿ“ˆ Analysis Tools: Stability, controllability, observability
  • ๐Ÿ”„ Linearization: Nonlinear model linearization

๐Ÿ“š Examples & Tutorials

Explore our comprehensive example collection in the ./example directory:

Category Description Notebooks
๐Ÿš€ Quick Start Basic usage and concepts quickstart.ipynb
๐Ÿค– Reinforcement Learning RL algorithm implementations reinforcement_learning/
๐ŸŽ›๏ธ Control Systems PID, MPC controllers pid_controllers/, mpc_controllers/
โœˆ๏ธ Aircraft Models Environment examples environments/
๐Ÿ”ง Optimization Hyperparameter tuning optimization/

๐Ÿ› ๏ธ Development & Contributing

We welcome contributions! Please see our Contributing Guide for details.

๐Ÿ—๏ธ Development Setup

git clone https://github.com/tensoraerospace/tensoraerospace.git
cd tensoraerospace
poetry install --with dev
poetry run pytest  # Run tests

๐Ÿงช Testing

# Run all tests
poetry run pytest

# Run specific test category
poetry run pytest tests/envs/
poetry run pytest tests/agents/

๐Ÿ“– Documentation

  • ๐Ÿ“š Full Documentation: tensoraerospace.readthedocs.io
  • ๐Ÿš€ API Reference: Detailed API documentation
  • ๐Ÿ“ Tutorials: Step-by-step guides
  • ๐Ÿ’ก Examples: Practical use cases

๐Ÿค Community & Support

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • OpenAI Gym team for the excellent RL framework
  • Unity ML-Agents team for 3D simulation capabilities
  • The aerospace engineering community for domain expertise
  • All contributors who make this project possible

โญ Star us on GitHub if you find TensorAeroSpace useful! โญ

Made with โค๏ธ by the TensorAeroSpace team

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tensoraerospace-0.3.7.tar.gz (22.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tensoraerospace-0.3.7-py3-none-any.whl (22.7 MB view details)

Uploaded Python 3

File details

Details for the file tensoraerospace-0.3.7.tar.gz.

File metadata

  • Download URL: tensoraerospace-0.3.7.tar.gz
  • Upload date:
  • Size: 22.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.10.19 Linux/6.11.0-1018-azure

File hashes

Hashes for tensoraerospace-0.3.7.tar.gz
Algorithm Hash digest
SHA256 7697fccbc2e8ee8c9b7efeacd5894062afeaa2ce21597b06b38f22468de55187
MD5 0dcb92b4ba7da7333029bdfa30b4a0be
BLAKE2b-256 485ac5f0a1d078ce87a9eaccdd2ea0b42c1577c06604e83bfb7e5321ee13f568

See more details on using hashes here.

File details

Details for the file tensoraerospace-0.3.7-py3-none-any.whl.

File metadata

  • Download URL: tensoraerospace-0.3.7-py3-none-any.whl
  • Upload date:
  • Size: 22.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.10.19 Linux/6.11.0-1018-azure

File hashes

Hashes for tensoraerospace-0.3.7-py3-none-any.whl
Algorithm Hash digest
SHA256 80b90344a842297f43c9926ecb80c7f47bc06dc213a001c96234bec4e5d79a1c
MD5 f1c8e86e1cfe4cd2b352b59896e0464f
BLAKE2b-256 e961264fe54678ee962bff8005006038e1c7b066b196114f9e51fa0fcc11216a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page