Home
Android perde la bussola

08 Ottobre 2014

Android perde la bussola

di

Una delle difficoltà per lo sviluppatore "mobile" sta nelle diverse direzioni che può prendere un apparecchio. Alla lettera.

Aveva preparato il necessario per la sua avventura: zainone, borraccia, coltellino svizzero, kit del pronto soccorso, vestiti quanto bastano, una carica di perizia e la tecnologia del suo nuovo smartphone. Fu ritrovato, per fortuna.

Nella prossima edizione del Manuale delle Giovani Marmotte non troverete probabilmente un dispositivo Android. Ha infatti colpito la vicenda della posticipazione dell’uscita proprio per Android di Bounden, gioco dell’olandese Game Oven Studios, a causa di un inaffidabile magnetometro (o sensore bussola) sui diversi dispositivi, per nulla d’accordo tra loro su dove fosse la stella polare, dissidio testimoniato con un Vine allegato alla richiesta di aiuto sul loro blog ufficiale.

Apriti cielo: flame war. C’è chi ha accusato Game Oven Studios di negligenza per mancata calibrazione, chi ha portato la testimonianza dei dispositivi di casa, chi ha riferito che con diversi dispositivi iOS il fenomeno non sembra accadere, fino a quelli della teoria del complotto: sono pagati dalla Apple.

Niente di nuovo: è capitato a ogni smartphone di perdere la bussola – in un qualche momento della sua storia – indipendentemente dalla bandiera battente, e sono sicuro che diversi sviluppatori come me hanno già avuto modo di apprezzare, per così dire, il fenomeno.

È infatti indubbio per gli addetti ai lavori che il sensore bussola non sia mai stato campione in affidabilità ed efficacia. Basta elencare – senza requisiti di fisica teorica – che cosa sia capace di alterarne le misurazioni:

  • una calamita;
  • corrente continua in un conduttore;
  • singolari condizioni geografiche;
  • errata calibrazione del dispositivo.

Alcuni upgrade del sistema operativo hanno migliorato l’affidabilità del sensore. Si evince quindi che la chiamata al sensore attraverso le interfacce di programmazione (API) non è in realtà una lettura diretta del magnetometro, bensì un risultato filtrato e corretto da una formula non sempre esposta, né documentata né costante per tutte le elettroniche.

Mentre infatti il magnetometro identifica la direzione del campo magnetico sul piano NESW nel punto in cui ci troviamo, servono gli altri sensori per poter costruire un risultato coerente col contesto di utilizzo:

  • il giroscopio rileva i cambiamenti nell’orientamento del dispositivo e nella velocità di rotazione dello stesso;
  • l’accelerometro misura le variazioni in velocità del dispositivo nello spazio ed individua il vettore-gravità;
  • GPS e Wi-Fi possono identificare la posizione nello spazio.

Si parla infatti di sensor fusion, ovvero di algoritmi e logiche funzionali che combinano risultati di diversa natura per restituire un singolo risultato.

Stiamo quindi parlando di una sinergia tra hardware (sensori) e software (sensor fusion). Si intuisce che uniformando entrambi gli elementi è possibile affrontare il problema della correzione dell’errore del magnetometro con una granularità più fine. Non è quindi una sorpresa che l’illusione di una bussola sempre corretta – per la Game Oven Studios come per tutti gli altri sviluppatori – sia più vivida al nell’ecosistema Apple rispetto a quello Android.

Mentre Google impone ai produttori di hardware per Android un determinato standard per l’installazione delle elettroniche (e quindi dei sensori) sulla scheda madre del dispositivo, delega ad essi il compito di affinare e calibrare l’algoritmo di sensor fusion sui propri prodotti.

Come hanno risolto il problema in Game Oven Studios? Sostituendo l’algoritmo di sensor fusion.  E come? Le API di Android consentono di interrogare i sensori a monte delle elaborazioni (in gergo raw data). E da questo i programmatori sono ripartiti per ottenere una lettura attendibile.

Non si pensi a un algoritmo di sensor fusion universale che funziona con tutti i dispositivi Android del mondo. Non ci è dato quantificarne l’efficienza, tuttavia alla Game Oven Studios hanno confessato di aver utilizzato nel loro prodotto codice prodotto da Xsens, azienda che ha fatto del motion tracking il proprio cavallo di battaglia.

Conclusione: Bounden è stato pubblicato e gli utenti possono divertirsi grazie anche al relativo algoritmo di sensor fusion. A noialtri sviluppatori rimane una sola certezza: prima di avventurarsi nella giungla con un dispositivo Android, sarebbe meglio farsi amico qualcuno dentro Xsens.

Iscriviti alla newsletter

Novità, promozioni e approfondimenti per imparare sempre qualcosa di nuovo

Gli argomenti che mi interessano:
Iscrivendomi dichiaro di aver preso visione dell’Informativa fornita ai sensi dell'art. 13 e 14 del Regolamento Europeo EU 679/2016.