GithubHelp home page GithubHelp logo

tourterrible / spot-ify Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 2.0 2.44 MB

Gold in Inter-Hostel Tech Competition: KRITI, 2019 | Problem Statement:

Home Page: https://github.com/ahad18abd/real_time_motion_planning/blob/master/Problem_statement.pdf

C++ 93.91% Python 6.09%

spot-ify's Introduction

Spot-ify: The 4 musketeers

Reactive Control Model with FSM for navigation,with the help of aruco markers, computer vision and ESP8266 module.

We built a system of 4 robots, capable of communicating with each other and aligning themselves according to given patterns with as much accuracy and speed as attainable.Each bot is able to detect its initial coordinates and orientation and reach the final position (in any orientation). On reaching the final destination, Bots provide an indication/signal.

We designed this for Inter Hostel Tech Competetion-Kriti 2019.

Theory

There are two ways for robotics navigation:

  • Reactive Control
  • Map Based Navigation

we used Reactive control to create behavioural model using FSM. It involves "Go to Goal Controller" and "Robot Avoidance". Go to goal control is responsible for keeping the bot towards goal location at a fixed speed and Robot Avoidance make sure that bots don't collide and incase of collison what to do.

Dependencies and Requirements

  • Python 3.7
  • Arduino IDE
  • OpenCV
  • Aruco 3.0+
  • The setup for this consists of:
    • A camera placed on top.
    • A local Wi-Fi server.
    • 4 Aruco Markers with known Id.

BOT Making

Each Bot is a three wheel system designed as small as possible to reduce the probability of collision.

  • Each Bot Consists of :
    • A ESP8266 (NodeMcu) : Reading Coordinates File and Controlling Motor Drivers.
    • Two Geared DC Motor and Wheel : Motion of the Bot
    • A Castor Wheel : Helps in Stability and Rotation
    • A Motor Driver (LM298) : control Motors
    • 9V Duracell Batteries : Power Source

Working

  • The camera placed on top records the real time coordinates of Bots i.e Aruco markers.

  • Real-Time Position Coordinates and Goal Coordinates keep updating in file.
  • ESP8266(NodeMcu) access the file on local server and read coordinates by sending a GET request.
  • The Motion of Bot follows the following Finite State Machine(FSM) to reach desired goal position without Collision: picture alt
  • The Control Architecture follows a closed loop control system. picture alt

Files and their Use

NodeMcu Related

align_n_go.ino

Bots align themselves with the line to goal point and keep moving towards their goal without taking care collision with other bot.

Version_1.ino

In addition of aling_n_go, bots take care of collision except head to head and head to tail collision.

Version_2.ino

In addition of aling_n_go, bots take care of all type of collisions.

Setup Related

aruco_detect_camera.py

Detect Aruco markers placed on each bot and update the file data.txt

data.txt

Coordinates file,Real Time Updating by aruco_detect_camera.py

server.py

Python programme to host local server on desired adress and port.

Test

Calibrate.ino

The two Dc motors used differ sligtly due to their mechanical properties, so the speed on providing same PWM is not same. We can calibrate or tune the two values of PWM for straight movement

spot-ify's People

Contributors

tourterrible avatar

Watchers

 avatar

Forkers

rajneesh04

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.