Skip to content

ResQBot è un progetto sviluppato in Unity3D con ML-Agents per simulare scenari di search and rescue post-terremoto. Un robot mobile addestrato con reinforcement learning esplora l’ambiente, evita ostacoli e porta in salvo i civili nella zona sicura.

Notifications You must be signed in to change notification settings

IreneGaita/ResQBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ResQBot — Search & Rescue Simulation con Unity ML-Agents

Descrizione breve: Simulazione di robot mobile per scenari di search & rescue post-terremoto sviluppata in Unity3D con ML-Agents.
Tagline: Dal disastro virtuale alla resistenza artificiale.


📖 Abstract

ResQBot è un progetto sviluppato con Unity3D e il pacchetto ML-Agents per simulare missioni di salvataggio urbano post-terremoto.
Il robot (agente RL) deve:

  • esplorare la mappa generata proceduralmente,
  • evitare macerie e ostacoli,
  • raggiungere i civili e portarli in salvo nella safe zone (ospedale).

L’agente è addestrato tramite reinforcement learning.


1. Il Problema

Le operazioni di search and rescue sono fondamentali in contesti post-catastrofe.
Scopo del progetto è addestrare un agente autonomo a:

  1. trovare e attivare civili dispersi,
  2. condurli in sicurezza alla safe zone,
  3. completare la missione evitando collisioni.

2. Scena di Simulazione

  • Robot ResQBot: prefab posizionato davanti alla caserma dei vigili del fuoco.
  • Persone da salvare: spawnate in punti casuali, seguono il robot dopo l’attivazione.
  • Ostacoli e macerie: prefab randomici (barriere, detriti, bidoni), collisione → fallimento.
  • Barriere di confinamento: “muri invisibili” per vincolare la navigazione.

3. Generazione Procedurale

Uno script EnvironmentGenerator.cs:

  • genera dinamicamente persone e ostacoli,
  • applica regole di distanza minima e validazione su NavMesh,
  • assicura che ogni episodio sia risolvibile (robot può raggiungere tutti i civili e condurli alla safe zone).

4. Dinamica dei Civili

  • Stato iniziale Idle, attivazione tramite trigger collider quando il robot si avvicina.
  • Modalità Follow con offset casuali per evitare accodamenti.
  • Arresto definitivo in safe zone.

5. Navigazione dell’Agente

  • TargetSelector: sceglie se puntare a una nuova persona o tornare in safe zone in base ai costi di percorso.
  • Pathfinder: calcola i percorsi con Unity NavMesh.
  • Percorsi aggiornati dinamicamente con fallback se bloccati.

6. Episodi e Addestramento

  • Reset episodio con nuova generazione di mappa.
  • Condizioni di chiusura: successo (tutti salvati), fallimento (collisione, timeout, stallo), replay manuale.
  • Ricompense modellate su: progresso verso checkpoint, attivazione civili, consegna in safe zone, completamento missione.
  • Penalità per collisioni, regressione, inattività.

7. Percezione e Controllo

  • Osservazioni interne: direzione, velocità, numero follower.
  • Sensori RayPerception3D: rilevano ostacoli e persone.
  • Comandi continui: avanzare/indietreggiare, curvare sinistra/destra.

8. GUI e Interfaccia

  • Menu principale: Start, Info, Quit.
  • HUD in-game: timer, contatore salvataggi, pulsanti per Home/Camera/Video.
  • Telecamere: terza persona, prima persona, vista zenitale.
  • Missione Compiuta: schermata di completamento con replay o ritorno al menu.

9. Risultati

  • Run 1: scenario fisso → apprendimento “a memoria”.
  • Run 2: scenario variabile → generalizzazione ma instabilità.
  • Run 3: fix e miglioramenti → policy più coerente.
  • Run 4: training esteso (8M passi) → policy stabile e deterministica, reward > 300.

📚 Documentazione

La documentazione completa è disponibile nella cartella docs/:

  • ResQBot.pdf — Relazione dettagliata sul progetto ResQBot

🗺️ Roadmap

  • Migliorare gestione dei follower multipli
  • Integrazione con sensori avanzati (es. LIDAR simulato)
  • Training multi-agente in scenari collaborativi
  • Validazione in ambienti 3D realistici

👥 Author & Contact

Andrea Aceto - 📧 a.aceto6@studenti.unisa.itLinkedIn

Mario Cicalese — 📧 m.cicalese21@studenti.unisa.itLinkedIn

Irene Gaita — 📧 igaita3107@gmail.comLinkedIn


🙏 Riconoscimenti

  • Motore di simulazione: Unity3D
  • Framework RL: Unity ML-Agents
  • Pathfinding: Unity NavMesh
  • GUI: Unity UI Toolkit

About

ResQBot è un progetto sviluppato in Unity3D con ML-Agents per simulare scenari di search and rescue post-terremoto. Un robot mobile addestrato con reinforcement learning esplora l’ambiente, evita ostacoli e porta in salvo i civili nella zona sicura.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages