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.
- Da la possibilità di dividire e ricomporre la formazione in modo da permettere comportamenti più complessi
- 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.
- 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.
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