Giter Club home page Giter Club logo

cs666's Introduction

Q-Learning based Behavior Adaptation in Multi-Robot Systems

Abstract

  • An approach to the problem of autonomous mobile garbage collecting and sorting robot using reinforcement learning.
  • Q-learning is one kind of the reinforcement learning algorithm, which we used for learning the actions based on rewards.

Inspiration

  • Google DeepMind created an artificial intelligence program using deep reinforcement learning that plays Atari games and improves itself to a superhuman level.
  • The most important thing to know is that all that agent is given is sensory inputs(what we see on the screen) and it was ordered to maximize the score on the screen.
  • No Domain Knowledge is involved! This means that the algorithm doesn't know the concept of ball or what the controls exactly do.
Google Deepmind's Deep Q-learning playing Atari Breakout
Google DeepMind's Deep Q-learning playing Atari Breakout

Problem Statement

Autonomous garbage collection and garbage segregation, where the environment has different garbages scattered around, the robot should move around this environment and pick this objects(garbage) and drop it into appropriate bins, while keeping energy in check, if energy is getting lower than threshold, the robot should go to charing station and recharge its energy.

Robot Design

Raspberry Pi mounted on Legokit (Front_View) Raspberry Pi mounted on Legokit (Side_View)
Raspberry Pi mounted on Legokit (Front_View) Raspberry Pi mounted on Legokit (Side_View)

Arena Design

Arena with garbage scattered in the arena Arena with few garbage sorted to appropriate bins
Arena with garbage scattered in the arena Arena with few garbage sorted to appropriate bins

Project Demo Video

Project Demo
Project Demo - Garbage Collector using Q-learning

Compile and execute:

To run in bluetooth: (Connection from Lego NXT to Computer / Raspberry Pi)

  1. Change ./QGarbagePC/GarbageAgentPC.java line number: 31,
    replace Consts.USB with Consts.BT
  2. Change ./QGarbage/GarbageAgentNXT.java line number: 49,
    replace Button.ID_RIGHT with Button.ID_LEFTasdfsadfaf
  3. Change ./QGarbage/makefile line number: 11,
    replace -u with -b.

To run in USB: (Connection from Lego NXT to Computer / Raspberry Pi)

Default code is written for USB. No change is required.

To compile the program

Execute Lego NXJ program first.

# Goto QGarbage folder  
cd QGarbage

Position the robot towards any side of the arena to calibrate the directions.

# Execute makefile or execute the commands inside the makefile.  
make  

Execute Lego NXT PC program

# Goto QGarbagePC folder
cd QGarbagePC

#Execute the makefile or execute the commands inside the makefile.
make

To run Multi Robot system.

  • Copy the same code to all the computers.
  • Edit the ./QGarbagePC/Consts.java file
    • Line number: 23
    • Give unique numbers to each system in the range (1-254)
  • All the computers should be connected to the same network.
  • I would recommend to test with a dedicated router.
    • Since, we use multicast broadcast service, the connection is not reliable for communication, if it is already managing some traffic.

cs666's People

Contributors

subash-m 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.