1 / 24

Raven

Raven. A Multi-Agent Simulation System. Gamer Amateur Singer Tinkerer Avid Reader Bowler. Senior-level CS Student Software Developer of 5 years Develop large, multi-user data synchronization and collaboration systems

pbenedict
Télécharger la présentation

Raven

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Raven A Multi-Agent Simulation System

  2. Gamer Amateur Singer Tinkerer Avid Reader Bowler Senior-level CS Student Software Developer of 5 years Develop large, multi-user data synchronization and collaboration systems  Big challenges include database storage and retrieval of mass amounts of information Image Analysis and Georectification  Who Am I?

  3. Raven

  4. What is Raven? Raven is a simulation system that is used as: A Teaching Tool An AI test bedLarge multi-contributor system

  5. Extended base model with: Teams OOP designs Behavior changes New Goals Map Editor and persistence! Where did Raven come from?

  6. Design

  7. Multi-Agent Extensible Configurable Controllable Understandable Raven supports many bots interacting autonomously, intelligently, and coordinated Raven can model new situations Raven behavior can be change w/o compilation Raven responds to user input to change the scenario Raven is organized in easy-to-digest modules Raven's Properties

  8. Subsystems

  9. Holds Singletons and 1-per-Bot systems. Base classes that are extended later in the system. Raven.Game

  10. Armory Models the weapons and projectiles used by the bots and the weapon pickups on the maps. • Bolts • Pellets • Rockets • Slugs • Blaster • Shotgun • Rocket Launcher • Railgun The SensoryMemory gives the actors 'bounded rationality'

  11. Interfaces IRavenBot IRavenTargetingSystem ITeam Why Interfaces? Ease of testing Can change behavior by re-implementing Easier to understand than repeated derivation Interfaces and Testing

  12. Messaging is a basic eventing system. Why do this instead of events? Teaching experience Easy to add more messages to enum Could be redone via Typed Events with ease. The last position is an Object to allow for passing any additional information. Damage Amount Current position? Next task? and more.... Multi-agent Coordination and Communication

  13. Navigation Navigation handles both choosing where to go and how to get there. •     There are two aspects to movement that humans and bots experience: • Where to go? • How do we get there? Navigation is a real-time activity • We must limit the amount of time spent here • numCyclesAllowed in params.js

  14. Kinds of Triggers: Perpetually Respawning Health Weapon Limited Lifetime Sounds Graves Triggers are great because they allow us to: Customize the scenarios Create battlegrounds - Health and weapons inspire conflict Influence Behavior - Sounds! Triggers

  15. Goals are: Tree-based Inheritable Can have subgoals that must be accomplished to accomplish the main goal Can be extended by combining base behaviors in new and novel ways Two types Basic Goals Composite Goals Composite Goals use Basic Goals to accomplish some greater action. Goals

  16. How do we hunt a target we can see?     We get its last position and go to it.   The 'go to it' part is a basic goal. How do we follow a path?     We ask the Path Manager for a path, then when it comes in make a separate goal to traverse each edge. Traverse Edge is a basic goal Goals, cont.

  17. How did we use it? It determines which weapons to use on a per-bot basis Is that all? We could use it to choose paths when some go through bad terrain... We could use it to make 'moral' choices? Shades of grey Our Weapons have different behaviors because each weapon has a unique profile Range Ammo Level Range + Ammo Level = Desirability! Fuzzy Logic

  18. Scripting • Fix bugs! • Bots would break through walls because the weight for that wasn't set high enough. Scripting parameters for the bots and weapons lets us: • Make changes to behavior without compiling • Change the game on the fly • Let someone else who is not a coder test balance • Centrally store all variables

  19. Changing the WallAvoidanceWeight from 10 to 25 made likely that bots would not cross walls.

  20. Map Editor during creation

  21. Raven using our new map

  22. Teams New obstacles Inclement terrain New weapons New behaviors implemented using complex goals flanking? using inclement terrain to trap opponents New domains Soccer UAV search patterns Using crafted scenarios to evaluate new tactics DARPA - naval simulation contest Distributed System multi-threaded multi-machine? networking capability Future Development

  23. Related Readings • Milind Tambe • STEAM Project - distributed cooperative systems • Peter Stone • Soccer simulations • Risto Miikkulainen • NERO adaptive AI game system • John Laird • SOAR - MAchine AI development firm • Kenneth Stanley • RT NEAT - neural evolution in AIs

  24. Questions? You may contact me anytime at chusk3@gmail.com

More Related