Giter VIP home page Giter VIP logo

artoo-mazesolver's Introduction

Artoo Adaptor For Mazesolver

This repository contains the Artoo (http://artoo.io/) adaptor for Mazesolver.

Artoo is a open source micro-framework for robotics using Ruby.

For more information about Artoo, check out the repo at https://github.com/hybridgroup/artoo

About Mazesolver

Mazesolver provides an Artoo interface to a virtual robot. It was developed as a coding exercise for the Austin RB group in support of the August 2013 meeting to teach how to use the framework, demonstrate how to generate new adaptors for Artoo, and extend the adaptor to support additional commands and events.

Mazesolver Commands and Events

Commands

The Artoo driver provides access to the following commands for the Mazesolver:

:up, :down, :left, :right, :current_pos

Events

The Mazesolver queues messages for blocked moves and when the maze is solved. The driver publishes these messages for use in defined work processes:

on mazesolver, :solved => proc { puts "Win!" }
on mazesolver, :blocked => proc { puts "Try another direction." }

The Coding Exercise

Using the Artoo DSL, create a definition for a Mazesolver robot that

  • Randomly performs a direction command until the maze is solved
  • Announce the position of the Mazesolver as it proceeds through the maze
  • Announce blocked and solved messages

The basic result of this exercise is an inefficient robot. The following suggestions for the Mazesolver can improve its performance

  • Add historical position tracking and avoid repeat failed moves
  • Add a look command to return available paths before performing a direction command

A final set of improvements for the exercise include

  • Add dynamic maze generation
  • Add visual representation of the solver in the maze
  • Use the modular style of Artoo to add multiple solvers and race them!

Known problems

Some users had a problem when running artoo like artoo start my_robot.rb and the environment not including the artoo-mazesolver in their gem path. If this happens for you, run the command with bundle exec

Acknowledgements

I want to thank Ron Evans for creating Artoo, Tim Tyrell for the opportunity to talk to Austin RB, the Austin RB group for doing the exercise and showing me all their great implementations, and Eric Wood for providing a visual progress interface for this project. Also, thanks to Sharon Cichelli and the folks at Austin Polyglot Programmers for hosting my encore presentation

artoo-mazesolver's People

Contributors

mikejford avatar

Stargazers

 avatar  avatar  avatar

Watchers

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