Daniele Monaco

Massive Battle: Simulazione di agenti autonomi in ambiente di guerra

Introduzione

La prima parte del mio lavoro è stata l'implementazione di miglioramenti a Massive Battle, progetto iniziato da Alberto Boccardo(User:Albboc). La seconda parte, invece, consiste nella realizzazione del framework OpenSteerBug per rilevare dei comportamenti anomali negli algoritmi di steering della libreria OpenSteer.

Massive Battle

  • Movimento coordinato delle truppe in uno scenario con molti ostacoli
    • A differenza dell'implementazione precedente, ora le truppe tendono a mantenere la formazione anche in presenza di diversi ostacoli vicini (es.: una foresta). Inoltre all'uscita dalla zona piena di ostacoli le truppe non hanno bisogno di ristrutturare la formazione, come avveniva nell'implementazione precedente, ma ne usciranno gia in formazione.
  • Suddivisione dinamica della formazione
    • Da la possibilità di dividire e ricomporre la formazione in modo da permettere comportamenti più complessi
      • La formazione si divide nel caso in cui incontra un ostacolo grosso e lo evita facendo passare una parte delle file a sinistra dell'ostacolo e le restanti file a destra dell'ostacolo.
  • Unit testing
    • Ho creato un framework che estende CppUnit e consente di creare test case ed eseguire iterativamente la simulazione (anche senza visualizzazione grafica) per testare le funzionalità implementate.
      • Utilizzando Unit testing si può continuare a sviluppare Massive Battle con l'approccio Test Driven Development: al termine dell'implementazione di una nuova funzionalità si crea una suite per testarla e si esegue una sessione di test per controllare che la nuova funzionalità non intacchi quelle già presenti.

OpenSteerBug

  • Consente di rilevare in OpenSteer una serie di comportamenti anomali quali:
    • Oscillazione
    • Movimento Circolare
    • Collisioni con altri agenti o ostacoli
  • Sono utilizzate metriche dette TVM(Time Varying Metrics) (quali posizione, orientamento, velocità, accelerazione ...) che combinate con degli operatori (Somma, derivata, varianza, correlazione ...) consentono di rilevare suddetti comportamenti
  • Nel paper SteerBug sono spiegate in dettaglio tutte le metriche e le operazioni, e come queste vengono combinate per rilevare i comportomanti.

Software e librerie

  • Visual C++ 2008 Express Edition
  • OGRE SDK 1.4.7
  • PagedGeometry 1.04
  • Caelum 0.3.0
  • Editable Terrain Manager 2.2
  • Hydrax 0.4
  • Libreria Buckland_AI 2005
  • OpenSteer 0.8.2

Seminari

Bibliografia

  • Pottinger D. Coordinated unit movement. Game Developer, 1999.
  • Pottinger D. Implementing coordinated movement. Game Developer, 1999.
  • Balch T, Hybinette M. Social potentials for scalable multirobot formations. In IEEE International Conference on Robotics and Automation (ICRA-2000), San Francisco, 2000.
  • Kamphuis A, Overmars MH. Finding paths for coherent groups using clearance. In SCA'04: Proceedings of the 2004 ACM SIGGRAPH/Eurographics Symposium on Computer Animation, Eurographics Association, Aire-la-Ville, Switzerland, Switzerland, 2004.
  • Arno Kamphuis and Mark H. Overmars. Motion planning for coherent groups of entities. In IEEE Int. Conf. on Robotics and Automation. IEEE Press, San Diego, CA, 2004.
  • Berg J, Patil S, Sewall J, Manocha D, Lin M. Interactive navigation of multiple agents in crowded environments.In SI3D'08: Proceedings of the Symposium on Interactive 3D Graphics and Games, ACM, New York, NY, USA, 2008;
  • Reynolds C. Flocks, herds and schools: a distributed behavioral model. In SIGGRAPH'87: Proceedings of the 14th Annual Conference on Computer Graphics and Interactive Techniques, ACM, New York, NY, USA, 1987.
  • Reynolds C. Steering behaviors for autonomous characters. In Game Developers Conference,Miller Freeman Game Group,San Francisco, CA, USA, 1999.
  • Reynolds C. Big fast crowds on ps3. In Sandbox'06: Proceedings of the 2006 ACM SIGGRAPH Symposium on Videogames, ACM, New York, NY, USA, 2006.
  • Renato Silveira, Edson Prestes and Luciana P. Nedel, Managing coherent groups 2008.
  • Li T, Chou H. Motion planning for a crowd of robots. In International Conference on Robotics and Automation (ICRA), IEEE Press, San Diego, CA, 2003.
  • Mat Buckland: Buckland - Programming Game AI by Example (fup@ai-junkie.com) 2005.
  • Pro Ogre 3d Programming (Gregory Junker).
  • OpenGL Programming Guide (i.e. The Red Book) (Addison-Wesley Publishing Company).
  • Sito ufficiale O.G.R.E.
  • Wiki O.G.R.E.
  • Sun Tzu. L'Arte della Guerra.
  • Heni Ben Amor, Oliver Obst, Jan Murray. Fast, Neat and Under Control: Inverse Steering Behaviors for Physical Autonomous Agents
  • Bjørn Reese. Finding a Pathfinder
  • Yasuaki Abe, Yoshiki Matsuo. Collision Avoidance Method for Multiple Autonomous Agents by Implicit Cooperation
  • Marine Corps, Drill and Ceremonies Manual
  • Joel Gompert, Flocking Over 3D Terrain
  • C. Loscos, D. Marchal, A. Meyer. Intuitive Crowd Behaviour in Dense Urban Environments using Local Laws
  • J. Borenstein, Y. Koren. Real-time Obstacle Avoidance for Fast Mobile Robots in Cluttered Environments
  • G. H. Elkaim, M. Siegel. A Lightweight Control Methodology for Formation Control of Vehicle Swarms
  • G. H. Elkaim, R. J. Kelbley. Extension of a Lightweight Formation Control Methodology to Groups of Autonomous Vehicles
  • H. G. Tanner, A. Jadbabaie, G. Pappas. Flocking in Teams of Nonholonomic Agents
  • N. E. Leonard, E. Fiorelli. Virtual Leaders, Artificial Potentials and Coordinated Control of Groups
  • Z. Khalid, V. Rajagopalan. Dynamic Shape Formation
  • B. Lei, W. Li. Formation Control for Multi-robots Based on Flocking Algorithm
  • S. Stoykov. Using a Competitive Approach to Improve Military Simulation Artificial Intelligence Design
  • R. B. Hencke. An Agent-Based Approach to Analyzing Information and Coordination in Combat
  • N. MacKay. Lanchester combat models
  • US Army Field Manual 3-0 - Operations
  • S. Singh, M. Kapadia, P. Faloutsos and G. Reinman. SteerBench: a benchmark suite for evaluating steering behaviors
  • S. Singh, M. Kapadia, P. Faloutsos, B. Allen and G. Reinman. SteerBug: An Interactive Framework for Specifying and Detecting Steering Behaviors
  • OpenSteer: Steering Behaviors for Autonomous Characters