Data Structure for Behavior-Based Machine Learning/Path Planning Zachary Dawson 16-264 A: Humanoids 5/7/13.

Slides:



Advertisements
Similar presentations
Recursion vs. Iteration The original Lisp language was truly a functional language: –Everything was expressed as functions –No local variables –No iteration.
Advertisements

The LC-3 – Chapter 6 COMP 2620 Dr. James Money COMP
Repetition control structures
Fundamentals of Python: From First Programs Through Data Structures
CMPS 1371 Introduction to Computing for Engineers
Repetition: Definite Loops Alice. Repetition In many kinds of animations, especially simulations and games, some actions happen again and again. Example:
Character Setup Character Setup is the process of creating handles and controls for anything that a character animator will need to adjust in order to.
Quicksort COMP171 Fall Sorting II/ Slide 2 Introduction * Fastest known sorting algorithm in practice * Average case: O(N log N) * Worst case: O(N.
Insertion sort, Merge sort COMP171 Fall Sorting I / Slide 2 Insertion sort 1) Initially p = 1 2) Let the first p elements be sorted. 3) Insert the.
MAE 552 – Heuristic Optimization Lecture 6 February 6, 2002.
Merge sort, Insertion sort
Presented By: Huy Nguyen Kevin Hufford
Chapter 2: Design of Algorithms
Merge sort, Insertion sort. Sorting I / Slide 2 Sorting * Selection sort or bubble sort 1. Find the minimum value in the list 2. Swap it with the value.
More on RDT Robert John Walters. RDT – a reprise A Graphically based formal modelling language Models represented as diagrams (not text) Communications.
10 ThinkOfANumber program1July ThinkOfANumber program CE : Fundamental Programming Techniques.
Manufacturing Assembly Plan P Mechanical Spine Test Platform.
C How to Program, 6/e Summary © by Pearson Education, Inc. All Rights Reserved.
Loops and Switches. 1. What kind of blocks are these? 2. Name two kinds of controls that can be specified to determine how long a loop repeats. 3. Give.
GenSAS: Genome Sequence Annotation Server, a Tool for Online Annotation and Curation Dorrie Main, Taein Lee, Ping Zheng, Sook Jung, Stephen P. Ficklin,
Time-Constrained Flooding A.Mehta and E. Wagner. Time-Constrained Flooding: Problem Definition ●Devise an algorithm that provides a subgraph containing.
Recursion1 Stephen Cooper Wanda Dann Randy Pausch Barb Ericson Jan 2010 Recursion in Alice.
MrsBillinghurst. net A2 Computing A2 Computing Projects Game Animation in Pascal.
5.1 and 5.4 through 5.6 Various Things. Terminology Identifiers: a name representing a variable, class name, method name, etc. Operand: a named memory.
SWEN 302: AGILE METHODS Roma Klapaukh & Alex Potanin.
For Wednesday Read Weiss chapter 3, sections 1-5. This should be largely review. If you’re struggling with the C++ aspects, you may refer to Savitch, chapter.
1 Ch. 7 Recursion similar to iteration in that you repeatedly do a little bit of the task and then “loop” again and work on a smaller piece - eventually.
ASP.NET Programming with C# and SQL Server First Edition Chapter 3 Using Functions, Methods, and Control Structures.
Chapter 12 Recursion, Complexity, and Searching and Sorting
Representing and Using Graphs
Arrays An array is a data structure that consists of an ordered collection of similar items (where “similar items” means items of the same type.) An array.
1 CSC 222: Computer Programming II Spring 2004 See online syllabus at: Course goals:
CS2852 Week 2, Class 1 Today Generics (Section 051) Big-O runtime analysis Muddiest Point Lab Quiz Includes writing a method from ArrayList class (See.
Problem Solving using the Science of Computing MSE 2400 EaLiCaRA Spring 2015 Dr. Tom Way.
Data Structures Using C++ 2E Chapter 10 Sorting Algorithms.
Merge sort, Insertion sort. Sorting I / Slide 2 Sorting * Selection sort (iterative, recursive?) * Bubble sort.
18 April 2005CSci 210 Spring Design Patterns 1 CSci 210.
Data Structure Introduction.
CSCI-100 Introduction to Computing
1 Iterative Integer Programming Formulation for Robust Resource Allocation in Dynamic Real-Time Systems Sethavidh Gertphol and Viktor K. Prasanna University.
Title Slide Progress Report Name. Goal Goal Statement – ex. design/create/fabricate … - should be clear and short Needs/Problems – clear and short Space.
 In computer programming, a loop is a sequence of instruction s that is continually repeated until a certain condition is reached.  PHP Loops :  In.
1 CS 163 Data Structures Chapter 6 Function Calls and Recursion Herbert G. Mayer, PSU Status 6/1/2015.
Learning for Physically Diverse Robot Teams Robot Teams - Chapter 7 CS8803 Autonomous Multi-Robot Systems 10/3/02.
CSCI-383 Object-Oriented Programming & Design Lecture 17.
An Introduction to Programming Using Alice 2.2, Second Edition Chapter 7 Recursive Algorithms.
AP Computer Science Principles
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
Control Structures II Chapter 3
Data Structures Using C++ 2E
Computer Science Faculty
Loops and Switches Pre-Quiz
Learning to Program in Python
Unit# 9: Computer Program Development
Graph Paper Programming
Learning to Program in Python
Algorithm An algorithm is a finite set of steps required to solve a problem. An algorithm must have following properties: Input: An algorithm must have.
Register Pressure Guided Unroll-and-Jam
An Introduction to VEX IQ Programming with Modkit
Virtual-Time Round-Robin: An O(1) Proportional Share Scheduler
Computer Science Core Concepts
Introduction to Computer Science
Loops and Switches How Do You Make Loops and Switches? lesson > TeachEngineering.org Center for Computational Neurobiology, University of Missouri.
Wackiness Algorithm A: Algorithm B:
Reinforcement Learning Dealing with Partial Observability
Type Topic in here! Created by Educational Technology Network
CMPT 120 Lecture 16 – Unit 3 – Graphics and Animation
CMPT 120 Lecture 18 – Unit 3 – Graphics and Animation
SPL – PS1 Introduction to C++.
Presentation transcript:

Data Structure for Behavior-Based Machine Learning/Path Planning Zachary Dawson A: Humanoids 5/7/13

Goals  Develop a method in which a robot’s past experience can be applied to new situations, creating a finite number of behaviors  Create a data structure and algorithm that utilize this method  Implement this data structure and algorithm in Python

The Method  Get desired final state (target)  Check known behaviors  Execute behavior — OR—  Make behavior  Select known behavior that advances closest to target  Add to list of steps in new behavior  Repeat until target is achieved  Add new behavior to list of behaviors  Execute new behavior

Data Structure – Behavior  Parameters:  Instructions (array of other behaviors or primitives)  Primary functions:  __init__  makeBehavior  predict  execute

Data Structure – The Model  Parameters:  Canvas (Python)  State  Draw function  Validity check function  To do list  Functions:  __init__  draw  check  copymodel

Data Structure – Client Implementation  drawRobot  stateChecker (Ensures model’s state is valid)  *checkExisting (Checks to see if existing behaviors accomplish task. Not actually required for implementation to run)  stateCompareFn (Compares two states to see if they are the same)  Primitives  One for each controlled joint  Have maximum displacement in 1 time-step  Account for all physical limits of robot

Example of hierarchy of behaviors Move to target Move right/left Slide Adjust arm Rotate lower Rotate upper

Example instance of behavior class Behavior: move arm to far away target [move right, adjust arm, move right, adjust arm, move left] [slide, slide][rotate upper, rotate lower][slide, skip]

Algorithmic Implementation 1.Receive target (assume no known behavior gets to target) 2.Loop through existing behaviors and get predicted result 3.Select behavior with the predicted result closest to target 4.Add that behavior to the instructions for the new behavior 5.Repeat steps 2 through 4 until target is achieved 6.If program hangs (indicates that the distance from the target is the same in two iterations), pick a random behavior from the behavior list that does NOT have the closest predicted value 7.Once new behavior is made, add it to the list and execute

Algorithmic Implementation  On execute, instructions from behaviors are recursively added to a to-do queue in the model class so that the queue becomes a list of primitives and their target states. This enables animation by calling instructions from this queue at set time intervals  If an instruction is predicted to cause no change, it is skipped on the to-do list

Demonstration term.py

Assessment and Further Development  Developed new behaviors, to a finite extent  Reused behaviors where appropriate  With proper implementation of primitives, could accomplish any task  Terminated over-complex behaviors early  Reduce runtime of predict  Introduce automatic loop creation  Test on system with more parameters  Use sensor based system (do not assume location of everything is exactly known)

Questions?