May 19, 2012 Lloyd Moore, President/Owner Just kidding – next slide please!

Slides:



Advertisements
Similar presentations
Heuristic Search techniques
Advertisements

BackTracking Algorithms
CSE 380 – Computer Game Programming Pathfinding AI
Where In The World? GPS Instruction For Teachers By: Krissy Vaux & Mark McBride Tri-Valley H.S. Downs, IL STARS April 8, 2005.
A 296 MicroMouse project By Brian Kuriyama. Profit!
Best-First Search: Agendas
Autonomy using Encoders Intro to Robotics. Goal Our new task is to navigate a labyrinth. But this time we will NOT use motor commands in conjunction with.
Algorithm Strategies Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
1 Introduction to Computability Theory Lecture12: Decidable Languages Prof. Amos Israeli.
Engineering H193 - Team Project Gateway Engineering Education Coalition P. 1 Spring Quarter 2008 Robot Programming Tips Week 4 Day 2 By Matt Gates and.
Programming Fundamentals (750113) Ch1. Problem Solving
Routing 2 Outline –Maze Routing –Line Probe Routing –Channel Routing Goal –Understand maze routing –Understand line probe routing.
Backtracking.
Linear Inequalities in Two Variables
Introduction Solving inequalities is similar to solving equations. To find the solution to an inequality, use methods similar to those used in solving.
SuperCorners. Problem The Corners sample robot has a simple strategy: first, move into a corner of the arena, and second sweep the gun back and forth.
BEGINNER PROGRAMMING Lesson
ORTOP WORKSHOP 3 ROBOT NAVIGATION & MISSIONS ORTOP WORKSHOP 3 ROBOT NAVIGATION & MISSIONS.
Problem Solving and Mazes
1 CO Games Development 1 Week 6 Introduction To Pathfinding + Crash and Turn + Breadth-first Search Gareth Bellaby.
HANDLING FAILURES. Warning This is a first draft I welcome your corrections.
Wandering Standpoint Algorithm. Wandering Standpoint Algorithm for local path planning Description: –Local path planning algorithm. Required: –Local distance.
The George Washington University Department of ECE ECE Intro: Electrical & Computer Engineering Dr. S. Ahmadi Class 4.
1 Some Real Problem  What if a program needs more memory than the machine has? —even if individual programs fit in memory, how can we run multiple programs?
Castor Bot. Now, we will begin creating a robot Log onto your computer On your screen, click on the website labeled “castor bot” Your building instructions.
Title Slide Progress Report Name. Goal Goal Statement – ex. design/create/fabricate … - should be clear and short Needs/Problems – clear and short Space.
Software Development. Software Development Loop Design  Programmers need a solid foundation before they start coding anything  Understand the task.
Use source transformations to solve for the current i X. Problems With Assistance Module 4 – Problem 1 Filename: PWA_Mod04_Prob01.ppt Next slide Go straight.
1 Cognitive Modeling GOMS, Keystroke Model Getting some details right!
ROBOTIC ARM 2 Wilmer Arellano © Hardware  Next slide shows sensor connection to analog pin 0 and Motor 1 connection. Lecture is licensed under.
HBRC A-Mazing Challenge Line Maze, Phase I, II, III.
M1G Introduction to Programming 2 3. Creating Classes: Room and Item.
EV3 Software EV3 Robot Workshop
ROBOTC Software EV3 Robot Workshop
BEGINNER FLL PROGRAMMING WORKSHOP BY DROIDS ROBOTICS & EV3LESSONS.
ROBOTC Software EV3 Robot Workshop Lawrence Technological University.
Casne.ncl.ac.uk Taking care of the CrumbleBot Please do NOT stress the robot's motors 1.Do NOT push the robot 2.Do NOT hold the.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
Advanced issues in Robotics and Programming Dr. Katerina G. Hadjifotinou Experimental Junior High School of the University of Macedonia.
The George Washington University Department of ECE ECE Intro: Electrical & Computer Engineering Dr. S. Ahmadi Class 4.
Greedy Algorithms.
Robotics Training For The Riverside Robotics Society
Software Development.
Debugging Intermittent Issues
Background Shapes & Collision Resolution (Top-down and Side-scrolling)
Understanding Communication with a Robot? Activity (60 minutes)
An Introduction to VEX IQ Programming with Modkit
HBRC A-Mazing Line Maze Challenge
By Sanjay and Arvind Seshan
Debugging Intermittent Issues
Review and Ideas for future Projects
Movement using Shaft Encoders
Beginner Programming Lesson
BEGINNER PROGRAMMING Lesson
Programming Fundamentals (750113) Ch1. Problem Solving
An Introduction to VEX IQ Programming with Modkit
Theory of Computation Turing Machines.
Beginner Programming Lesson
Line Following Behavior
The George Washington University Department of ECE ECE Intro: Electrical & Computer Engineering Dr. S. Ahmadi Class 5.
Advanced Analysis of Algorithms
Beginner Programming Lesson
BEGINNER PROGRAMMING Lesson
Introduction Solving inequalities is similar to solving equations. To find the solution to an inequality, use methods similar to those used in solving.
Line Following Behavior
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
A General Backtracking Algorithm
Building Complex Behaviors: Actions and States
U3L4 Using Simple Commands
PID Line Follower.
Presentation transcript:

May 19, 2012 Lloyd Moore, President/Owner Just kidding – next slide please!

May 19, 2012 Lloyd Moore, President/Owner

Agenda  Rules review  Objects and Behaviors  Left hand rule, right hand rule  Remembering a path  Simplifying a path  Replaying a path  Software design and implementation Note: This presentation is based on previous work from Richard T. Vannoy II and is compatible with that presentation.

Line Maze Key Rules  See for complete rules!!!  “Track” is a ¼” black line on white background  Starting point marked with a “T”, ending point marked with a 6” circle  Dead ends not marked, line simply terminates  No loops!  All intersections are at right angles  3 Attempts to solve the maze, and can remember it  3 minute time limit for each run

Objects In Maze  Rules of the maze determine what objects we need to watch for in the maze:  Start Marker  Stop Marker  Line or Maze Path  Dead End  Turns  Intersections  “T” intersection  4-Way intersection  Straight or Left Intersection  Straight or Right Intersection  Goal of our program is to detect these objects while the robot runs the maze and make take the correct action in each case

Detecting Object Types  Each object type will show up as a different pattern on the reflective sensor  Sensors are analog and increase in value as more black appears, will basically want each sensor centered over one edge of the line.  Key is to look at BOTH sensors to make decisions  Some objects may appear similar on single scans, but keeping a history of prior readings can help sort this out (2-3 should be enough)  Once you know the object type you have for a particular point in time you can give it a name/symbol and use that to simplify making a decision, can also store these symbols in memory to remember / manipulate a path

Behavior for Each Object  For each movement interval the robot needs to decide what action to take for the next movement interval.  Fixed number of objects we know about, so fixed number of actions:  Start Marker –> Treat as dead end  Stop Marker –> Stop, you have completed the maze  Line or Maze Path -> Go straight, make centering corrections  Dead End -> Turn around and go back  Turns -> Follow the direction of the turn and re-center  For the most part these can be ignored, just follow the line  Intersections -> Pick a direction to explore and store it, execute a turn  “T” intersection  4-Way intersection  Straight or Left Intersection  Straight or Right Intersection

Left Hand Rule  Comes from formal graph theory, but don’t need to worry about details here…. (Rumor has it this was the discovery that made PacMan possible!)  States that when given a 3 way choice over which way to go if you choose left first, then straight, then right you are GUARANTEED to cover the whole maze!

Right Hand Rule  Fundamentally the same as the Left Hand Rule  Just pick one and stick with it!

Remembering A Path  Basically remembering which action/behavior you took at each intersection  Only need to remember turns as those are the only points where you have choices  Basic choices are:  Straight  Right  Left  U – turn, helpful for simplifying mazes

Remembering a Path  Path is just a series of turns!  Don’t need to worry about distances between turns at this point as we don’t have any loops in the maze!  We set up symbols for each decision (S,U,L,R)  Just store these in a string or memory buffer:  “SRRULR”  Now you can replay and manipulate the path when you start from the same point and use the memory buffer to select which behavior / action to take at each decision point!

Simplifying a Path  Basically amounts to removing “backtracking” in the stored path.  Remember we have NO LOOPS in the maze  Because of this each instance of “backtracking” will be marked by a dead end or “U” symbol in the path  Typical path stored in memory: “….RSUL”  If you draw this out graphically “SUL” really means we went right at the last turn so replace “SUL” with “R” to simplify the path giving: “….RR” from the original path  Need to do this for all combinations

Replaying a Path  Fundamental concept here is to replace the Left / Right hand rule for deciding which path to take with recall from an optimized path  Instead of having to explore to find out if the end of the maze results from a given turn (exploration) it can simply recall the best known decision from memory (recall)

Software Design  General operation  Put bot down and start it  Bot runs around maze until either 3 minute time out happens or the end of the maze is found  During operation the bot has to determine which object it is looking at, then determine which behavior to use  Two key modes of operation  Exploration  Recall  Key difference is the mechanism used to map objects to behaviors  These two block will form the basic structure of the program!  Pseudo and example code available at:  Discussion and slides here designed to be compatible with this presentation.

Enhancements  Many enhancements that can be made once the basic program is working  More advanced path optimization, note since we have no loops currently only one solution will exist!  Ensure no movement delays from processing (should indicate a bug since processor is reasonably fast)  More line sensors for better control, and deeper processing of the analog signals  “Light skirt” to block stray light from coming in  Add encoders to measure distance, speed up on straight segments

Summary  Reviewed the rules for the Line Maze  Determined the objects and behaviors  Left/Right hand rule  Paths: Remembering, Simplifying, Playback  Software design  Enhancements to get better times!

References  Robothon Online Rules: p p  Others:  hm hm  algorithm.pdf algorithm.pdf 