Giter VIP home page Giter VIP logo

semnav_matlab's Introduction

MATLAB Simulation of Reactive Navigation In Non-Convex Planar Environments

This package communicates with the Python scripts of the semnav package, to simulate doubly reactive navigation with semantic feedback in MATLAB. Except for diffeomorphism-based navigation, the simulation also includes support for RRT-X, by Otte et al.

It is currently supported only for Ubuntu and Mac.

Maintainer: Vasileios Vasilopoulos ([email protected])

Relevant publications and packages

The simulation code included in this package has been used in the following papers:

  • V. Vasilopoulos, G. Pavlakos, S. L. Bowman, J. D. Caporale, K. Daniilidis, G. J. Pappas, D. E. Koditschek, "Reactive Semantic Planning in Unexplored Semantic Environments Using Deep Perceptual Feedback" (under review).
  • V. Vasilopoulos, G. Pavlakos, K. Schmeckpeper, K. Daniilidis, D. E. Koditschek, "Reactive Navigation in Partially Familiar Planar Environments Using Semantic Perceptual Feedback", arXiv:2002.08946.

The doubly-reactive operations in the model space are based on the papers:

  • Arslan, O., and Koditschek, D. E., "Exact Robot Navigation using Power Diagrams", IEEE International Conference on Robotics and Automation (ICRA '16), 2016, pp. 1-8.
  • Arslan, O., and Koditschek, D. E., "Sensor-based Reactive Navigation in Unknown Convex Sphere Worlds", The 12th International Workshop on the Algorithmic Foundations of Robotics (WAFR), 2016.

The RRT-X implementation is adapted from this package.

Getting started

  • Make sure that semnav is downloaded on your machine (you don't have to necessarily install it).
  • Open this script and:
    1. Modify your Python path (path_python_ubuntu or path_python_mac) depending on whether you work on Ubuntu or Mac.
    2. Modify the path to semnav (path_semnav_ubuntu or path_semnav_mac) depending on whether you work on Ubuntu or Mac.
    3. (Mac users might also need to specify the path_packages variable.)
  • Run startup.m to load Python and semnav.
  • If it doesn't already exist, make a folder called multimedia.

Running the simulation

  • In order to run the simulation, you need to make a scenario. Many examples of scenarios are included in the corresponding scenario.m file. We suggest copying one of them and modifying it appropriately for your case. Scenario parameters and their meaning are described near the top of the file.

  • You also need to add/modify the plot options corresponding to your scenario number in option.m. You can start by just using the default settings.

  • Then:

    1. In order to run the diffeomorphism-based doubly reactive navigation scheme, you need to call demoDiffeo with the number of your scenario. An example of how the simulation would look like for a fully actuated and a differential drive robot is shown below. We also include vectorField.m if you need to see the generated vector field, assuming no prior memory for the robot.

    1. In order to run RRT-X, you need to call demoRRT with the number of your scenario. We include an example below.

Both files include several parameters (flagSaveVideo, flagSaveGif, flagSaveFigure) that can be set to 1 or 0 to toggle output. All generated multimedia files are saved in the multimedia folder. We also include a jobs.m file for multiple simulation jobs.

semnav_matlab's People

Contributors

vvasilo avatar

Watchers

James Cloos 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.