Oceanus: una piattaforma a basso costo attenta al contesto per gli yacht da regata

INTRODUZIONE

I moderni yacht da regata sono dotati di numerosi sensori e monitor che forniscono una grande quantità di informazioni ai loro equipaggi. La gamma di dati rilevati o calcolati va dalle informazioni relative al GPS (posizione, velocità, rotta geografica, posizione su una mappa), alle informazioni relative all’imbarcazione (rotta magnetica, velocità sull’acqua, angolo di sbandamento) e alle informazioni sul vento e sull’acqua (direzione e velocità del vento apparente, profondità dell’acqua). Le regate veliche, anche per i club e le gare amatoriali, sono diventate sempre più tecnologiche: ad esempio, la maggior parte dei membri dell’equipaggio utilizza diagrammi polari della barca che indicano, per diversi punti di velocità della vela e del vento, la velocità ottimale e la barca è capace. Tali dati vengono utilizzati per mettere a punto continuamente lo sterzo della barca e il taglio delle vele, per raggiungere prestazioni che vanno oltre il livello che l’equipaggio medio può raggiungere basandosi solo sull’esperienza dei “seats-of-the-pants”.

Mentre i grandi team velici (come i team di Coppa America o Volvo Ocean Race) possono fare affidamento su soluzioni ad alta tecnologia, sia a bordo che a terra, questo non è il caso dei team con budget molto più piccoli. Esistono applicazioni IT meno sofisticate da utilizzare a bordo degli yacht, ma gli sviluppatori di software devono affrontare una serie di sfide a causa del particolare contesto in cui vengono utilizzate queste applicazioni, vale a dire le regate veliche.

Il contesto è caratterizzato dal fatto che i membri dell’equipaggio, durante le regate, sono sottoposti a un intenso stress cognitivo a causa della necessità di prendere la decisione giusta al momento giusto, eseguendo le azioni corrispondenti con precisione e in stretto coordinamento con gli altri membri. Ciò può essere ulteriormente complicato da condizioni meteorologiche o marine sfavorevoli e dal comportamento aggressivo dei concorrenti (vedi Fig. 1).

La barca laboratorio
Figura 1: William B, lo yacht utilizzato da Uniud Sailing Lab, e condizioni tipiche a bordo durante una regata.

Per questi motivi, l’interfaccia utente (UI) di tali applicazioni deve essere realizzata con attenzione. La prima legge di usabilità di Steve Krug, “Non farmi pensare” [Kru00], si applica molto bene a questo contesto: gli utenti, che spesso sono velisti non professionisti e quindi non addestrati professionalmente, non possono dedicare tempo e attenzione a guardarsi fuori come usare l’interfaccia utente. Devono essere completamente concentrati sui loro compiti di navigazione e non hanno ulteriore larghezza di banda cognitiva da risparmiare. Pertanto, le schermate dell’interfaccia utente dovrebbero presentare le informazioni minime che si verificano per l’attività in corso al fine di evitare il sovraccarico di informazioni. La navigazione manuale tra gli schermi dovrebbe essere mantenuta al minimo per evitare distrazioni.
Inoltre, questo tipo di applicazioni deve fornire supporto a diversi ruoli dell’equipaggio: il timoniere ha bisogno di dati per ottimizzare lo sterzo della barca, i trimmer necessitano di dati per ottimizzare le forme della vela e il tattico ha bisogno di supporto per capire le opportunità strategiche.

Lo sviluppo di applicazioni adatte è reso ancora più complesso se si considera che le condizioni ambientali in cui vengono utilizzate le applicazioni sono generalmente piuttosto impegnative: oltre a funzionare su dispositivi ragionevolmente impermeabili, altri requisiti derivano dalla necessità di far fronte a una forte illuminazione solare di giorno , uso notturno che preserva la visione notturna, basso consumo energetico soprattutto per i dispositivi mobili.

Nel mercato ci sono applicazioni mobili che possono essere utilizzate in queste situazioni. Tuttavia, hanno dei limiti. Richiedono l’installazione di software sui propri dispositivi, che a volte potrebbero non essere compatibili. Diversi membri dell’equipaggio devono installarlo sui propri dispositivi. Tali dispositivi target potrebbero non essere appropriati per il contesto perché non soddisfano i requisiti sopra menzionati. Inoltre, non sono né estensibili né personalizzabili, al fine di adattarsi a scenari nuovi o specifici. Di conseguenza, l’interfaccia utente è spesso piuttosto complessa, poiché l’applicazione non è destinata a usi specifici. Perché se la generalità dell’applicazione, la consapevolezza del contesto viene raramente implementata, nonostante l’importante ruolo che può svolgere nel semplificare l’interfaccia utente. Ad esempio, la consapevolezza del contesto può essere sfruttata per limitare la quantità di informazioni mostrate solo a ciò che è rilevante per il contesto specifico; la consapevolezza del contesto può aiutare a ridurre i controlli resi disponibili nell’interfaccia utente solo a ciò che è necessario in un momento.

In questo documento presentiamo Oceanus, una piattaforma hardware e software progettata per esplorare e sviluppare funzionalità intelligenti volte a supportare gli equipaggi di regata. Oceanus comprende un sistema di frontend (Neptune) e un sistema di backend (Argos); è un’applicazione web mobile basata su hardware a basso costo (Raspberry Pi e Kindle di Amazon) e fornisce un’interfaccia utente personalizzata per l’equipaggio di uno yacht da regata. Mostriamo come e perché Oceanus è stato sviluppato in un certo modo, come soddisfa la maggior parte dei requisiti cruciali sopra suggeriti, come presenta la consapevolezza del contesto come chiave per semplificare l’interfaccia utente e come l’adozione di un “LeanUX” e un approccio agile [Got13 , Coh10] è stato utile per ottenere un risultato positivo.

L’applicazione è stata sviluppata da Uniud Sailing Lab ed è stata utilizzata in allenamento e durante le regate veliche di club e campionati più importanti (vale a dire, l’Italian Offshore Sail Race 2017 e gli ORCWorlds Trieste 2017).

Il contributo di questo lavoro sta nel mostrare come un’applicazione simile può essere sviluppata come architettura client-server, cosa che non è mai stata fatta prima su hardware a basso costo. Mostriamo come questo disaccoppiamento porta a vantaggi come la capacità di utilizzare più client per diversi membri dell’equipaggio, la capacità di utilizzare diverse piattaforme di interfaccia utente e l’estensione della piattaforma. Il frontend è una ricca applicazione Internet che può essere modificata indipendentemente dal server. Il server può essere facilmente esteso con moduli che sfruttano nuovi sensori (come unità di movimento inerziale, IMU) e può essere sviluppato in modo tale che ciascun sensore sia monitorato in modo simultaneo, per evitare problemi di bassa latenza dovuti alla presenza di sensori con diversa velocità di risposta. Mostriamo come la consapevolezza del contesto può essere concepita come un modo intelligente per semplificare l’utilizzo dell’interfaccia utente che diventa così adattivo, sulla base di inferenze fatte sui dati forniti dai sensori. In base alla progettazione, abbiamo adottato la posizione secondo cui le caratteristiche attente al contesto dovrebbero essere altrettanto affidabili e utili; il più possibile per massimizzare l’accettabilità di Oceanus da parte degli equipaggi. Per questo motivo il loro design è stato particolarmente conservativo.

A questo punto, Neptune è il primo frontend incluso in Oceanus e si basa su un modulo sensibile al contesto che è stato implementato sul lato server, al fine di supportare i client il più sottili possibile. Spieghiamo infine come è stato organizzato il processo di sviluppo del software, soprattutto in relazione all’incapacità di testare frequentemente l’applicazione nella situazione reale per cui è stata concepita, vale a dire durante le gare.

Se vuoi saperne di più leggi il PDF completo.Icona PDF