Introduction
Goal: Costruire un sistema software che comanda un Differential Drive Robot (DDR)
Requirements
Requirement analysis
R1: Comando di una sola entità di robot alla volta
R2: Il robot comincia in posizione iniziale, chiamata "HOME"
R3: Il robot si muove lungo un perimetro
R4: Condizione di termine del lavoro del robot è che ritorni in un luogo intorno alla zona che è contrassegnata come HOME
R5: Condizione di arresto temporaneo del robot è l'incontro di un'ostacolo percepito a distanza minore di una distanza DMIN
R6: Condizione di uscita dallo stato di arresto temporaneo è che l'ostacolo non venga più rilevato a distanza minore di DMIN
R7: Se nella zona HOME il robot rileva un ostacolo a distanza minore di DMIN, ruota sul posto fino a quando non trova una direzione sul perimetro in cui può andare e che non abbia un stacolo a distanza minore di DMIN
Dall'interazione con il committente è stato possibile evincere e descrivere con più precisione i seguenti concetti
Robot - entità (Attore) che:
1. agisce in maniera indipendente
2. conosce il perimetro della stanza
3. si muove solo lungo il perimetro in una o l'altra direzione -> la zona HOME deve essere sul perimetro
4. può muoversi avanti o ruotare su sé stesso
5. una volta che inizia a muoversi si ferma solo se incontra un ostacolo (segnalato da un sonar) o termina
6. può misurare la distanza che percorre per conoscere la propria posizione sul perimetro
7. conoscendo il perimetro percorre linee dritte fino agli angoli, di cui conosce l'ampiezza, qui vi si ferma e rutora di conseguenza
Sonar - entità (Attore) che:
1. misura la distanza tra gli oggetti e il robot
2. manda un segnale di blocco quando questa distanza è minore di un valore DMIN noto a priori
3. manda un segnale di sblocco se questa distanza è maggiore di DMIN
HOME - punto o zona del perimetro da cui il robot parte e su cui il robot termina
Considerazione:
- è necessario per la partenza del robot da HOME che questi trovi una delle due direzioni sul perimetro prive di ostacoli, e, nel mentre, ruoterà su sé stesso senza termine
- Essendo il perimetro noto, è possibile considerarlo come l'unione tra una lunghezza e la lista dei suoi angoli. Per identificare la posizione del robot lungo il perimetro è sufficiente utilizzare un float minore della lunghezza del perimetro e considerare che il float rappresenta la quantità di perimetro percorsa in senso orario/antiorario rispetto alla HOME
- La misurazione delle distanze percorse può essere sotto forma di eventi lanciati dai sensori su ognuna delle due ruote e modellati come attori o come pojo che modifica dinamicamente i valori interni tramite i servizi di movimento.
Problem analysis
Test plans
Project
Testing
Deployment
Maintenance
By Leonardo Ciacco email: leonardo.ciacco@studio.unibo.it,

https://github.com/Festus55/iss_leonardo_ciacco