Programování virtuálních agentů Platforma Pogamut

Podobné dokumenty
Umělá inteligence a rozpoznávání

Jak rychle prototypovat chování umělých bytostí: Pogamut 2

Václav Matoušek KIV. Umělá inteligence a rozpoznávání. Václav Matoušek / KIV

Model vlakového uzlu Model of a Railway Junction

Úvod do programovacího jazyka Python

Vývojové nástroje pro multiagentové systémy

Úvod do programovacího jazyka Python

3D Vizualizace muzea vojenské výzbroje

Datová věda (Data Science) akademický navazující magisterský program

CASE. Jaroslav Žáček

Česká zemědělská univerzita v Praze

Vývoj mobilních aplikací s využitím JavaFX Mobile

Výuka programování v jazyce Python

INTEROPERABILITA SEZNÁMENÍ S VIRTUÁLNÍM SIMULÁTOREM VBS2 ING. JIŘÍ BARTA

Základní grafové algoritmy

vjj 1. Windows programming. krátká nahlédnutí za oponu

SOFTWAROVÉ INŽENÝRSTVÍ 1

Jaký programovací jazyk učit jako první a jak ho učit?

Vážení, Budete si moci vyslechnout podrobné informace od zapálených lektorů. Samostatný prostor je vyhrazen také pro osobní vyzkoušení

Dominik Vymětal. Informační technologie pro praxi 2009, Ostrava

Steering techniky pro virtuální agenty

Komunikace a paměť pro plausibilní agenty

Výuka programování pro praxi

Znalostní technologie proč a jak?

UITS / ISY. Ústav inteligentních systémů Fakulta informačních technologií VUT v Brně. ISY: Výzkumná skupina inteligentních systémů 1 / 14

Tabulace učebního plánu

Karta předmětu prezenční studium

Genetické programování 3. část

VLIV NEURČITOSTI, NEJASNOSTI, NEJISTOTY A SLOŽITOSTI NA ROZHODOVÁNÍ ORGANIZACÍ

1. Znalostní systémy a znalostní inženýrství - úvod. Znalostní systémy. úvodní úvahy a předpoklady. 26. září 2017

Informatika. tercie. Mgr. Kateřina Macová 1

Informatika na Univerzitě Palackého

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

Technologická podpora v projektu KP-Lab

Řízení reálných projektů, agilní metodiky

Metody automatického texturování 3D modelu měst s využitím internetových fotoalb 3D town model for internet application

Návrh softwarových systémů - mobilita. Jiří Šebek (B6B36NSS)


dokumentu: Proceedings of 27th International Conference Mathematical Methods in

PROGRAMOVÁNÍ ROBOTŮ LEGO MINDSTORM S VYUŽITÍM MATLABU

Inteligentní systémy a neuronové sítě

VYUŽITÍ MATLABU PRO VÝUKU NUMERICKÉ MATEMATIKY Josef Daněk Centrum aplikované matematiky, Západočeská univerzita v Plzni. Abstrakt

Návrh a implementace algoritmů pro adaptivní řízení průmyslových robotů

Tvorba 3D výukových aplikací pomocí technologie

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ

Herní engine. Co je Engine Hotové enginy Jemný úvod do game designu

Přehled modelů reputace a důvěry na webu

MODEL VÁRKOVÉ LINKY NA VÝROBU CHLORIDU ŽELEZNATÉHO PRO FARMACEUTICKÉ ÚČELY. Vladimír Hanta

Specifikace projektu Ocerus

Informace pro výběr bakalářského oboru

Soulad studijního programu. Aplikovaná informatika

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Počítačové kognitivní technologie ve výuce geometrie

Learning Technologies

SPECIFICKÝCH MIKROPROGRAMOVÝCH ARCHITEKTUR

CASE nástroje. Jaroslav Žáček

Použití analyzátoru paketů bezdrátových sítí Wireshark

Úvodem... 9 Kapitola 1 Karetních

Matematika v programovacích

Vývoj a ověřování metodiky výuky programování

Znalostní systém nad ontologií ve formátu Topic Maps

Počítačová geometrie I

Specializace Kognitivní informatika

VÝVOJ NOVÉHO REGULAČNÍHO ALGORITMU KOTLE VERNER S PODPOROU PROGRAMU MATLAB

TÉMATICKÝ OKRUH Softwarové inženýrství

Generátor kódu. a jeho uplatnění ve výuce programování. Rudolf PECINOVSKÝ rudolf@pecinovsky.cz

Řídící systémy hydraulických procesů. Cíl: seznámení s možnostmi řízení, regulace a vizualizace procesu.

Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o.

Úvod do expertních systémů

Zápočtová úloha z předmětu KIV/ZSWI DOKUMENT SPECIFIKACE POŽADAVKŮ

Téma bakalářských a diplomových prací 2014/2015 řešených při

Institucionální akreditace - bakalářské studium informatiky

H. Dreyfuss: What computers can t do, 1972 What computers still can t do, J. Weizenbaum. Computer power and human reason, 1976

Historie a vývoj umělé inteligence

Obsah. Proč právě Flash? 17 Systémové požadavky 17. Jak používat tuto knihu 18 Doprovodný CD-ROM 19

Prostředí pro výuku vývoje PCI ovladačů do operačního systému GNU/Linux

Základy tvorby výpočtového modelu

Animace ve WPF. Filip Gažák. Ing. Václav Novák, CSc. Školní rok:

INTERAKTIVNÍ TABULE A MATEMATICKÝ SOFTWARE GEOGEBRA PŘI VÝUCE MATEMATIKY V ANGLICKÉM JAZYCE

Tvorba webových aplikací s využitím Open Source CMS. Lukáš Dubina. Vedoucí práce. PaedDr. Petr Pexa

SYSTÉM SCREENS SYSTEM SCREENS

Bakalářský studijní obor informatika

Ostravská univerzita v Ostravě. Katedra informatiky a počítačů prf.osu.cz/kip

Jak se stát přívětivým úřadem aneb práce s open daty ve státní správě. Open Data Expo

ADAPTIVITA INFORMAČNÍCH SYSTÉMŮ INFORMATION SYSTEM ADAPTIVITY

INFORMAČNÍ SEMINÁŘ PRO DOKTORANDY FIM

VY_32_INOVACE_INF.19. Inkscape, GIMP, Blender

Využití analýz viditelnosti v procesech veřejné správy

Obsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody

Specifikace softwarových požadavků

Zapojení studentů VŠPJ do vývoje mobilních aplikací na platformě Recon Jet

Standard studijního programu Informatika se zaměřením na vzdělávání

VeriFIT Automatizovaná analýza a verifikace

METODICKÝ LIST 1. Název výukové aktivity (tématu): 2. Jméno autora: Ing. Petr Hořejší, Ph.D., Ing. Jana Hořejší 3. Anotace:

Simluátor Trilobota. (projekt do předmětu ROB)

GVSIG& OPENWEBGLOBE: OPEN SOURCE ŘEŠENÍ na Katedře geoinformatiky Univerzity Palackého v Olomouci

GNU/LINUX SILNÉ A SLABÉ STRÁNKY

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

DETEKCE HRAN V BIOMEDICÍNSKÝCH OBRAZECH

Systémy pro podporu managementu 1

Transkript:

Programování virtuálních agentů Platforma Pogamut RUDOLF KADLEC, JAKUB GEMROT, CYRIL BROM Kabinet softwarove a výuky informatiky, MFF UK Praha Malostranské nám. 25, 118 00 Praha {rudolf.kadlec, jakub.gemrot}@gmail.com, brom@ksvi.mff.cuni.cz Abstrakt. Tento tutoriál se zabývá programováním umělé inteligence virtuálních postav v počítačových hrách, tzv. virtuálních agentů nebo též botů. Vybrané techniky budou prezentovány na softwarové platformě Pogamut. Klíčová slova: virtuální agenti, boti, programovací nástroje. 1 Úvod Pojem virtuálním agent ( virtual agent ) označuje počítačový program, který imituje lidské nebo zvířecí chování ve virtuálním prostředí a který disponuje virtuálním tělem, prostřednictvím nějž vnímá a jedná. Důraz je kladen na existenci virtuálního těla jeden z hlavních definujících prvků této podskupiny inteligentních softwarových agentů ( intelligent software agent ) [19]. Virtuálním prostředím se rozumí určitá abstrakce našeho přirozeného reálného světa. Tato abstrakce je uživateli typicky prezentována v 3D zobrazení, jaké známe například z akčních počítačových her. Pro prototypování se ale často používají i 2D světy. V kontextu počítačových her jsou virtuální agenti často nazýváni boti ( bots ). Termín boti budeme používat i v tomto textu. Vytvořit věrohodného bota znamená vyřešit problémy spadající do různých vědních disciplín; počítačové graficky, fyzikálního modelování, psychologie ad. Zde se budeme zabývat pouze umělou inteligencí botů, čili problematikou jejich řízení. Tvorba algoritmů řídících chování botů byla až donedávna výsadou expertů. V poslední době se ale objevily nástroje zpřístupňující tuto oblast i méně zkušeným programátorům [7]. Příkladem takovéhoto nástroje je i platforma Pogamut [6] použitá v rámci tohoto tutoriálu i při výuce na naší univerzitě [3]. První verze platformy byla vyvíjena na MFF UK v letech 2006-7. V současné době je k disposici verze 3 [14]. Díky Pogamutu je programování botů přístupné i pro začínající programátory, stále ale zůstávají oblasti, s nimiž musí být začátečník seznámen předtím, než začne vytvářet svého prvního bota. V tomto tutoriálu popíšeme tyto třídy úloh a zároveň je budeme demonstrovat na praktické ukázce programování středně složitého bota. Rozšiřující materiály lze najít na [1, 2, 4, 5]. 2 Základy programování botů Skupině algoritmů a datových struktur řídící chování bota se často říká umělá mysl ( artificial mind ). Ta má typicky modulární architekturu. Tři základní moduly, jimiž je vybaven téměř každý bot, jsou modul pro vysokoúrovňové plánování akcí, pro dlouhodobé Dušan Chlapek (ed.), DATAKON 2009, Srní, 10. - 13.10.2009, pp. 1-3.

Programování virtuálních agentů Platforma Pogamut plánování cesty a pro řešení vyhýbání se překážkám. Budeme se jimi zabývat i v tomto textu a dále pak důkladněji během tutoriálu. Modul vysokoúrovňového rozhodování (v angličtině často nazývaný decision making system DMS nebo action selection mechanism ASM) je centrálním arbitrem koordinujícím práci dalších modulů. Prostředí nabízí botovi omezenou množinu akcí a úkolem DMS je vybrat v aktuálním okamžiku tu nejvhodnější. Na konceptuální úrovni se pro popis DMS často používají konečné automaty nebo reaktivní pravidla (často také označovaná jako IF-THEN pravidla). Podoba s pravidly z expertních systémů není příliš veliká: DMS typicky neprovádí inferenci způsobem, na jaký jsme z jiných oblastí umělé inteligence zvyklí. Důvodem je výpočetní náročnost; v oblasti umělé inteligence pro počítačové hry se i kvadratická složitost algoritmu obvykle hodnotí jako příliš vysoká. Podobně analogie mezi konečnými automaty řídícími boty a konečnými automaty používanými v jiných partiích informatiky je spíše na povrchové úrovni. Úkolem modulu plánování cesty je výpočetně efektivní nalezení cesty mezi botovou výchozí pozicí a cílovou lokací. Pro tyto účely je často používán algoritmus A* [16], heuristický algoritmus na prohledávání grafů, nebo jeho odvozeniny. Grafy, které abstrahují 3D (2D) svět pro potřeby plánovače, jsou typicky zadány předem. Existují ale i algoritmy pro jejich automatické generování. Poté, co je cesta naplánována, může ji bot začít následovat. V dynamických prostředích nemusí ale bezmyšlenkovité následování předem vypočítané cesty fungovat. Pohyblivé objekty mohou například cestu zatarasit. Naštěstí existuje několik jednoduchých a výpočetně nenáročných algoritmů, které dokáží problém lokálně blokované cesty vyřešit. Většina těchto algoritmů je odvozena od mechanismů lokálního řízení ( steering ) popsaných Reynoldsem [15]. V průběhu tutoriálu popíšeme jak algoritmus A* tak mechanismy lokálního řízení a ukážeme, jak mohou být obě tyto techniky integrovány se zbytkem DMS. Pokud bot, kterého vytváříme, má imitovat lidské chování, začnou získávat na důležitosti i další témata například umělé emoce. Emocionální odezvy na události v botově okolí můžeme buď předem naskriptovat, nebo je můžeme generovat obecným modelem vzniku emocí, jakým je například ALMA [8]. Díky zapojení obecného modelu mohou vznikat emergentní jevy, které programátor původně ani nezamýšlel (což má svá pozitiva i negativa). Téma emocionálního modelování se bude věnovat v poslední část tohoto tutoriálu. 3 Platforma Pogamut Platforma Pogamut je softwarový nástroj pro usnadnění vývoje a testování umělých myslí botů [6, 11, 14]. Platforma řeší nízkoúrovňové problémy jako je komunikace s virtuálním světem, hledání cesty nebo vyhýbání se překážkám. Umožňuje tím vývojáři plně se soustředit na tvorbu botova chování. Platforma se skládá z těchto hlavních komponent: Virtuální prostředí jako simulátor virtuálního světa je použita komerční hra Unreal Tournament 2004 rozšířená o komunikační rozhranní GameBots2004 distribuované pod licencí GNU. Obr. 1 ukazuje vizualizaci tohoto prostředí. Knihovna tříd knihovna v jazyce Java poskytuje API pro programování chování botů.

Tutoriál Obr. 1: Interakce postav v prostředí hry Unreal Tournament 2004 (Copyright 2009 Epic Games) Integrované vývojové prostředí plug-in pro vývojové prostředí Netbeans [12] poskytuje podporu při programování bota, při jeho ladění a při provádění experimentů. Emoční generátor obecný model vzniku emocí umožňuje obdařit každého bota unikátní osobností. Architekturu platformy Pogamut ukazuje Obr. 2. Boti jsou vtěleni do prostředí hry Unreal Tournament 2004, kde jsou grafické reprezentace jejich těl ovládány pomocí komunikačního protokolu GameBots2004. To umožňuje, aby jejich řídící logika běžela v samostatném procesu např. programu v jazyce Java. Knihovna GaviaLib odstiňuje programátora od detailů TCP/IP komunikace textového protokolu GameBots2004. Informace o běhu agenta užitečné pro jeho ladění jsou pak zprostředkovány plug-inem pro vývojové prostředí Netbeans. Kromě úvodu do obecných technik programování botů bude součástí tutoriálu i naprogramování ukázkového bota Lovce ( Hunter ). Na Lovci bude ukázána základní funkcionalita potřebná pro akční hry, jako je navigace v prostředí, vyhýbání se překážkám, pronásledování hráčů, sbírání objektů a výběr zbraně. Všechna tato chování jsou popsána sadou IF-THEN pravidel. Materiály popisující základní interakci s platformou Pogamut krok za krokem, vhodné i pro samostatné vyzkoušení platformy, jsou dostupné na adrese [17]. Platforma také obsahuje několik dobře okomentovaných ukázkových botů, kteří mohou sloužit jako výchozí bod pro naprogramování vlastního bota. Dokumentace projektu a online podpora na diskusních fórech je dostupná na domovské stránce [14].

Programování virtuálních agentů Platforma Pogamut Obr. 2: Architektura platformy Pogamut 4 Rozšíření Platforma Pogamut je stále aktivně rozšiřována. Poslední rozšíření zahrnují připojení kognitivní architektury ACT-R [20], modul pro snadnou tvorbu výukových scénářů specifikovaných v omezeném přirozeném jazyce [18], podporu pro animace popsané v jazyce BML [13], vizuální editor reaktivních plánů jazyka POSH [10] a v neposlední řadě jazyk StorySpeak pro scriptování interakce více postav [9]. 5 Závěr Účelem toho textu bylo podat krátký přehled problémů spojených s tvorbou botů a zároveň představit platformu Pogamut, softwarový nástroj pro snadné prototypování chování botů. Teoretické aspekty tvorby botů i jejich programování s pomocí platformy Pogamut budou přiblíženy v průběhu tutoriálu. Poděkování Tato práce byla podpořena grantem Informační Společnosti pod projektem 1ET100300517, dále grantem 201/09/H057 a výzkumným záměrem MSM0021620838 MŠMT. Tvorba výukových scénářů pro projekt Pogamut je umožněna díky projektu CZ.2.17/3.1.00/31162, který je financován Evropským Sociálním Fondem, rozpočtem České Republiky a rozpočtem hl. m. Prahy. Literatura 1. Brom, C.: Curricula of the course on modelling behaviour of human and animal-like agents. In: Proceedings of the Frontiers in Science Education Research Conference, Famagusta, North Cyprus. (2009) 71 -- 79 2. Brom, C., Bryson J. J.: White paper on Action Selection for Intelligent Systems, EUcognition, The European Network for the Advancement of Artificial Cognitive Systems. (2006) URL: http://www.eucognition.org/asm-whitepaper-final-060804.pdf [11.12.2008] 3. Brom, C., Gemrot, J., Burkert, O., Kadlec, R., Bída, M.: 3D Immersion in Virtual Agents Education In: Proceedings of First Joint International Conference on Interactive Digital Storytelling, ICIDS 2008 Erfurt, Germany, November 26-29, LNCS 5334, Springer-Verlag, Berlin (2008) 59-70

Tutoriál 4. Brom, C., Sisler, V., Hoffmann, M.: Virtuální lidé. Kapitola knihy. In (Mařík V., Stěpánková O., Lažanský J., eds): Umělá inteligence 5. Academia, Praha (2007) 5. Bryson J.: How to Make a Monkey Do Something Smart. http://www.cs.bath.ac.uk/~jjb/web/how-to-monkey.pdf (2001) [11.12.2008] 6. Burkert, O., Kadlec, R., Gemrot, J., Bída, M., Havlíček, J., Dörfler, M., Brom, C.: Towards fast prototyping of IVAs behavior: Pogamut 2 In: Proceedings of 7th International Conference on Inteligent Virtual Humans, LNCS Vol. 4722. Paris, France. Springer-Verlag, Berlin. (2007) 7. Cooper, S., Dann, W., Pausch, R.: Teaching Objects-first In Introductory Computer Science. In: Proceedings of the SIGCSE technical symposium on Computer science education (Reno, Nevada, USA). ACM New York, NY, USA. 191-195. (2003) 8. Gebhard, P.: ALMA - A Layered Model of Affect. In: Proceedings of the Fourth International Joint Conference on Autonomous Agents and Multiagent Systems (AAMAS'05), 29-36, Utrecht. (2005) URL: http://www.dfki.de/~gebhard/alma/index.html [5.6.2009] 9. Gemrot. J.: Joint behaviour for virtual humans. Diplomová práce. Univerzita Karlova v Praze, 2009. 10. Havlíček, J.: Prostředky pro podporu ladění v projektu Pogamut 2. Bakalářská práce. Univerzita Karlova v Praze, 2009. 11. Kadlec, R., Gemrot, J., Burkert, O., Bída, M., Havlíček, J., Brom, C., : POGAMUT 2 - A platform for fast development of virtual agents' behaviour, In: Proceedings of CGAMES 07, La Rochelle, France (2007) 12. Netbeans homepage: URL: http://www.netbeans.org [28.8.2009] 13. Píbil, R.: Gesta a mimika virtualních postav v 3D světě. Bakalářská práce. Univerzita Karlova v Praze, 2009. 14. Projekt Pogamut: URL: http://artemis.ms.mff.cuni.cz/pogamut [28.8.2009] 15. Reynolds, C.: Steering Behaviors for Autonomous Characters. In: Game Developers Conference, (1999) 16. Russell, S. J.; Norvig, P.: Artificial Intelligence: A Modern Approach. Upper Saddle River, N.J.: Prentice Hall. (2003) 97 104. ISBN 0-13-790395-2. 17. Tutorialy platformy Pogamut: URL: http://artemis.ms.mff.cuni.cz/pogamut_files/latest/ doc/tutorials/ [28.8.2009] 18. Vansa, R.: Výukové scénáře v projektu Pogamut. Bakalářská práce. Univerzita Karlova v Praze, 2009. 19. Wooldridge, M.: An Introduction to Multiagent Systems, John Wiley & Sons, Chichester, England. (2002) 20. Zemčák, L.: ACT-R v projektu Pogamut. Bakalářská práce. Univerzita Karlova v Praze, 2009. Annotation: Programming of virtual agents The Pogamut Platform This paper describes the content of our tutorial concerned with the development of artificial intelligence for virtual characters in computer games, so-called bots. The Pogamut platform was chosen for this tutorial. Step-by-step manual that will be followed during this tutorial is available at http://artemis.ms.mff.cuni.cz/pogamut_files/latest/doc/tutorials/.