Skip to main content

PyBullet models prepared for usage 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.9.0-py3-none-any.whl (151.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: jdrones-0.9.0-py3-none-any.whl
  • Upload date:
  • Size: 151.4 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.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c6754bc66778be236594ad14311fa1162eccb86eeeb82b570ae2041c77a24a0a
MD5 6d21b7a5912bb22a3743bd4f557954ea
BLAKE2b-256 7886f210ff3f094b90938f49cb3711a9dfe8297d5f479d8a5d8585a99438e1c0

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