Skip to main content

Drones models prepared for use via the gymnasium environment

Project description

jDrones Logo codecovCDCI docstring coverage

Why

Provide a gymnasium style interface using a physics simulation engine (pybullet in this case) to drone models. This in-turn enables faster prototyping of controllers, and reinforcement models. I'm maintaining this particular repo for my own research which is focused on waypoint generation, hence my priority is the trajectory drone environment. However, any upgrades and updates on the others would be hugely appreciated.

:warning: This code is still in alpha and will change over time as I use it :warning:

Environments

The environment documentation can be found here

Base Dynamics

  1. PyBulletDroneEnv-v0 :link:
  2. NonLinearDynamicModelDroneEnv-v0 :link:
  3. LinearDynamicModelDroneEnv-v0 :link:

Attitude

  1. LQRDroneEnv-v0 :link:

Position

  1. FirstOrderPolyPositionDroneEnv-v0 :link:
  2. FifthOrderPolyPositionDroneEnv-v0 :link:
  3. FifthOrderPolyPositionWithLookAheadDroneEnv-v0 :link:

Development

Create the local development environment:

conda create --name jdrones python=3.10
conda activate jdrones
pip install -r requirements.txt -r tests/requirements.txt

The run ***all tests with

#!/bin/bash
GIT_DIR=$(git rev-parse --show-toplevel)
PYTHONPATH=$GIT_DIR/src python -m pytest -s -q -n auto $GIT_DIR
PYTHONPATH=$GIT_DIR/src python -m pytest -s -q -n auto --only-integration $GIT_DIR
PYTHONPATH=$GIT_DIR/src python -m pytest -s -q -n auto --only-slow-integration $GIT_DIR

Citations

[1] J. Panerati, H. Zheng, S. Zhou, J. Xu, A. Prorok, and A. P. Schoellig, ‘Learning to Fly -- a Gym Environment with PyBullet Physics for Reinforcement Learning of Multi-agent Quadcopter Control’. arXiv, Jul. 25, 2021. doi: 10.48550/arXiv.2103.02142.

[2] J. Meyer, A. Sendobry, S. Kohlbrecher, U. Klingauf, and O. von Stryk, ‘Comprehensive Simulation of Quadrotor UAVs Using ROS and Gazebo’, in Simulation, Modeling, and Programming for Autonomous Robots, Berlin, Heidelberg, 2012, pp. 400–411. doi: 10.1007/978-3-642-34327-8_36.

Future Work

  • Better sensor modelling and kalman filters
  • Performance improvements of simulation using either compiled code or a JIT
  • Better controllers
    • LQR
  • Better trajectory generation between waypoints
    • First- and fifth-order polynomial trajectory generation
  • Examples
  • Proper integration testing
  • Higher fidelity motor models

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

jdrones-0.10.0-py3-none-any.whl (148.2 kB view details)

Uploaded Python 3

File details

Details for the file jdrones-0.10.0-py3-none-any.whl.

File metadata

  • Download URL: jdrones-0.10.0-py3-none-any.whl
  • Upload date:
  • Size: 148.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.5

File hashes

Hashes for jdrones-0.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c557a813d7b78f25be0c25ae216deca00cd4d0bc66d8eee9a9c33e1cf4efdc1b
MD5 29bb97cbe88600b43c6de330ea95b953
BLAKE2b-256 bdf9b5aab245fa3cb4a31e60d0d1ffc66b318e75e3fee0d6d0928fdd1c904fc1

See more details on using hashes here.

Supported by

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