CIS 488/588 Bruce R. Maxim UM-Dearborn

Slides:



Advertisements
Similar presentations
Heuristic Search techniques
Advertisements

7.2. AI E NGINE AND S TEERING B EHAVIOUR I Design of an AI Engine and introduction to steering in game AI.
7.3. S TEERING B EHAVIOUR II Steering behaviours in game AI.
Flocking and more.  NPC groups can move in cohesive groups not just independently ◦ Meadow of sheep grazing? ◦ Hunting flock of birds? ◦ Ants? Bees?
Steering Behaviors GAM 376 Robin Burke Winter 2008.
Flocks, Herds, and Schools: A Distributed Behavioral Model By: Craig Reynolds Presented by: Stephanie Grosvenor.
1 CO Games Development 2 Week 22 Flocking Gareth Bellaby.
Optimizing Flocking Controllers using Gradient Descent
Kristen Gardner. Outline Swarm Intelligence Flocking Basic Steering Swarms Applications Animals Vehicles People.
Flocking References: xxx.
Artificial Intelligence in Game Design Introduction to Learning.
Autonomous Mobile Robots CPE 470/670 Lecture 8 Instructor: Monica Nicolescu.
Integrating POMDP and RL for a Two Layer Simulated Robot Architecture Presented by Alp Sardağ.
CS274 Spring 01 Lecture 5 Copyright © Mark Meyer Lecture V Higher Level Motion Control CS274: Computer Animation and Simulation.
1cs426-winter-2008 Notes  Please read: C. Reynolds “Flocks, Herds, and Schools…” SIGGRAPH ‘87
Crowd Simulation Seminar ”Steering Behaviors For Autonomous Characters” By Craig W. Reynolds Rudi Bonfiglioli ( )
Single Point of Contact Manipulation of Unknown Objects Stuart Anderson Advisor: Reid Simmons School of Computer Science Carnegie Mellon University.
Steering Behaviors For Autonomous Characters
Games Programming III (TGP2281) – T1, 2010/2011 Movement AI John See 19, 26 Nov 2010.
1 Constant Following Distance Simulations CS547 Final Project December 6, 1999 Jeremy Elson.
1 Autonomous Foraging in a Simulated Environment.
Hybrid AI & Machine Learning Systems Using Ne ural Network and Subsumption Architecture Libraries By Logan Kearsley.
Flow Fields Hao Li and Howard Hamilton. Motivation for Flow Fields Multiple AI algorithms in a computer game can produce conflicting results. The AI must.
Using the Corridor Map Method for Path Planning for a Large Number of Characters Roland Geraerts, Arno Kamphuis, Ioannis Karamouzas, Mark Overmars MIG’08.
Department of Electrical Engineering, Southern Taiwan University Robotic Interaction Learning Lab 1 The optimization of the application of fuzzy ant colony.
Artificial Intelligence for Games Lecture 1 1 Minor Games Programming.
SE: CHAPTER 7 Writing The Program
Evolving Virtual Creatures & Evolving 3D Morphology and Behavior by Competition Papers by Karl Sims Presented by Sarah Waziruddin.
Artificial Intelligence in Game Design Cooperative Movement.
Boundary Assertion in Behavior-Based Robotics Stephen Cohorn - Dept. of Math, Physics & Engineering, Tarleton State University Mentor: Dr. Mircea Agapie.
Adrian Treuille, Seth Cooper, Zoran Popović 2006 Walter Kerrebijn
1 Game AI Steering Behavior & Group Movement ( 轉向行為 及 群體運動 )
Artificial Intelligence in Game Design Complex Steering Behaviors and Combining Behaviors.
Basic Steering of Game Agents Featuring Guest professors Stephen Sheneman & Michael Wilkens 1.
Behavior Control of Virtual Vehicle
REFERENCES: FLOCKING.
Behavior-based Multirobot Architectures. Why Behavior Based Control for Multi-Robot Teams? Multi-Robot control naturally grew out of single robot control.
Steering Animation 數位內容學院 遊戲開發研究班第一期 3D 圖學 沈育德 Edward Shen May 19, 2005.
Crowd Self-Organization, Streaming and Short Path Smoothing 學號: 姓名:邱欣怡 日期: 2007/1/2 Stylianou Soteris & Chrysanthou Yiorgos.
Artificial Intelligence in Game Design Lecture 8: Complex Steering Behaviors and Combining Behaviors.
CSCI 4310 Lecture 5: Steering Behaviors in Raven.
Learning for Physically Diverse Robot Teams Robot Teams - Chapter 7 CS8803 Autonomous Multi-Robot Systems 10/3/02.
Demonstration of Simple Movement using Python AI for Gaming 2013, SCU.
Build your own 2D Game Engine and Create Great Web Games using HTML5, JavaScript, and WebGL. Sung, Pavleas, Arnez, and Pace, Chapter 6 Examples 1,
Fundamentals of Computer Animation Controlling Groups of Objects (2)
Movement Logical and Artificial Intelligence in Games Lecture 3.
Review IMGD Engine Architecture Types Broadly, what are the two architecture types discussed for game engines? What are the differences?
Crowd Modelling & Simulation
Scientific Research Group in Egypt (SRGE)
Real-time Wall Outline Extraction for Redirected Walking
Artificial Intelligence in Game Design
CIS 488/588 Bruce R. Maxim UM-Dearborn
Teaching with Instructional Software
Driving in City Traffic
Steering Behaviors GAM 376 Robin Burke Fall 2006.
Analysis and Understanding
Roland Geraerts and Mark Overmars CASA’08
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
CIS 488/588 Bruce R. Maxim UM-Dearborn
Steering behaviours in game AI
CIS 488/588 Bruce R. Maxim UM-Dearborn
Lecture 24 Logistics Last lecture Today HW7 due today
CIS 488/588 Bruce R. Maxim UM-Dearborn
Lecture 24 Logistics Last lecture Today HW7 due today
Hiroki Sayama NECSI Summer School 2008 Week 2: Complex Systems Modeling and Networks Agent-Based Models Hiroki Sayama
Motion Planning for a Point Robot (1/2)
Chapter 12: Building Situated Robots
Presentation transcript:

CIS 488/588 Bruce R. Maxim UM-Dearborn Steering Behavior CIS 488/588 Bruce R. Maxim UM-Dearborn 12/5/2018

Alife Focuses on behavior of individual creatures that combine into complex pattern The interaction of simple patterns can create incredibly sophisticated simulations Alife can be used to simulate crowds in complex environments using streering behaviors This was the basis of Conway’s game of life 12/5/2018

Assumptions Steering behaviors assume the existence of a lower-level of the engine to handle locomotion The locomotion system processes each characters position and velocity When player stops pressing a key movement stops (heavy duty friction) In many games a key press is likely to control velocity and not acceleration In this chapter velocity persists and the AI applies an acceleration to effect steering 12/5/2018

Seeking and Fleeing Seeking Fleeing Pursuit Evasion Steering behavior moving creatures toward target Fleeing Steering behavior moving creatures away from target Pursuit Seeking a moving target Evasion Avoiding a moving target 12/5/2018

Enhancements - 1 Wandering Projecting Targets Make random behavior appear a little more purposeful Patterns should be slightly unpredictable, but not arbitrarily random Could accumulate steering values and filter them using the sin function (gives both + and – values) Projecting Targets Look ahead randomly for point where target is predicted to be and move there 12/5/2018

Seeking Implementation #compute velocity vector toward target desired_velocity = truncate(position_target,max_speed); #compute steering force steering_force = desired_velocity - velocity; Arrival behavior can be simulated by slowing down the velocity to something less than max_speed within some distance from target 12/5/2018

Fleeing Implementation // compute velocity vector toward target desired_velocity = truncate(position_target,max_speed); // compute steering force steering_force = - desired_velocity - velocity; 12/5/2018

Modeling Flocks There are additional steering components needed (e.g. alignment and cohesion) when modeling group behaviors These require position and orientation information for neighbors rather than surrounding obstacles 12/5/2018

Generalized Obstacle Avoidance function avoid_obstacles { project future position based on velocity if collision predicted project empty position away from collision compute turn to get to empty position } if obstacle is within critical distance determine braking force // slow or stop apply steering and braking forces 12/5/2018

Comments Application of steering and braking forces is easy since our interface outputs turn and move values The challenge is in acquiring the inputs used to determine future collisions This algorithm requires environment knowledge, intersection tests, collision normal forces, and location of nearby empty spaces This makes it unsuitable for implementation 12/5/2018

Updated Obstacle Avoidance - 1 function avoid_obstacles2 { check sensors for free space front, left, right if front collision predicted find furthest obstacle on right or left determine best side to turn toward compute turn to seek that free space } if front obstacle is within critical distance determine braking force // slow or stop 12/5/2018

Updated Obstacle Avoidance - 2 if obstacle on left adjust steering to step right if obstacle on right adjust steering to step left apply steering and braking forces } Implementing this involves simple translation to C++ and finding suitable parameters during experimentation phase 12/5/2018

Enhancements - 2 Forced Exploration Keep track of previous positions a flee from them Done using single vector (provenance)pointing toward last position Coefficients a + b = 1 provenance = a * previous + b * provenance 12/5/2018

Advantages - 1 Simplicity Reliability Predictability Efficiency Hard to find a simpler architecture Reliability Most situations can be identified requirements Predictability No ambiguity, each rule written explicitly Efficiency Very low computational overhead 12/5/2018

Disadvantages - 1 Local traps Testing Can still get stuck in corners, if it begins to turn one way and then decides the another way might be better Testing This approach requires extensive testing because there are so many parameters to play with 12/5/2018

Disadvantages - 2 Realism Scalability Robotic movement is not as smooth as it might be (local decisions are not integrated into a plan) Scalability Additional behaviors are added by adding additional lines of code and recompiling 12/5/2018

Marvin Uses obstacle sensors and steering behaviors to prevent collisions in a reactive fashion Uses chapter enhancements to improve its wandering behavior 12/5/2018