Interfacing ACT-R with External Simulations

Similar documents
Interfacing ACT-R with External Simulations

vstasker 6 A COMPLETE MULTI-PURPOSE SOFTWARE TO SPEED UP YOUR SIMULATION PROJECT, FROM DESIGN TIME TO DEPLOYMENT REAL-TIME SIMULATION TOOLKIT FEATURES

An Overview of the Mimesis Architecture: Integrating Intelligent Narrative Control into an Existing Gaming Environment

6 System architecture

Human Computer Interaction Unity 3D Labs

Configuring OSPF. Information About OSPF CHAPTER

CANopen Programmer s Manual Part Number Version 1.0 October All rights reserved

Qt Developing ArcGIS Runtime Applications. Eric

Department of Computer Science and Engineering The Chinese University of Hong Kong. Year Final Year Project

8 Frames in 16ms. Michael Stallone Lead Software Engineer Engine NetherRealm Studios

Multiplayer Computer Games: A Team Performance Assessment Research and Development Tool

DEVELOPMENT OF A ROBOID COMPONENT FOR PLAYER/STAGE ROBOT SIMULATOR

An Approach to Integrating Modeling & Simulation Interoperability

UNIT-III LIFE-CYCLE PHASES

SIMGRAPH - A FLIGHT SIMULATION DATA VISUALIZATION WORKSTATION. Joseph A. Kaplan NASA Langley Research Center Hampton, Virginia

An Overview of the Mimesis Architecture: Integrating Intelligent Narrative Control into an Existing Gaming Environment

Stress Testing the OpenSimulator Virtual World Server

AUTOMATION ACROSS THE ENTERPRISE

CANopen Programmer s Manual

Introduction to Real-Time Systems

CANopen Programmer s Manual

Configuring Multiscreen Displays With Existing Computer Equipment

Simulation Performance Optimization of Virtual Prototypes Sammidi Mounika, B S Renuka

Introduction to Game Design. Truong Tuan Anh CSE-HCMUT

LESSONS Lesson 1. Microcontrollers and SBCs. The Big Idea: Lesson 1: Microcontrollers and SBCs. Background: What, precisely, is computer science?

Software Infrastructure Part 1. CS 422: Intelligent Avatars Lab Spring 2010

Project Example: wissen.de

ABSTRACT. Keywords Virtual Reality, Java, JavaBeans, C++, CORBA 1. INTRODUCTION

Blackfin Online Learning & Development

Jason Agents in CArtAgO Working Environments

Architecting Systems of the Future, page 1

PASSENGER. Story of a convergent pipeline. Thomas Felix TG - Passenger Ubisoft Montréal. Pierre Blaizeau TWINE Ubisoft Montréal

Moving Web 3d Content into GearVR

Building Java Apps with ArcGIS Runtime SDK

Game Programming Paradigms. Michael Chung

CS 354R: Computer Game Technology

A Distributed Virtual Reality Prototype for Real Time GPS Data

PlaneShift Project. Architecture Overview and Roadmap. Copyright 2005 Atomic Blue

Procedural Level Generation for a 2D Platformer

Formation Flying What s Coming Up

Game Architecture. 4/8/16: Multiprocessor Game Loops

Research Article Games and Agents: Designing Intelligent Gameplay

Communications Planner for Operational and Simulation Effects With Realism (COMPOSER)

AGENT PLATFORM FOR ROBOT CONTROL IN REAL-TIME DYNAMIC ENVIRONMENTS. Nuno Sousa Eugénio Oliveira

Kismet Interface Overview

ColorGame Apparatus Specification

Information Systems Architecture skeletons: Overview Lessons-learned from largescale software-intensive system development

The LVCx Framework. The LVCx Framework An Advanced Framework for Live, Virtual and Constructive Experimentation

Sensible Chuckle SuperTuxKart Concrete Architecture Report

occam on the Arduino Adam T. Sampson School of Computing, University of Kent Matt C. Jadud Department of Computer Science, Allegheny College

Centralized Server Architecture

Distributed Gaming using XML

By Jeremy Brun, Farzad Safaei, and Paul Boustead NETWORKED GAMES

fautonomy for Unity 1 st Deep Learning AI plugin for Unity

INTRODUCTION TO GAME AI

ROM/UDF CPU I/O I/O I/O RAM

CATS METRIX 3D - SOW. 00a First version Magnus Karlsson. 00b Updated to only include basic functionality Magnus Karlsson

Department of Computer Science and Engineering The Chinese University of Hong Kong. Year Final Year Project

Beginning ios 3D Unreal

Distributed Virtual Learning Environment: a Web-based Approach

Reviewing Your Tax Return In Your Portal

INTELLIGENT GUIDANCE IN A VIRTUAL UNIVERSITY

Web of Things architecture update

S8223: Simulating a City: GPU Simulations of Traffic, Crowds and Beyond

Immersive Visualization and Collaboration with LS-PrePost-VR and LS-PrePost-Remote

Introductory Module Object Oriented Programming. Assignment Dr M. Spann

A Study of Optimal Spatial Partition Size and Field of View in Massively Multiplayer Online Game Server

Superior Radar Imagery, Target Detection and Tracking SIGMA S6 RADAR PROCESSOR

Open middleware for robotics

Teleoperated Robot Controlling Interface: an Internet of Things Based Approach

CMDragons 2009 Team Description

DEVELOP-FPS: a First Person Shooter Development Tool for Rule-based Scripts

Examples Debug Intro BT Intro BT Edit Real Debug

Connecting radios all over the world. Configuring and using SoftRadio on the dispatcher PC

Knowledge Enhanced Electronic Logic for Embedded Intelligence

Creating High Quality Interactive Simulations Using MATLAB and USARSim

An Unreal Based Platform for Developing Intelligent Virtual Agents

Data Dissemination in Wireless Sensor Networks

MAPLESIM: Tailored solutions for networking legacy flight simulators an HLA based approach

ArcGIS Runtime SDK for Java: Building Applications. Eric

Understanding PMC Interactions and Supported Features

COMET DISTRIBUTED ELEVATOR CONTROLLER CASE STUDY

Methodology for Agent-Oriented Software

Data Gathering. Chapter 4. Ad Hoc and Sensor Networks Roger Wattenhofer 4/1

Lynx. RoIP Gateway DISPATCH LYNX MOBILE. Optional serial ports provide remote control of radio configuration over the VoIP network.

Saphira Robot Control Architecture

Changing of the guard: after more than 10 years, a new GSM reference system

MarineSIM : Robot Simulation for Marine Environments

Enabling Mobile Virtual Reality ARM 助力移动 VR 产业腾飞

Huawei ilab Superior Experience. Research Report on Pokémon Go's Requirements for Mobile Bearer Networks. Released by Huawei ilab

Advances and Perspectives in Health Information Standards

Responding to Voice Commands

Challenges in Transition

Collision Detection and Teamcenter Haptics: CATCH. Final Report

FTSP Power Characterization

HELISIM SIMULATION CREATE. SET. HOVER

What is a Simulation? Simulation & Modeling. Why Do Simulations? Emulators versus Simulators. Why Do Simulations? Why Do Simulations?

The WURDE Robotics Middleware and RIDE Multi-Robot Tele-Operation Interface

Haptic Rendering of Large-Scale VEs

Softing TDX ODX- and OTX-Based Diagnostic System Framework

Transcription:

Interfacing ACT-R with External Simulations Eric Biefeld, Brad Best, Christian Lebiere Human-Computer Interaction Institute Carnegie Mellon University

We Have Integrated ACT-R With Several External Simulations and Learned Some Key Lessons The applications UT MOUT A worst-case integration AMBR Better thought-out but still significant effort and speed problems AMBR HLA Interesting process but suboptimal result IMPRINT/ACT-R (and CART/FRED) Development of general-purpose layer The lessons Most development time goes into infrastructure (Zachary) General-purpose APIs can save orders of magnitude of integration time

We Can t Reimplement Large Simulations So We Must Build Links From the App to ACT-R Reimplementation cost in time/$ is prohibitive Can t modify: the simulation is always right Data must travel from and to both simulation and model Communicating to the model the state of the simulation Local cache of the state of the simulation may be needed Communicating to the simulation the model actions Each new communication link requires an API The developer also needs links to both the simulation and the model Existing ACT-R Lisp API provides link to model Debugging may be through either the model or the simulation Time synchronization is tricky Real time vs. virtual time Event-based vs. tick-based

Defining and Implementing Links to an External App Is Where the Time Protocol Goes Data sharing: description of data structures (how?) Time synchronization: advance time (when & who?) General-purpose solutions (save future costs) HLA formalized the documentation and provides a run time infrastructure General API for ACT-R? Special-purpose interface Various implementation instances in following examples Optimal but cost-intensive solution

Example 1: ACT-R Agents for Urban Combat Integrate with Unreal Tournament Realtime App with realtime constraints Processing and network bottlenecks Integration is more work than the modeling Game does not provide primitives needed for cognitive modeling (no walls!) 2-layer API Designed to accommodate change in simulation platform May not get desired changes in next version The Unreal Tournament game engine / simulation platform for MOUT

MOUT/UT Information Flow ACT-R Unreal Script Commands Game State Data UT Game Lisp Listener Output, File I/O ACT-R Command API UT Console Commands Visual Inspection of Game Screen Programmer

ACT-R/UT Interface MOUT Agent Commands Generic MOUT API (move-to-point =point run) Specific UT API runto (Location {x y z}) Unreal Script Commands (shoot-at-point =point) shoot (Location {x y z}) etc. etc. ACT-R MOUT Sim State (chunk-type other-player id name team location reachable visible health current-weapon weapons update-time) (PLR (ID DOM- URB1.FRIENDLYMALE0) (ROTATION 63536 57744 1) (LOCATION -112.6 812.8 43.7) (VELOCITY 0.0 0.0 0.0) (NAME STAN) (TEAM 1) (REACHABLE FALSE) (WEAPON BOTPACK.SHOCKRIFLE) (ALTFIRING 0) (BOT-ID 1)) UT Game UT Game State

ACT-R UT/MOUT Time Sync Realtime App sort of. UT game time is the master clock May slow down or speed up depending on CPU demands UT sends game state updates at regular intervals Upon update, ACT-R model runs cycles until ACT-R time is later than the UT time stamp in the update, then the update is applied This prevents ACT-R perceiving events in the past: an update at time t will appear at ACT-R time t or slightly later ACT-R must run much faster than realtime to keep up The external app and other models may need to run on the same machine Individual models must release control to allow other models to catch up no thread hogging Limits on how many agent models can be run in realtime

The Theory ATC simulation for crossarchitecture modeling Communication protocol designed jointly for model and simulation Sockets: simple and easy Example 2: AMBR The Reality Too slow (250msec roundtrip for 50msec control loop: 5x RT) 2nd solution: run in RT as a human subject (funny side effects!) 3rd solution: run in same Lisp process as the simulation!

A sample protocol: Original AMBR ACT-R API Data communication between simulation (Core-OMAR) and agent (ATC Workplace) Core-OMAR output to the ATC Workplace (ATC::INIT-RADAR (string atc-name)) Initializes the radar screen for ATC model workplace and gives model name (ATC::INIT-ATC (string atc-name) (double epos) (double npos)) Provides ATC name and screen position (ATC::INIT-AC (string aircraft-name)) Identifies a new aircraft icon that is about to appear (ATC::UPDATE-AC (string aircraft-name) (double epos) (double npos) (double evel) (double nvel) (double altitude) (string color)) Identifies a new location and color for an aircraft icon. (ATC::REMOVE-AC (string aircraft-name)) Identifies an aircraft icon no longer seen on the radar screen. (ATC::COMMAND-PROMPT (string prompt)) Indicates the appearance of a new prompt in the command line (ATC::COMMUNICATION-MESSAGE (string speaker-name) (string message-content) (string panel-name)) Presents a new message at the bottom of the identified screen panel Input to Core-OMAR by a Model at the ATC Workplace (ATC::GUI-BUTTON-PUSH (string label)) pushed (ATC::GUI-OBJECT-SELECT (string icon-label)) ATC Workplace Core Omar Indicates that a screen button that has been Indicates that screen-icon for aircraft or ATC has been selecte Time synchronization of simulator operation for multi-node distributed simulation

Example 3: HLA to the rescue Nice support for development process Standard data exchange & time management schemes Complex system/process with own logic No Lisp hooks so we used Java gateway Result: 10 times slower than previously Live Participants Support Utilities Simulations Interfaces to Live Players Interface C++ Ada 95 CORBA IDL Java Runtime Infrastructure (RTI) Federation Management Declaration Management Object Management Ownership Management Time Management Data Distribution Management

Example 4: ACT-R/IMPRINT IMPRINT Discrete-event network simulation development tool Designed specifically for modeling human performance Funded by ARL built by MAAD Can be used as a general-purpose simulation engine Done about 8 IMPRINT/ACT-R models Integration time brought down from 2 to 2months to days. Working to generalize to other simulations

NASA HEM: The first Pilot taxi errors MAAD built IMPRINT model of aircraft taxiing CMU built ACT-R model of pilot decision-making application

First IMPRINT/ACT-R: Months! ACT-R GLUE IMPRINT IMPRINT has API based on COM IMPRINT initiated ACT-R s decisions. LISP glue had to single step IMPRINT and query IMPRINT s external variables. Months to finish integration 300 lines IMPRINT s COM API 1000 lines GLUE (one off)

CART: Next Application Air Force version of IMPRINT Model of shootlist management for scud-hunting Runs on Silicon Graphics

CART / ACT-R: Down to weeks! ACT-R GLUE COM CART FRED FRED is a classified simulation of aircraft (JSF) Developed ACT-R HPM model from partial stub Used the External Macro Call (EMC) protocol Separated COM, EMC support from GLUE. Needed only 4 of IMPRINTS API (just data) Glue dropped to ~600 lines COM & EMC support ~300 lines Just weeks to build

Write Once and Reuse: LIA Tables Logs LIA SIM State COM PERL/TK LINK Link IMPRINT ACT-R Designed between projects. Subset of ACT-R s API and Buffers Uses Excel tables maintained by IMPRINT developer! Defines a defemc which handles the RPCs About 400 lines with additional 200 for COM Translates integers into symbols and simulation entities Support for TK demo windows. (Perl for speed)

ARL ADA Build human performance model of the operation of robotic scout Modeled the navigation through complex displays Simplify the integration of IMPRINT and ACT-R

IMPRINT/LIA/ACTR: Done in GLUE days! ACT-R LIA IMPRINT DEMO Most complex IMPRINT model The basic integration done in days Glue down to 200 lines Debugged IMPRINT model from LIA s logs Built GUI to show ACT-R s decisions

Lessons Learned So Far Suggest a Future Approach Simulation is not going to change for us (we are not that big yet but we can/should do education of simulation community) Insufficient primitives can make development costly Modeling is modeling This aspect is no different in the context of external simulations Generate general-purpose API layer that solves the hard problems (language translation issues, timing) Need a thin special-purpose client that is fast and easy to develop (hours to days) Which side/language of communication to put the thin client on? Simulation-specific? Cost/benefit of general/specific solutions (pay now, pay later) The systems described took months, to weeks, to days of integration time

Further Questions on What to Provide for the ACT-R API? Should the simulation control cognitive processor? ACT-R as cognitive server (or client) Or Peer-to-Peer (Federation view like HLA) Do we need a general API for a cognitive system (popular enough to be a standard?) Is the ACT-R user API right for a simulation communication API? Reusable TCP/XML layer for ACT-R commands? ACT-R time rollback? (for TIME/WARP)