Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.1%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: L-ED
  • License: mit
  • Language: Jupyter Notebook
  • Default Branch: main
  • Size: 127 MB
Statistics
  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created over 2 years ago · Last pushed about 2 years ago
Metadata Files
Readme License Citation

README.md

RL_DRONE

Diploma work based on PyBullet physics simulator. Target of this work is to develop position control system using only following input data: - linear and angular velocity in drone local coordinates - projected gravity [orientation analog] - position displacement

This means drone can be operated from integrated imu data without additional velocity postprocessing from local to global coordinates

Also this work contains absolute position controllers from https://github.com/utiasDSL/gym-pybullet-drones.git

imu flight

Main contributions

  • IMU Sensor model gympybulletdrones/devices/sensors/imu.py
  • Physical drone model gympybulletdrones/assets/custom.urdf
  • Environment for system learning gympybulletdrones/envs/singleagentrl/hover
  • Sensor asynchronous clocking Added model of physical drone

Drone Model

  • Calculated inertia from physical analog using Autodesk Inventor
  • Estimated Lift and Torque coefficients from open database, duplicated in gympybulletdrones/thrusttorqueestimation

imu flight imu flight

Environment

Target displacement clipped by absolute max value equal 1, so system has direction information when displacement greater than 1 and has exact measure when displacement less than 1 Sigmoid function with out scaling used to convert prediction values to range of motor speed [0, maxspeed] Reward function motivates agent fly to center and angular rate reward penalizes keeps policy from extra rotation math reward = closeness*angles \\ ```math closeness = \frac{||displacement||}{radius{max}} \ math angles = exp(||\omega||*0.1) ``` During training drone initialized with random position from uniform distribution in sphere with radius 1.5 meters

IMU sensor

measurement simulation based on two-component noise model math measurement(t) = estimation(t) + bias(t) + noise \\ math bias(t) =bias(t-1)+N(1,\sigma_{r}*\sqrt{dt})\\ math noise = N(1,\frac{\sigma_{d}}{\sqrt{dt}})

Installation

```sh git clone https://github.com/L-ED/RL_Drone.git cd gym-pybullet-drones/

conda create -n drones python=3.10 conda activate drones

pip3 install --upgrade pip pip3 install -e . # if needed, sudo apt install build-essentials to install gcc and build pybullet

```

Use

RL Position Control from local coordinates

sh cd gym_pybullet_drones/examples/ python hover/hover_learn_multienv.py

PID position control example

sh cd gym_pybullet_drones/examples/ python3 pid.py

Stable-baselines3 PPO RL example

sh cd gym_pybullet_drones/examples/ python3 learn.py

Owner

  • Name: LED
  • Login: L-ED
  • Kind: user

Citation (CITATION.cff)

cff-version: 1.2.0
preferred-citation:
  type: article
  authors:
  - family-names: "Panerati"
    given-names: "Jacopo"
    orcid: "https://orcid.org/0000-0003-2994-5422"
  - family-names: "Zheng"
    given-names: "Hehui"
    orcid: "https://orcid.org/0000-0002-4977-0220"
  - family-names: "Zhou"
    given-names: "SiQi"
  - family-names: "Xu"
    given-names: "James"
  - family-names: "Prorok"
    given-names: "Amanda"
    orcid: "https://orcid.org/0000-0001-7313-5983"
  - family-names: "Schoellig"
    given-names: "Angela P."
    orcid: "https://orcid.org/0000-0003-4012-4668"
  doi: "10.0000/00000"
  journal: "2021 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)"
  month: 1
  start: 1 # First page number
  end: 8 # Last page number
  title: "Learning to Fly---a Gym Environment with PyBullet Physics for Reinforcement Learning of Multi-agent Quadcopter Control"
  issue: 1
  volume: 1
  year: 2021

GitHub Events

Total
Last Year

Dependencies

.github/workflows/push.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
.github/workflows/release.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
  • pypa/gh-action-pypi-publish master composite
pyproject.toml pypi
  • gymnasium ^0.28
  • matplotlib ^3.7
  • numpy ^1.24
  • pybullet ^3.2.5
  • pytest ^7.3
  • python ^3.10
  • scipy ^1.10
  • stable-baselines3 ^2.0.0
  • transforms3d ^0.4.1
setup.py pypi