Skip to main content

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

Release files for jdrones 0.10.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for jdrones 0.10.1
File Interpreter ABI Platform
jdrones-0.10.1-py3-none-any.whl Python 3 none any Details

Release files / jdrones-0.10.1-py3-none-any.whl

Download URL jdrones-0.10.1-py3-none-any.whl
Size 148.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
65bf41afba4aeb29280e61f9a1f9c8741476203f6684e643a6a691cfadc8f3b0
BLAKE2b-256 checksum
How to use checksums
a3c6d0b757e43a252b2768dd70917c5c440210349874d45d81374d8d22c74f35
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.0.1 CPython/3.12.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 3, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.10.1 This release

1 release file

0.10.0

1 release file

0.9.0

1 release file

0.8.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page