GithubHelp home page GithubHelp logo

asierzd / hanoitowersabbrobot Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 165 KB

Implementation of a solution to the Hanoi Towers Problem using an ABB robot and programmed in RAPID language.

License: GNU General Public License v3.0

AMPL 100.00%
abb abb-robot abb-robotstudio hanoi-towers pick-and-place rapid recursion

hanoitowersabbrobot's Introduction

HanoiTowersABBRobot

Implementation of a solution to the Hanoi Towers Problem using an ABB robot (IRB120_3_58) and programmed in RAPID language using recursion, for the robot programming subject of my robotics MSc.

Hanoi Towers model

Dependencies

  • ABB RobotStudio 2023.2 version.
  • ABB RobotStudio premium license (there is a month trial for free).
  • RobotWare 6.10.01

Implementation

  • Tool with the geometry provided by RobotStudio.
  • Intelligent tool 'AspiradorInteligente', for the Pick and Place of the disks, as a vacuum gripper tool.
  • Station logic, creating the necessary digital signals to communicate the robot controller and our intelligent tool.
  • Hanoi Towers problem implemented using recursion, available in the 'Module1.mod' file.

Intelligent Tool

  • Intelligent tool components and logic: I have developed with geometry the piece with a cone, two cylinders and performed the subtraction operation in order to have a small hole in the tip to simulate the shape of the vacuum gripper. Then, it has to be used this piece to create a tool, and with this new tool, it has to be used for creating the smart component, with a Line Sensor for detecting the disks, an Attacher for holding the disks, a NOT Logic Gate, an Dettacher for placing the disks on each tower, and a Logic SR Latch, as you can see in the following figure.

Intelligent Tool

  • Station logic: In order to be able to communicate our intelligent tool (the vacuum gripper), we need to communicate them using signals, it is needed to create at least two signals in our controller, holding as a Digital Input, and hold as a Digital Output, which will be connected as follows in the next figure with the input and output of the intelligent tool.

Station Logic

RAPID Program

My implementation basically consists in the use of the classical recursion solution, it is a general solution, so if you want to add more disks, you can place more in the first tower and change the variable N with the total number of disks to solve the problem.

However this solution is adapted to use my intelligent tool with the previously created digital signals, and taking into account six possible moves for the disk picked depending on where the disk has to be picked and where it has to be placed.

Another consideration about my implementation, is that it also takes into account the number of disks for each iteration with three global variables that count the number of disks in each tower.

The code can be visuallized in the 'Module1.mod' file.

License

GPL-3.0

hanoitowersabbrobot's People

Contributors

asierzd avatar

Stargazers

 avatar  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.