Giter Site home page Giter Site logo

d3g's Introduction

D3G

Overview

Distributed Differentiable Dynamic Game (D3G) is a framework, which enables learning multirobot coordination from demonstrations. We employ two types of robots and two scenarios to validate Algorithms.

  1. XEnv.py uses a planar quadrotor model as robot dynamics, and define the cost function of different scenarios mentioned above.
  2. GEnv.py uses a unicyle model as robot dynamics, and define the cost function of different scenarios mentioned above.
  3. GPDP.py implements the distributed game solver and the distributed differentiable Pontryagin’s Minimum Principle (PMP) solver algorithms for unicyle model.
  4. GPDP.py implements the distributed game solver and the distributed differentiable Pontryagin’s Minimum Principle (PMP) solver algorithms for quadrotor planner.

Usage

Getting started

Download the source code folder and establish new projects in Pycharm (recommended). Make sure all associated files are properly linked to the project.

Requirements:

Python 3.10 tested

numpy 1.23.2 tested

casadi 3.5.5.post2 tested

matplotlib 3.5.3 tested

The scenarios

The package contains five folers named as "uavswarm2D_diamond", "uavswarm2D_line", "uavswarm2D_transition", "uavswarm3D_quadrotor", and "uavswarm_unicyle". Each foler is corresponding to one specific sceario. In each folder, generate_demo.py is to generate a demonstration, and formation_learning.py is for learning from the demonstration. For each scenario, first run generate_demo.py to generate a dataset of demonstration which will be saved in the 'data' foler. Then run formation_learning.py to learn the demonstration.

Simulation examples

  1. uavswarm2D_line: the robots start from different initial positions with 0 speed, their goal is to initialize, within the time horizon, a desired (linear-like) formation towards the Y axis, with velocity 2. During this process, they have to avoid collision and risky areas and walls: F1

  2. uavswarm2D_transition: Similar to exmaple (1), but the robots aim to initialize a diamond formation: F2

  3. uavswarm2D_transiition: The robots are initialized with a diamond formation obtained in exmaple (2). Robots are aware of a potential target from in direction of F , they want to form a new formation offering them positional advantage against that target. F3

d3g's People

Contributors

easy98 avatar shawn-xuanwang avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.