Giter VIP home page Giter VIP logo

motion_planning-door-key's Introduction

Dynamic-Programming-in-motioan-planning: Autonomous navigation in a ‘Door & Key’ environment

This project focuses on autonomous navigation in a Door & Key environment, shown in Fig. 1. The objective is to get our agent (red triangle) to the goal location (green square). The environment may contain a door which blocks the way to the goal. If the door is closed, the agent needs to pick up a key to unlock the door. The agent has three regular actions, move forward (MF), turn left (TL), and turn right (TR), and two special actions, pick up key (PK) and unlock door (UD). Taking any of these five actions costs energy (positive cost)

Designing and implementing a Dynamic Programming algorithm that minimizes the cost of reaching the goal in two scenarios: (a) ”Known Map”: you should compute a control policy on each of the 7 environments provided in the starter code and evaluate its performance on the same environment that it was computed for. Further description of the 7 environments and their functionality is provided in the accompanying starter code and README file. (b) ”Random Map”: you should compute a single control policy, whose performance may be evaluated on any of the 36 random 8 × 8 environments. The size of the grid in the random maps is 8 × 8 and the perimeter is surrounded by walls.

Project Report

Orish Jindal, 'Autonomous navigation in a ‘Door & Key’ environment

For part A: The optimal control sequences that were obtained for some of the given environments of part A, were used to plot the gif showing movement of the robot based on the given environment.

For part B: Some examples of random environments for important cases (both door closed, both open, one open one closed) are shown below.

Details of code files (This is a class homework: ECE276B SP22 PR1)

There are two '.py' files:

  1. utils.py -- This needs to be run first as its functions are utilized in the main file This file includes the Label Correcting Algorithm for both parts (named: dp) along with some helper functions.

  2. doorkey.py -- This is the main file and is executing part A and B The Label Correcting Algorithm of utils.py is used in this file's function "doorkey_problem"

     Just uncomment the part which need to be run (A or B)
     	and comment the other after "if __name__ == '__main__':"
    

motion_planning-door-key's People

Contributors

ojindal avatar

Watchers

 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.