Git Product home page Git Product logo

ryanrizzo96 / industrial-path-planning-application Goto Github PK

View Code? Open in Web Editor NEW
5.0 1.0 1.0 827 KB

Application was built as part of an Engineering Project. A line-following robot capable of transporting material to machines on a shop floor. The robot will be able to: Scan the shop floor for machinery. Detect obstacles in it's path. Find the shortest route to the machine that is low on material. Allows user to enter a diagrammatic representation of the shop-floor.The application will process the image and come up with the shortest possible route. Commands sent to the robotic system allowing it to navigate to the machine.

License: Creative Commons Zero v1.0 Universal

CSS 1.86% C++ 5.26% HTML 3.91% JavaScript 88.96%
robot shortest-path dijkstra-algorithm javascript electron threejs shortest-path-algorithm routing industrial-automation shop-floor graph

industrial-path-planning-application's Introduction

map_project

Application was built as part of an Engineering Project. A line-following robot capable of transporting material to machines on a shop floor. The robot is able to: Scan the shop floor for machinery. Detect obstacles in it's path. Find the shortest route to the machine that is low on material. Allows user to enter a diagrammatic representation of the shop-floor.The application will process the image and come up with the shortest possible route. Commands sent to the robotic system allowing it to navigate to the machine.

On launching the application, the user is presented with an area to enter the map information, mainly consisting of nodes and edges. Several buttons with different functionalities were imple-mented to increase the overall functionality of the application while making it easier for the user to use.

The following are the button descriptions successfully implemented:

  1. Rotate – Allows rotating of the 3D world space.
  2. AddHome – Adds a home machine.
  3. AddMachine – Adds a node or machine.
  4. Select Finish – Selects finishing point.
  5. Select Node – Allows manual connections of nodes to form graph edges.
  6. AddLine Vert – Adds a vertical line, simply for visual purposes.
  7. AddLine Hor – Adds a horizontal line, simply for visual purposes.
  8. Delete – Deletes nodes or lines.
  9. Generate Graph – Generates graph consisting of nodes, edges and edge weights. This but-ton must be pressed before running Dijkstra’s algorithm.
  10. Run Dijkstra – Dijkstra’s Algorithm is executed on the graph previously generated. It outputs the node numbers of the shortest route that the robot can travel.
  11. Find Path – Based on the result of Dijkstra’s algorithm it generate any of the four key words which the robot understands. These are ‘Forward’ to move forward, ‘Left’ to turn left, ‘Right’ to turn right and ‘End’ to terminate execution.

Figure 2 – Overview of application upon startup

image

The user then proceeds to construct a map of the shop floor as shown in Figure 18. This is an ex-ample of a basic map with six nodes in total including the start (0) and finish node (3).

image

As the user places nodes on the HTML5 canvas, whenever the mouse is clicked, the coordinates of the nodes are stored in memory to be utilised to construct a graph of the nodes, edges and edge weights. The distance from one node to another is also stored automatically.

If the user decides to request shortest path information, then Dijkstra’s Algorithm is executed and its output are the nodes that the robot has to travel to in order to get to the finish node as shown in the below figure. These are stored in an array where each array index holds a node value.

image

Once the correct nodes are displayed as the intended path for the robotic system, these are then converted into commands which the embedded C code can understand, such as ‘Forward’, ‘Left’ and ‘Right’. The below figure shows the correct path taken from node 0 to node 3. Once these commands are generated, they are sent via Bluetooth to the robotic system.

image

electron-quick-start

Clone and run for a quick way to see Electron in action.

This is a minimal Electron application based on the Quick Start Guide within the Electron documentation.

Use this app along with the Electron API Demos app for API code examples to help you get started.

A basic Electron application needs just these files:

  • package.json - Points to the app's main file and lists its details and dependencies.
  • main.js - Starts the app and creates a browser window to render HTML. This is the app's main process.
  • index.html - A web page to render. This is the app's renderer process.

You can learn more about each of these components within the Quick Start Guide.

To Use

To clone and run this repository you'll need Git and Node.js (which comes with npm) installed on your computer. From your command line:

# Clone this repository
git clone https://github.com/electron/electron-quick-start
# Go into the repository
cd electron-quick-start
# Install dependencies
npm install
# Run the app
npm start

Note: If you're using Linux Bash for Windows, see this guide or use node from the command prompt.

Resources for Learning Electron

License

CC0 1.0 (Public Domain)

industrial-path-planning-application's People

Contributors

ryanrizzo96 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Forkers

falexandru18

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.