CIS 488/588 Bruce R. Maxim UM-Dearborn

Slides:



Advertisements
Similar presentations
Sensor Based Planners Bug algorithms.
Advertisements

1 CO Games Development 2 Week 22 Flocking Gareth Bellaby.
Flocking References: xxx.
Artificial Intelligence in Game Design Intelligent Decision Making and Decision Trees.
Searching Kruse and Ryba Ch and 9.6. Problem: Search We are given a list of records. Each record has an associated key. Give efficient algorithm.
Chapter 12: Expert Systems Design Examples
Artificial Intelligence in Game Design Hierarchical Finite State Machines.
Steering Behaviors For Autonomous Characters
Intelligent Pac-Man Ghost AI
Tactical AI in Real Time Supervisor: Aleks Jakulin Crew: Damir Arh, Matija Jekovec, Mitja Luštrek Gregor Leban, Martin Žnidaršič, Uroš Čibej Translation:
10-1 Programming Remember: –programming language –how to program (conceptually) –intro to programming the “ROBOT” computer In this lecture: –programming.
Sage CRM Developers Course
1 CO Games Development 1 Week 5 Deriving a "look at" function + Graph Theory Gareth Bellaby.
Note: 90% of the driving task is visual!
Vehicle Balance Weight Shifts Change Vehicle Balanced DROPS Front LIFTS Rear T – 2.28 Topic 4 Lesson 2 Accelerating, braking, or steering shifts the vehicle’s.
Artificial Intelligence in Game Design Complex Steering Behaviors and Combining Behaviors.
Driving in City Traffic.  This chapter discusses the skills necessary to navigate driving situations in city traffic.
REFERENCES: FLOCKING.
Finite State Machines (FSM) OR Finite State Automation (FSA) - are models of the behaviors of a system or a complex object, with a limited number of defined.
Artificial Intelligence in Game Design Lecture 8: Complex Steering Behaviors and Combining Behaviors.
Introduction To Defensive Driving  S.I.P.D.E. and “The Smith System” have been two key components of defensive driving for over 25 years.  Drivers who.
3/14/20161 SOAR CIS 479/579 Bruce R. Maxim UM-Dearborn.
Right-of-Way DE 5b. What is Right-of-Way? Letting others go first. NEVER assume that you automatically have the right-of-way. Right-of-way is always given.
Week 4 Team ECHO “Megatron”. Main() Megatron orient itself facing east, activation of all systems Start sweep: Start sweep: Wall following using proximity.
Team Member AI in an FPS and Goal Oriented Action Planning.
Project Overview Introduction & Product Analysis
VEX IQ Curriculum Smart Machines Lesson 09 Lesson Materials:
Section 8: Model-View-Controller
GC 211:Data Structures Week 2: Algorithm Analysis Tools
CSE373: Data Structures & Algorithms Lecture 6: Hash Tables
Hashing - Hash Maps and Hash Functions
Section 8: Model-View-Controller
Enemy and Friendly AIs Richard Gesick.
Knowledge Representation and Reasoning
A theory on autonomous driving algorithms
Lecture 9: Behavior Languages
IMDL Summer 2007: RoBeDeS by David Ladolcetta.
Knowledge Representation
CIS 488/588 Bruce R. Maxim UM-Dearborn
CO Games Development 2 Week 19 Extensions to Finite State Machines
CIS 488/588 Bruce R. Maxim UM-Dearborn
Obliterator Jose Noriega.
CSE373: Data Structures & Algorithms Lecture 14: Hash Collisions
Concept Generation and Evaluation
Steering Behaviors GAM 376 Robin Burke Fall 2006.
CIS 488/588 Bruce R. Maxim UM-Dearborn
Analysis and Understanding
CSE373: Data Structures & Algorithms Lecture 14: Hash Collisions
Designing Intelligence
CIS 487/587 Bruce R. Maxim UM-Dearborn
CIS 488/588 Bruce R. Maxim UM-Dearborn
CIS 488/588 Bruce R. Maxim UM-Dearborn
Decision Trees and Voting
CIS 488/588 Bruce R. Maxim UM-Dearborn
CIS 488/588 Bruce R. Maxim UM-Dearborn
Technical Implementations
CIS 488/588 Bruce R. Maxim UM-Dearborn
CIS 488/588 Bruce R. Maxim UM-Dearborn
Lesson Plan Day 4 >Chapter 7- Power Point > Driver’s education notes: Steering straight backward, Changing lanes, Hand over hand steering, Push Pull steering,
CIS 488/588 Bruce R. Maxim UM-Dearborn
Chapter 2: Operating-System Structures
Magnet & /facet Zheng Liang
Introduction to Operating Systems
CIS 488/588 Bruce R. Maxim UM-Dearborn
Data Structures & Algorithms
Intermediate Code Generation
Disk Scheduling The operating system is responsible for using hardware efficiently — for the disk drives, this means having a fast access time and disk.
Introduction to Residential Wind Energy
Chapter 2: Operating-System Structures
Lecture-Hashing.
Presentation transcript:

CIS 488/588 Bruce R. Maxim UM-Dearborn RBS Tutorial CIS 488/588 Bruce R. Maxim UM-Dearborn 12/6/2018

Breaker Capabilities Obstacle avoidance Pursuit Evasion Weapon selection based on situation Prediction of enemy movement Basic aiming and firing at targets Tactical reasoning 12/6/2018

Technology Second-generation RBS Declarative XML rules Boolean symbols used to represent rules Conflict resolution based on rule ordering Rule interpreter written in C++ Rules loaded using lightweight XML interpreter C++ STL templates used extensively (e.g. vector and map) 12/6/2018

Principles Rule-base systems can emulate other AI system types Breaker RBS emulates a finite state machine Rules will be used to model the FSM control system, not directed graphs 12/6/2018

How can we execute animat behaviors in parallel if rules are fired one at a time? Allow the interpreter to fire all applicable rules during each match cycle. Rule priorities become irrelevant under this option This will increase the complexity of most rule conditions No execution preconditions can be used since the interpreter does not stop at the first match All rule assumptions must be written explicitly 12/6/2018

How can we execute animat behaviors in parallel if rules are fired one at a time? Make the system use effectors that have persistent effects over time, rather than only instantaneous actions. This reduces the responsiveness of the system When one body part get control over the system the others will need to wait for the next match cycle Tracking the states of the effectors involves techniques that are better suited to FSM’s 12/6/2018

How can we execute animat behaviors in parallel if rules are fired one at a time? Separate rulebase in to chunks, each of which controls only one body part This techniques is called decomposition by control Only problem is “what’s the best way to split up the rulebase so that it is easy to manage?” The implementation of this requires the use of context variables in the rules (e.g. context limiting conflict resolution) Using a tree structure to store rules so that only rules for active chunks are considered 12/6/2018

Senses Used to gather environment information when requested by the RBS Functions are defined to retrieve data via the world interfaces and convert it to Boolean symbols for WM storage Most functions defined in Brain.h as in-line functions 12/6/2018

Sensors Used - 1 Left Obstacle, Front Obstacle, Right Obstacle Returns true if way is clear Detects walls, ledges, and steep ridges Collision Returns true if collision will move requested is to an occupied space Enemy, Health Item, Armor Item Returns true if presence of object is within animat’s field of view 12/6/2018

Sensors Used - 2 Close, Far Low Health, Full Health, Full Armor Enemy close < = 10 steps away Enemy far > 20 steps Low Health, Full Health, Full Armor Animat personal attributes Low values < 30% Full values = 100% 12/6/2018

Actions Allow RBS to apply its decision by controlling the animat’s body Functions implemented in both Brain.h and Brain.cpp Actions are grouped into chunks based on body part they control Actions for looking around and bouncing off obstacles cannot be implemented using a symbolic RBS 12/6/2018

Movement Actions Forward Seek Flee Side Avoid Move in direction body is facing Seek Head toward enemy Flee Move away from enemy Side Take lateral step (use as strafing motion) Avoid Move in direction of collision normal if obstacle hit 12/6/2018

View Control Actions Look Left Look Right Look Behind Rotate View –30% Look Right Rotate view +30% Look Behind Rotate view 90+ degrees left or right Look to Enemy/Health/Armour Turn to face enemy in field of view Look Around Rotate view 12/6/2018

Weapon Control Actions Use Weapon Select one of four weapons (rocket launcher, railgun, chaingun, hyperblaster) Fire Pull trigger on current weapon 12/6/2018

Action Chunk Rules Internal symbols are set so that other rules can check them and decide what to do The order of the first two rules is not important IF enemy AND health_low THEN retreat IF enemy AND NOT distance_close THEN pursue IF enemy THEN dodge IF true THEN NOT retreat AND NOT pursue AND NOT dodge 12/6/2018

Movement Chunk Rules Rule order is very important, obstacle avoidance has highest priority By default animat moves forward with travel directed by view control in later chunk IF collision AND enemy THEN move_avoid IF retreat THEN move_flee IF pursue THEN move_seek IF dodge THEN move_side IF true THEN move_forward 12/6/2018

Weapon Chunk Rules Decisions are based on distance only Each rule has to symbols so that a backup weapon is selected when one is out of ammo Weapons with C++ effectors declared last have priority over previous ones for ties IF enemy AND distance_far THEN use_rocketlauncher AND use_railgun IF enemy AND NOT distance_far THEN use_chaingun AND use_hyperblaster 12/6/2018

View Control Chunk Rules - 1 First rule forces animal to turn toward enemy and fire whenever possible IF enemy THEN look_enemy AND fire Next three rules focus on collision prevention IF obstacle_front AND obstacle_left AND obstacle_right THEN look_behind IF obstacle_front AND obstacle_left THEN look_right IF obstacle_front AND obstacle_right THEN look_left 12/6/2018

View Control Chunk Rules - 2 These rules gather armor and health items if they are required IF NOT health_full AND health_item THEN look_health IF NOT armor_full AND armor_item THEN look_armor Allow for wandering IF true THEN look_around 12/6/2018

Breaker Let’s view the demo Author recommends disabling firing rule to make the end more quickly 12/6/2018

Evaluation - 1 Weapon selection is satisfactory, except that weapons are swapped when two players get close to each other Collision detection is not perfect (would be better to use dead reckoning based on physics information) Animat only collects health and armor items by design, weapons and ammo only collected by accident 12/6/2018

Evaluation – 2 Obstacle sensors only check a few steps ahead and animats travel at full speed (so animats occasionally fall off of ledges) Worse then that animat spins in the air trying to avoid all obstacles on the way down (more realistic without spinning) 12/6/2018

Evaluation - 3 Using only Booleans in WM limits our RBS somewhat (e.g. it can’t even count) Large arrays of symbols are not searched efficiently (O(N) on the average) Rule matching with the separate chunks is also O(N) All symbols must be declared before the rules are loaded 12/6/2018

Conclusion RBS are flexible and potentially powerful RBS capable of both low-level control and decision making Rules are modular so adding new rules is fairly easy Because they are data driven, they can be light weight alternatives to scripting languages for some situations 12/6/2018