Giter VIP home page Giter VIP logo

mapimage2robot's Introduction

Constructor Robot with a Given Map of Buildings

This repository includes the software of the CMP sub-system of our graduation capstone project.

Sub-team Student 1 Student 2
Computer Engineering (CMP) Ugur Taysi Sevval Colak
Mechatronics Engineering (MCH) Dogacan Sahin Zeynep Suzen

The task of CMP students includes the use of image processing in order to process the given map image of buildings. The program finds coordinate of each building, along with height and color info. Then outputs are generated as 3D visualization and raw results data for the robot's input. This is done using the OpenCV library for processing the map images, and the PyVista library for the 3D visualization of the given maps. The results of the image processing steps are then transferred over to the robot via Arduino serial connection. The task of the crane robot built by the MCH sub-team is to input the result data generated by us and autonomously build the small scale city by placing cylinders at correct positions to replicate the initial map image.

For more details you can check the "3.1.5 - Implementation" section on page 46 of the "Project Report.pdf" file.

How it works

Screenshot1

Screenshot2

Demo Preview

GIF Output

(Click on GIF below to play)

Screenshot3

3D Visualization Freeview + Coordinates Text Output Screenshot4

Zoomed View from the Freeview Screenshot4

Installation

Install required Python libraries with the following pip command:

pip install pyvista opencv-python numpy pytesseract webcolors pyserial

Usage

  • You can change the input map image by changing to the desired image name from line 27.
image_path  = os.path.join(project_folder, 'maps', 'map0.png')

In the maps folder there are several maps you can choose from. You can also use the included "LargeCircularMapBase.psd" file to create your custom map with Adobe Photoshop.

  • By default, the Arduino serial passthrough is disabled. The outputs are the 3D visualization in either freeview or as GIF output, along with a TXT output with coordinates. If you also want to pass the data to Arduino via serial connection, you can uncomment the section of code between lines 98-112. In this case if an Arduino is not connected to the PC you will get an error.

mapimage2robot's People

Contributors

utaysi avatar

Watchers

 avatar  avatar

Forkers

hiamsevval

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.