Behavior-Based Robots Bert G. Wachsmuth Seton Hall University.

Slides:



Advertisements
Similar presentations
7.1. O SCARS & A RTIFICIAL I NTELLIGENCE Interim awards and introduction to game AI.
Advertisements

Elephants Don’t Play Chess
VEX and Robot C Chris Patterson Presented by Modified by J. Andazola.
Artificial Intelligence in Game Design Introduction to Learning.
A Summary of the Article “Intelligence Without Representation” by Rodney A. Brooks (1987) Presented by Dain Finn.
Engineering H193 - Team Project Gateway Engineering Education Coalition P. 1 Spring Quarter 2008 Robot Programming Tips Week 4 Day 2 By Matt Gates and.
The Turtle Laboratory Sequence Myles McNally LMICSE Workshop November , 2004 University of Mississippi.
The Turtle Laboratory Sequence LMICSE Workshop August , 2006 Villanova University.
The Turtle Laboratory Sequence LMICSE Workshop June , 2005 Alma College.
Autonomous Mobile Robots CPE 470/670 Lecture 8 Instructor: Monica Nicolescu.
Unit 171 Algorithms and Problem Solving - II Algorithm Efficiency Primality Testing Improved Primality Testing Sieve of Eratosthenes Primality Testing.
Introduction to mobile robots Slides modified from Maja Mataric’s CSCI445, USC.
Behavior- Based Approaches Behavior- Based Approaches.
A Robust Layered Control System for a Mobile Robot Rodney A. Brooks Presenter: Michael Vidal.
DAMN : A Distributed Architecture for Mobile Navigation Julio K. Rosenblatt Presented By: Chris Miles.
Behavior-Based Artificial Intelligence Pattie Maes MIT Media-Laboratory Presentation by: Derak Berreyesa UNR, CS Department.
Chuang-Hue Moh Spring Embodied Intelligence: Final Project.
LEGO Mindstorms NXT Programming We will be using the Common Palette for our Robots This is how you download your program onto the brick Drag and drop a.
Study of noise readings in infrared sensors and their effect in the Khepera Miniature Robot’s performance Saúl J. VegaDaisy A. Ortiz Advisor: Raúl E. Torres,
Java for Robots How to program an NXT robot with a Java Brain Bert G. Wachsmuth Seton Hall University.
Artificial Intelligence Chapter 2 Stimulus-Response Agents
Robotics- Basic On/Off Control Considerations. On/Off Control Forms the basis of most robotics operations Is deceptively simple until the consequences.
Department of Computing and Information Sciences Kansas State University Design Methodology for State based Embedded Systems Case Study: Robot Controller.
Behavior Based Robotics: A Wall Following Behavior Arun Mahendra - Dept. of Math, Physics & Engineering, Tarleton State University Mentor: Dr. Mircea Agapie.
Robotica Lecture 3. 2 Robot Control Robot control is the mean by which the sensing and action of a robot are coordinated The infinitely many possible.
ROBOTICS VOCAB AND FLOWCHARTING. ROBOTICS VOCABULARY Robot- a machine capable of carrying out a complex series of actions automatically, especially one.
Robotica Lecture 3. 2 Robot Control Robot control is the mean by which the sensing and action of a robot are coordinated The infinitely many possible.
The Daikon system for dynamic detection of likely invariants MIT Computer Science and Artificial Intelligence Lab. 16 January 2007 Presented by Chervet.
Behavior Programming. Structured Programming A series of if-thens Easy to get started in and hardly requires any thought or design beforehand But the.
CS 1 with Robots Behavior Based Control Institute for Personal Robots in Education (IPRE)‏
Department of Computing and Information Sciences Kansas State University Design Methodology for State based Embedded Systems Case Study: Maze Navigator.
Computer Control.
University of Windsor School of Computer Science Topics in Artificial Intelligence Fall 2008 Sept 11, 2008.
Response actuatorcontrol program analog quantity, e.g. pulse train digital quantity, e.g. power % interface stimuli sensorcontrol program analog quantity,
Artificial Intelligence in Game Design Complex Steering Behaviors and Combining Behaviors.
Behaviour-Based Control in Mobile Robotics
Comp Sojourner 1996 MIT Kismet Honda Asimo 2003 NavLab (CMU) Why Study Robots now?
Rascalbot EEL4665 Eric Page. Problem Dogs have been shown to increase the happiness and well being of their owners Keeps elderly active Many people are.
Braitenberg Vehicles. A little history… Valentino Braitenberg (born 1926) is a cyberneticist and former director at the Max Planck Institute for Biological.
Robotica Lecture Review Reactive control Complete control space Action selection The subsumption architecture –Vertical vs. horizontal decomposition.
Brooks’ Subsumption Architecture EEL 6838 T. Ryan Fitz-Gibbon 1/24/2004.
Subsumption Architecture and Nouvelle AI Arpit Maheshwari Nihit Gupta Saransh Gupta Swapnil Srivastava.
Dr Nick Mitchell (Room CM 224)
Oregon Robotics Tournament and Outreach Program RCX Basics.
Artificial Intelligence in Game Design Lecture 8: Complex Steering Behaviors and Combining Behaviors.
Rescue Robot Day 2 Exploring Computer Science Lesson 6-11.
Recursion. Recursive Methods  A recursive method is a method that calls itself.  General Form of Simple Recursive Methods  Every recursive method has.
VEX and Robot C Chris Patterson Frisco ISD CTE Center Presented by.
Obstacle Detection. In the previous program the robot moves forward and then checks for something in the way. As we observed it only checks for things.
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.
Team 1617: Autonomous Firefighting Robot Katherine Drogalis, Electrical Engineering Zachariah Sutton, Electrical Engineering Chutian Zhang, Engineering.
Introduction to Robots and the Mind - Programming with Sensors - Bert Wachsmuth & Michael Vigorito Seton Hall University.
Introduction to Robots and the Mind - Sensors - Bert Wachsmuth & Michael Vigorito Seton Hall University.
Python Programming Module 4 Sensors and Loops Python Programming, 2/e1.
Robotics Training For The Riverside Robotics Society
Sensors Control Systems with Flowol.
IMDL Summer 2007: RoBeDeS by David Ladolcetta.
Introduction to Robots and the Mind - Methods -
Sensors and Logic Switches
CIS 488/588 Bruce R. Maxim UM-Dearborn
CIS 488/588 Bruce R. Maxim UM-Dearborn
Robotics and EV3 - Behavior-Based Robots -
Robotics and EVT - line follower -
Line Following Behavior
Subsuption Architecture
Obstacle Detection.
Oregon Robotics Tournament and Outreach Program
Exploring Computer Science Lesson 6-11
Chapter 12: Building Situated Robots
Presentation transcript:

Behavior-Based Robots Bert G. Wachsmuth Seton Hall University

Classical Robotics Internal Representation of real world Lots of state variables Elaborate algorithms for decision making Requires a lot of memory Can be slow in reacting to sensor input Requires outside intelligence, planning, and foresight => “Strong AI”

Behavior-Based Robotics Based on work in the 1980s at MIT by Professor Rodney Brooks:"Planning is just a way of avoiding figuring out what to do next“ Decompose problem into many “simple” behaviors Strategy taken from the insect world: Insects have very little memory They do not remember things from the past They can not be trained (not Pavlov’s dog) Rely on sets of simple behavior Behavior rules are hard-wired (not leaned) Many simple behaviors can work together to appear complex => “Weak AI”

Behavior-Based Robotics Firefighting robot behaviors: Seek heat – if temperature differential is detected, move towards areas of increased temperature Extinguish flames – if open flame is detected, spray CO 2 Avoid damage – if heat is above 300 degrees, move away Remain alive – if power source drops below certain level return to base and recharge

Behavior-Based Robotics Behavior is associated with a condition, an action, and a priority: BehaviorConditionActionPriority Seek heattemperature differential detected move towards increased temperature low Extinguish flames open flame detected spray CO2medium Avoid damageheat above 300 degrees move awayhigh Remain alivepower source drops below certain level return to base and recharge highest

Subsumption Architecture Decompose complex behavior into smaller, simpler behaviors Establish conditions when each simple behavior kicks in Establish priorities in case two behaviors want to act simultaneously (only one behavior is allowed at each time) Define points of suppression to stop a behavior if another wants to take over Use an arbitrator to manage behaviors and to decide whose turn it is

Subsumption Architecture Touch Sensor Ultrasonic Sensor Temperat. Sensor Light Sensor Collision reaction Avoid obstacles Spray CO2 Drive towards light Motors Fire Extinguisher = Point of Suppression

LeJOS Subsumption Architecture LeJOS supports behavior-based robots by defining two frameworks: Behavior Defines a single behavior, when it kicks off, and what should be done to suppress it Arbitrator Decides which behavior should act based on priority and the triggers for individual behaviors

LeJOS Subsumption Architecture Behavior Method takeControl to decide when this behavior should kick in Method action to define what should happen while this behavior is active Method supress to define what to do when this behavior is being supressed Arbitrator Defines an array of possible behaviors, sorted by priority A start method to start the arbitration process

Defining a Behavior Each behavior is defined in a separate class (no main method), such as: import lejos.subsumption.*; public class BehaviorDrive implements Behavior { public BehaviorDrive() // initializer (same name as class name) {} public void action() // what to do {} public void suppress() // how to stop doing it {} public boolean takeControl() // when to start doing it { return false; }

Defining the Arbitrator import lejos.subsumption.*; public class BehaviorRobot { public static void main(String args[]) { Behavior drive = new BehaviorDrive(); Behavior collision = new BehaviorCollision(); Behavior attack = new BehaviorAttack(); Behavior behaviors[] = { drive, attack, collision }; Arbitrator arbitrator = new Arbitrator(behaviors); arbitrator.start(); }

Yielding to the Arbitrator The arbitrator needs to check on the behaviors while a behavior is active Behavior and arbitrator run as separate threads A behavior should not hog computing cycles but yield to other threads that might run simultaneously Action method needs to call “Thread.sleep(#)” and/or “Thread.yield()”