Introduction
Goal: Realizzazione di
DIFFERENTIAL DRIVE ROBOT limitatamente all'analisi dei requisiti
Requirements
Costruire un sistema software che comanda un Differential Drive Robot (DDR) in modo che,
partendo dalla posizione iniziale HOME, il robot si sposti lungo il perimetro di una stanza rettangolare vuota.
Il DDR si deve fermare quando tornato in HOME.
Il DDR è anche sensibile ai dati rilevati da un Radar.
Quando il Radar rileva un 'intruso' a una distanza minore di una distanza prefissata DMIN:
- se il DDR si sta muovendo, il DDR si ferma fino a che il Radar non rileva più un 'intruso' così vicino
- se il DDR è fermo in HOME, il DDR ruota su sè stesso fino a che un 'intruso' così vicino scompare
Requirement analysis
L'analisi dei requisiti mira a chiarire le astrazioni software necessarie e le interazioni tra il robot e l'ambiente:
- Differential Drive Robot (DDR): Entità autonoma e proattiva capace di muoversi nello spazio applicando velocità angolari differenziate alle ruote. Dal punto di vista del software, è un attore che esegue un piano di movimento sequenziale (perimetro).
- HOME: Punto di riferimento spaziale che funge da condizione di terminazione del piano. Deve essere formalizzato come un'area di prossimità o una coordinata specifica (0,0) nel sistema di riferimento locale.
- Radar: Dispositivo di input (sensore) modellato come un produttore di flussi di dati. La natura del rilevamento richiede un meccanismo di evento broadcast (es.
Event intruder : intruder(DISTANCE)) per permettere al robot di reagire senza polling bloccante.
- DMIN: Valore soglia prefissato che funge da discriminante logica per il cambio di stato della FSM (Finite State Machine) del robot.
- Comportamento Reattivo (Preemption):
- Se il robot è in movimento, il rilevamento di un intruso deve causare una preemption immediata sul piano di navigazione corrente, forzando uno stato di
Halt.
- Se il robot è in HOME, l'evento intruso attiva un comportamento di Spinning (rotazione sul proprio asse), che persiste finché la condizione
distanza < DMIN rimane vera.
Problem analysis
Test plans
Project
Testing
Deployment
Maintenance
By Gianluca Varisco email: gianluca.varisco@studio.unibo.it,

GIT repo: https://github.com/gianluca-varisco/issLab2026