Giter Club home page Giter Club logo

mpc_target_tracking's Introduction

"Backback Problem" Tracking

To run the script, first run python3 mpc_iris_2.py to generate the MPC. Then, run python3 run_obstacles.py. This should generate an output video in the videos subdirectory. You can modify then number of targets and trackers in run_obstacles.py.

In general, I would re-implement the general MPC idea from here into your existing control stack. The core ideas are quite simple, and there are just a few functions that encapsulate the interesting parts.

mpc_obs_functions.py

This file has most of the relevant utility functions.

construct_ellipse_space

This takes an environment and decomposes the free space into ellipsoids. It makes a finely spaced lattice filling the space, and uses the IRIS library to generate ellipsoids such that all of the lattice points are covered.

construct_ellipse_topology

After decomposing the free space into ellipsoids, store the connectivity of which ellipsoids intersect with each other.

find_ellipsoid_path

Given the ellipsoid graph and a desired start and endpoint, finds the fewest number of ellipsoids to traverse from the start to end. Also generates a waypoint in the intersection of each pair of ellipsoids on the path.

utils.py

fine_ellipse_intersection

Given two ellipsoids, find a point in their intersection.

ellipsoids_intersect

Checking condition for whether two ellipsoids intersect.

mpc_iris_2.py

Contains the MPC definition. Uses collocation method to enforce dynamics. You will see there are weights that specify which indices have a penalty for the primary goal and which have weights for the secondary goal. These are updated between iterations in run_obstacles.py (weights_1 and weights_2 and switch_ix). The active ellipsoid constraint is controlled by the ellipsoid shape matrices and centers A,B,a,b, and the switching between the two constraints is defined by the solver bounds ubg which are also updated between runs in run_obstacles.py.

mpc_target_tracking's People

Contributors

goldenzephyr avatar gcgloven avatar

Watchers

 avatar Noam Buckman avatar  avatar Nina Polshakova avatar nduong avatar  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.