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

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

jdrones-0.10.1-py3-none-any.whl (148.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: jdrones-0.10.1-py3-none-any.whl
  • Upload date:
  • Size: 148.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for jdrones-0.10.1-py3-none-any.whl
Algorithm Hash digest
SHA256 65bf41afba4aeb29280e61f9a1f9c8741476203f6684e643a6a691cfadc8f3b0
MD5 eb7dbd4b36d6d0753564e063e2c3eb2c
BLAKE2b-256 a3c6d0b757e43a252b2768dd70917c5c440210349874d45d81374d8d22c74f35

See more details on using hashes here.

Provenance

The following attestation bundles were made for jdrones-0.10.1-py3-none-any.whl:

Publisher: CD.yml on iwishiwasaneagle/jdrones

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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