ITTO20111144A1 - Sistema e metodo di compensazione dell'orientamento di un dispositivo portatile - Google Patents

Sistema e metodo di compensazione dell'orientamento di un dispositivo portatile Download PDF

Info

Publication number
ITTO20111144A1
ITTO20111144A1 IT001144A ITTO20111144A ITTO20111144A1 IT TO20111144 A1 ITTO20111144 A1 IT TO20111144A1 IT 001144 A IT001144 A IT 001144A IT TO20111144 A ITTO20111144 A IT TO20111144A IT TO20111144 A1 ITTO20111144 A1 IT TO20111144A1
Authority
IT
Italy
Prior art keywords
portable device
roll
rotation angle
reference system
acceleration
Prior art date
Application number
IT001144A
Other languages
English (en)
Inventor
Alberto Marinoni
Original Assignee
St Microelectronics Srl
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by St Microelectronics Srl filed Critical St Microelectronics Srl
Priority to IT001144A priority Critical patent/ITTO20111144A1/it
Priority to US13/712,605 priority patent/US20130151195A1/en
Publication of ITTO20111144A1 publication Critical patent/ITTO20111144A1/it

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B7/00Measuring arrangements characterised by the use of electric or magnetic techniques
    • G01B7/30Measuring arrangements characterised by the use of electric or magnetic techniques for measuring angles or tapers; for testing the alignment of axes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Radio Relay Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Position Input By Displaying (AREA)

Description

DESCRIZIONE
“SISTEMA E METODO DI COMPENSAZIONE DELL'ORIENTAMENTO DI UN DISPOSITIVO PORTATILEâ€
La presente invenzione à ̈ relativa ad un sistema e ad un metodo di compensazione dell’orientamento di un dispositivo portatile (handheld device), in particolare per applicazioni di puntamento o analoghe, in cui si richiede di stabilire una corrispondenza tra movimenti del dispositivo portatile, impartiti da un utilizzatore, e comandi da eseguire relativamente ad un sistema di riferimento fisso (ad esempio per implementare spostamenti di un cursore, o analogo elemento, su di uno schermo, o analogo elemento di visualizzazione o rappresentazione di informazioni).
Come noto, sono numerose le applicazioni in cui un dispositivo portatile (o palmare) viene utilizzato da un utente per interagire con un’interfaccia utente di un apparecchio elettronico, in cui gli spostamenti impartiti al dispositivo portatile dall’utente vengono convertiti in comandi per l’apparecchio elettronico dall’interfaccia stessa, ad esempio per comandare spostamenti di un cursore o di altre immagini rappresentate su uno schermo di visualizzazione o, più in generale, per generare variazioni dell’ambiente grafico di lavoro. Il dispositivo portatile à ̈ ad esempio un controller per videogiochi, o un dispositivo puntatore tridimensionale (3D), a cui la seguente trattazione farà particolare riferimento, a titolo puramente esemplificativo; si noti che con “puntamento 3D†si intende qui la capacità di identificare movimenti del dispositivo portatile nello spazio tridimensionale e la corrispondente capacità dell’interfaccia utente di convertire tali movimenti in opportuni comandi.
In generale, la problematica di tali applicazioni consiste dunque nel trasformare la traiettoria percorsa da un oggetto libero di muoversi in uno spazio tridimensionale (il dispositivo portatile) in spostamenti da attuare in un sistema di riferimento fisso (quello dello schermo di visualizzazione).
Come raffigurato schematicamente in figura 1, vengono dunque considerati due sistemi di riferimento distinti: il primo sistema, cosiddetto “body-frame†, si riferisce ad una prima terna di assi cartesiani xpypzpdi un sistema di riferimento mobile solidale al dispositivo portatile, indicato con 1; il secondo sistema, cosiddetto “referenceframe†, rappresenta un sistema di riferimento fisso, di tipo inerziale ed allineato all’accelerazione di gravità G, definito da una seconda terna di assi cartesiani xvyvzvsolidale, ad esempio, ad uno schermo di visualizzazione 2 affacciato in uso al dispositivo portatile 1. All’interno del sistema di riferimento mobile vengono rilevati i movimenti relativi del dispositivo portatile 1, mentre il sistema di riferimento fisso costituisce il sistema nel quale devono essere attuati o rappresentati tali movimenti. Ad esempio, un asse orizzontale xved un asse verticale yvdel sistema di riferimento fisso definiscono il piano dello schermo di visualizzazione 2, su cui vengono trasferiti i movimenti del dispositivo portatile 1, mentre un asse longitudinale zvdello stesso sistema di riferimento fisso à ̈ allineato ad un rispettivo asse longitudinale zpdel sistema di riferimento mobile, ed alla direzione di puntamento del dispositivo portatile 1 (in generale coincidente anche con una direzione di estensione longitudinale dello stesso dispositivo portatile 1).
Si noti che il dispositivo portatile 1 à ̈ mostrato in figura 1 in un suo orientamento usuale di utilizzo, con una faccia superiore 1a rivolta verso l’alto (rispetto all’utilizzatore che lo impugna), in modo tale, ad esempio, da rivolgere verso lo stesso utilizzatore opportuni elementi di interfaccia 3, ad esempio sotto forma di pulsanti, leve, o analoghi elementi.
Nella stessa figura 1 si indicano inoltre: con ωyla velocità di rotazione di imbardata (yaw) del dispositivo portatile 1 intorno all’asse verticale ypdel sistema di riferimento mobile; con ωpla velocità di rotazione di beccheggio (pitch) del dispositivo portatile 1 intorno all’asse orizzontale xpdel sistema di riferimento mobile; e con ωrla velocità di rotazione di rollio (roll) del dispositivo portatile 1 intorno all’asse longitudinale zp, a cui à ̈ associato un angolo di rotazione di rollio φ.
In generale, l’algoritmo implementato considera coincidenti i due sistemi di riferimento per quanto riguarda gli spostamenti lungo gli assi orizzontale e verticale Δx, Δy, applicando le seguenti espressioni:
Δxv(n)= Δxp(n)= Δψ(n)·S = ωy(n)Δt ·S (1)
Δyv(n)= Δyp(n)= ΔΠ̧(n)·S = ωp(n)Δt ·S (2)
dove ψ indica l’angolo di rotazione di imbardata intorno all’asse verticale yp; Î ̧ l’angolo di rotazione di beccheggio intorno all’asse orizzontale xp; S rappresenta la sensibilità di puntamento espressa in pixel al grado e indica di quante unità elementari si dovrà spostare il cursore a seguito della rotazione di un grado del puntatore; ed n indica il generico n-esimo campione dei segnali rilevati dallo stesso sensore giroscopico (considerando un dato intervallo di campionamento).
Gli angoli di rotazione di imbardata e di beccheggio ψ e Î ̧ sono rilevati per integrazione dalle uscite di un sensore giroscopico, non illustrato, disposto a bordo del dispositivo portatile 1, e configurato per rilevare le velocità di rotazione di imbardata e di beccheggio ωy, ωp.
Come evidenziato dalle suddette espressioni (1) e (2), gli spostamenti lungo gli assi orizzontale e verticale (Δx, Δy) risultano formalmente svincolati dall’orientamento del dispositivo portatile 1 rispetto al suo asse longitudinale zp, ovvero dall’angolo di rotazione di rollio φ che viene impartito allo stesso dispositivo portatile 1 dai movimenti dell’utente. Le rotazioni di imbardata e di beccheggio effettuate dal dispositivo all’interno del sistema di riferimento mobile sono pertanto trasformate nei rispettivi movimenti lungo gli assi orizzontale e verticale xve yvdel sistema di riferimento fisso, indipendentemente dalla posizione reciproca tra i due sistemi di riferimento (determinata, appunto, dall’inclinazione del dispositivo portatile 1 e dal relativo angolo di rotazione di rollio φ).
Un algoritmo di questo tipo richiede quindi che l’utilizzatore mantenga il dispositivo nel corretto orientamento affinché i movimenti effettuati siano coincidenti con gli spostamenti attuati sullo schermo di visualizzazione. Eventuali rotazioni del dispositivo portatile 1 intorno al proprio asse longitudinale zppotrebbero, infatti, generare un funzionamento poco intuitivo a causa del disallineamento generato tra i due sistemi di riferimento.
Ad esempio, come mostrato schematicamente in figura 2, applicando al dispositivo portatile 1 una rotazione di rollio con angolo φ pari a novanta gradi, si ottiene una rotazione del sistema di riferimento mobile rispetto a quello fisso che porta gli assi orizzontale xpe verticale ypa coincidere rispettivamente con gli assi –yved xv(il segno – à ̈ determinato dall’inversione di verso dell’asse verticale). In questa configurazione, ed in accordo con le espressioni (1) e (2), una rotazione di imbardata applicata al dispositivo portatile 1 di un angolo ψ continua tuttavia a produrre uno spostamento sullo schermo in direzione laterale (lungo l’asse orizzontale xv), pur essendo ottenuta in tal caso muovendo il dispositivo verso l’alto o verso il basso rispetto allo schermo stesso (ovvero, parallelamente all’asse verticale yv); si genera così un movimento nel sistema di riferimento fisso non intuitivo e contrario alle attese dell’utente. Analogo comportamento si verifica per le rotazioni di beccheggio, che producono uno spostamento sullo schermo di visualizzazione 2 verso l’alto o il basso in relazione ad un movimento del dispositivo portatile 1 compiuto lateralmente rispetto allo schermo stesso.
Per risolvere tale inconveniente, e far sì che l’operatività del sistema risulti indipendente dalla rotazione del dispositivo portatile 1 rispetto all’asse longitudinale zp, sono stati pertanto proposti algoritmi di compensazione del rollio, finalizzati in generale a mettere in relazione i due sistemi di riferimento e a rendere gli spostamenti sullo schermo di visualizzazione 2 dipendenti anche dall’angolo di rotazione di rollio φ del dispositivo stesso. In sintesi, tale compensazione si pone l’obiettivo di trasformare i movimenti rilevati all’interno del sistema di riferimento mobile in movimenti assoluti rispetto al sistema di riferimento fisso.
Assumendo quindi i due sistemi di riferimento disgiunti e liberi di ruotare reciprocamente, le espressioni (1) e (2) vengono modificate assumendo la forma seguente:
Δxp(n)= Δψ(n)·S = ωy(n)Δt ·S (3)
Δyp(n)= ΔΠ̧(n)·S = ωp(n)Δt ·S (4)
Δxv(n) α Δxp(n) (5)
Δyv(n) α Δyp(n) (6)
Le espressioni (3) e (4) permettono quindi nuovamente di ricavare gli spostamenti nel piano orizzontale nel sistema di riferimento mobile, richiedendo tuttavia un’ulteriore trasformazione per ottenere le rispettive coordinate nel sistema di riferimento fisso, relativo allo schermo di visualizzazione 2, come evidenziato dalle generiche relazioni di proporzionalità (5) e (6).
I vettori di spostamento Δxpe Δyp(riferiti alle coordinate acquisite rispetto al sistema di riferimento mobile) vengono dunque proiettati nel sistema di riferimento fisso, ruotandoli di una quantità pari all’angolo di rotazione di rollio φ che il dispositivo portatile 1 compie attorno al proprio asse longitudinale zp. La questione si riconduce dunque ad un cambiamento trigonometrico di coordinate, risolvibile applicando una matrice di rotazione alle coordinate di movimento del dispositivo portatile 1.
Una matrice di rotazione nello spazio 3D ha dimensione 3x3 e fornisce l’orientamento di una terna cartesiana rispetto ad un’altra; i vettori colonna che la compongono rappresentano i coseni direttori degli assi appartenenti alla terna che viene ruotata rispetto alla terna di partenza. La matrice di rotazione à ̈ data dalla seguente espressione:
cosï ª senï ª 0
Rzp(φ)=
ïƒªï€ senï ª cosï ª 0
 (7)
 0 0 1
e descrive una generica rotazione di un angolo pari a φ rispetto all’asse longitudinale zp.
La matrice di rotazione Rzp(φ) mette in relazione il sistema di riferimento fisso, indicato con Δv, con il sistema di riferimento mobile, indicato con Δp, mediante la seguente relazione:
Δv= Δp· Rzp(φ) (8)
ovvero:
ïƒ©ï „ x v ïƒ©ï „ x p cosï ª senï ª 0

ïƒªï „ y    
v = ïƒªï „ y pïƒºïƒ—ïƒªï€ senï ª cosï ª 0
 (9)
 1   1   0 0 1
o ancora:
Δxv= Δxp· cos(φ) Δyp· sen(φ) (10)
Δyv= -Δxp· sen(φ) Δyp· cos(φ) (11)
La coordinata z lungo l’asse longitudinale non viene presa in considerazione dall’algoritmo di trasformazione in quanto non à ̈ possibile attuare movimenti del cursore in direzione perpendicolare al piano dello schermo di visualizzazione 2 (dunque, il cambiamento di coordinate si riconduce ad una trasformazione di rotazione bidimensionale nel piano dello schermo).
Le espressioni (10) e (11) soddisfano appieno le esigenze di allineamento tra i due sistemi di riferimento e consentono di ricavare spostamenti nel sistema di riferimento fisso che risultino indipendenti dall’orientamento del dispositivo portatile 1; ad esempio, si verifica agevolmente come una rotazione di rollio del dispositivo portatile 1 di un angolo φ pari a 90° (come mostrato nella figura 2 precedentemente discussa) produca un’inversione tra gli assi orizzontale e verticale, unitamente ad una correzione dei rispettivi versi.
In Figura 3 à ̈ riportata una rappresentazione grafica del problema di trasformazione di coordinate tra i due sistemi di riferimento, mobile e fisso, così come formalizzato dalle relazioni (10) e (11), in cui sono indicate le proiezioni degli assi appartenenti al sistema di riferimento mobile sulla terna di assi del sistema di riferimento fisso.
La soluzione al problema della compensazione del rollio comporta pertanto la misurazione con sufficiente precisione dell’angolo di rotazione di rollio φ, ovvero dell’angolo di rotazione relativa tra il sistema di riferimento mobile ed il sistema di riferimento fisso. Come evidente anche dall’analisi della figura 3, ciò equivale a determinare l’angolo che si viene a formare tra il sistema di riferimento mobile (in particolare l’asse verticale yp) e la direzione dell’accelerazione di gravità, in modo da poter successivamente applicare le relazioni di trasformazione (10) e (11).
Una tecnica nota nel campo dei dispositivi di puntamento per la misurazione dell’angolo di rotazione di rollio φ prevede l’utilizzo di un sensore di accelerazione come inclinometro; tale tecnica si basa sul fatto che, in funzione delle accelerazioni statiche misurate per mezzo dell’accelerometro, à ̈ possibile determinare l’angolo di inclinazione di un corpo ad esso solidale. In tal caso, il sistema prevede pertanto di integrare nel dispositivo portatile 1 un sensore di accelerazione dotato di tre assi sensibili, in aggiunta al sensore giroscopico normalmente presente per la rilevazione degli angoli di rotazione di beccheggio e imbardata Î ̧, ψ (da cui si ricavano gli spostamenti Δxve Δxvsecondo le espressioni (3), (4), (10) e (11)).
La figura 4 mostra un possibile orientamento del sensore di accelerazione, indicato con 6, rispetto ai sistemi di riferimento mobile e fisso. In particolare, gli assi di rilevamento del sensore di accelerazione 6 sono orientati in modo tale da rilevare: una prima componente di accelerazione axlungo l’asse orizzontale xpdel sistema di riferimento mobile; una seconda componente di accelerazione aylungo l’asse verticale ypdel sistema di riferimento mobile; ed una terza componente di accelerazione azlungo l’asse longitudinale zpdel sistema di riferimento mobile (coincidente inoltre con l’asse longitudinale zvdel sistema di riferimento fisso).
Applicando opportune considerazioni trigonometriche, l’angolo di rotazione di rollio φ può essere determinato in funzione delle componenti di accelerazione rilevate dal sensore di accelerazione 6, mediante la relazione:

 a 
ï ªï€1⁄2 arctan x 
(12)
 2 2
 a z 
ïƒ ̈ ay ïƒ ̧
Il risultato ottenuto dalla relazione (12), insieme
agli spostamenti angolari di beccheggio e imbardata
ricavati dall’integrazione delle velocità angolari rilevate
dal sensore giroscopico, anch’esso solidale al dispositivo
portatile 1, forniscono dunque tutti gli elementi necessari
per la completa risoluzione dell’algoritmo definito dalle
espressioni (10) e (11), consentendo così anche la
compensazione del rollio dello stesso dispositivo.
Nonostante consenta di risolvere, almeno teoricamente,
il problema della compensazione di rollio, la tecnica
descritta presenta tuttavia alcune limitazioni che non
consentono di sfruttarne pienamente i vantaggi.
In primo luogo, dall’esame delle espressioni (10),
(11) e (12) à ̈ evidente che la determinazione dell’angolo di
rotazione di rollio φ comporta l’esecuzione di funzioni
matematiche e trigonometriche relativamente gravose dal
punto di vista computazionale (una radice quadrata,
un’arcotangente, un seno ed un coseno), che possono causare
rallentamenti o cali prestazionali dell’unità di
elaborazione che governa il funzionamento generale del
sistema (determinando ad esempio rallentamenti negli
spostamenti del cursore sullo schermo di visualizzazione 2, compromettendo l’immediatezza dell’interazione con l’utente).
Inoltre, data la dipendenza diretta delle coordinate di spostamento sullo schermo di visualizzazione 2 ottenute per mezzo delle relazioni (10) e (11), nei confronti dei valori assunti dinamicamente dall’angolo di rotazione di rollio φ del dispositivo portatile 1, à ̈ evidente il verificarsi di artefatti di movimento ogni qual volta vengano commessi errori nella stima dello stesso angolo di rotazione di rollio φ.
Si dimostra che l’espressione (12) restituisce un valore angolare corretto solamente nel caso in cui il sensore di accelerazione 6 (ed il dispositivo portatile 1 ad esso solidale) sia soggetto alle sole componenti statiche dell’accelerazione. Quando le uscite del sensore di accelerazione 6 presentano invece una risultante con modulo diverso da quello dell’accelerazione di gravità, ovvero in presenza di contributi di accelerazione dinamica, si verificano dunque errori dovuti alla determinazione inesatta dell’angolo di rotazione di rollio φ.
La presenza di contributi dinamici à ̈ tuttavia intrinseca all’utilizzo del dispositivo portatile 1 da parte di un utente, ad esempio per applicazioni di puntamento, in quanto si verifica ogni volta che il dispositivo à ̈ sottoposto a vibrazioni o spostamenti impartiti dall’utente per attuare il movimento del cursore sullo schermo di visualizzazione 2.
In presenza di componenti dinamiche di accelerazione, la relazione (12) deve dunque essere riscritta nel modo seguente (in cui vengono esplicitate le componenti statiche, indicate con pedice †̃s’ e le componenti dinamiche, indicate con pedice †̃d’, dell’accelerazione):

ï ª arctan a  
ï€1⁄2 xs a xd 
 (13)
2
ïƒ ̈ (aysayd)2(azs a zd )
ïƒ ̧
Come precedentemente indicato, tale espressione (13) richiede, come condizione necessaria e sufficiente per restituire un risultato angolare corretto, che siano verificate le seguenti ulteriori relazioni (ovvero che sia verificata la presenza di una condizione statica):
a 2
xsa 2
ys  a 2
zs ï€1⁄2 1 (14)
axdï€1⁄2aydï€1⁄2 a zdï€1⁄2 0 (15)
La figura 5 mostra, a titolo esemplificativo, l’effetto della presenza di una componente di accelerazione dinamica axdlungo l’asse orizzontale xpdel sistema di riferimento mobile associato al dispositivo portatile 1, che si suppone in posizione orizzontale (ovvero con la faccia superiore 1a orientata verso l’alto e sostanzialmente parallela al suolo) e sottoposto dall’utente ad una velocità di rotazione di imbardata ωyper eseguire uno spostamento del cursore sullo schermo di visualizzazione 2 lungo l’asse orizzontale xv. Supponendo inizialmente l’assenza di componenti di accelerazione dinamica, il sensore di accelerazione 6 integrato nel dispositivo portatile 1 misura l’accelerazione di gravità G come unica componente di accelerazione nel verso positivo dell’asse verticale yp.
In queste condizioni, le accelerazioni statiche e dinamiche sono tali da rispettare le relazioni (14) e (15), determinando un angolo di rotazione di rollio φ coerente al reale posizionamento del sistema:

 a 
ï ªï€1⁄2arctan xs  0
ï€1⁄2 arctan 
ï€1⁄2 0 (16)
 2 2
ïƒ ̈ ays  a zs  ïƒ ̈ 1ïƒ ̧
ïƒ ̧
In altre parole, le espressioni (10) e (11) non determinano alcuna correzione delle coordinate di spostamento del cursore, data l’assenza di contributo di rollio.
Al contrario, nel caso in cui il dispositivo portatile 1 viene sottoposto dall’utente ad uno spostamento nel verso positivo dell’asse orizzontale xp, l’accelerometro rileva una componente dinamica di accelerazione axd, che altera il risultato dell’operazione di compensazione di rollio; infatti, l’espressione (16) si deve in tal caso riscrivere nel modo seguente:

ï ª'ï€1⁄2arctan a xd
 arctan a
 xd
 7)
ysï€1⁄2  0 (1
ïƒ ̈ a ïƒ ̧ ïƒ ̈ 1ïƒ ̧
In questa condizione, l’algoritmo determina una rotazione di rollio fittizia del dispositivo portatile 1, pari all’angolo φ', che, applicata alle relazioni (10) e (11), determina una correzione erronea delle coordinate di movimento del cursore sullo schermo di visualizzazione 2; in particolare, valgono in tal caso le seguenti relazioni:
Δxv= Δxp· cos(φ') (18)
Δyv= -Δxp· sen(φ') (19)
Come mostrato schematicamente in figura 5, la suddetta rotazione di rollio fittizia φ' determina, una volta proiettata lungo gli assi orizzontale e verticale xve yv, un movimento diagonale del cursore, qui indicato con 8, che non corrisponde ad una reale modificazione dell’inclinazione del dispositivo portatile 1 (in altre parole, tale comportamento corrisponde a quello che si otterrebbe se il telecomando fosse realmente ruotato in senso antiorario dell’angolo φ').
La variazione fittizia dell’angolo di rotazione di rollio φ' determina quindi la generazione di spostamenti fittizi del cursore 8 in direzioni differenti rispetto al reale movimento del dispositivo portatile 1, contribuendo a rendere quanto meno poco intuitiva per l’utente l’esperienza di utilizzo.
Una possibile soluzione a tale problematica può essere quella di applicare un filtraggio passa basso dei segnali di accelerazione rilevati dal sensore di accelerazione 6, per cancellare eventuali componenti dinamiche indesiderate e lasciare idealmente soltanto le componenti statiche dovute alla gravità.
Tuttavia, la presente richiedente ha verificato che anche tale soluzione non à ̈ esente da inconvenienti, in particolar modo a causa del ritardo introdotto dal filtro per estrarre la sola componente continua del segnale, che genera un effetto “scia†sullo schermo di visualizzazione, come risultato dell’applicazione delle espressioni (10) e (11). Migliori prestazioni in termini di ritardo di fase possono essere ottenute spostando la frequenza di taglio del filtro nell’intorno di qualche Hz, ma questo non consente di cancellare adeguatamente componenti di accelerazione a bassa frequenza (ad esempio, accelerazioni centrifughe che derivano da movimenti rotatori ripetuti nel tempo, come discusso in seguito).
In sostanza, la presente richiedente ha verificato che una soluzione che preveda l’utilizzo di un sensore accelerometrico, eventualmente anche abbinato ad un opportuno filtraggio dei segnali, può non risultare sufficiente, in svariate condizioni operative, per fornire una adeguata compensazione degli artefatti di movimento dovuti a rotazioni di rollio del dispositivo portatile 1.
Ad esempio, l’utilizzo di un filtraggio passa basso si dimostra poco efficace nel caso di rotazioni ripetitive effettuate con lo scopo di disegnare una traiettoria circolare sullo schermo di visualizzazione 2, come illustrato schematicamente in figura 6.
Facendo riferimento a tale figura 6, movimenti rotatori del dispositivo portatile 1 eseguiti nel piano xpypgenerano infatti accelerazioni centrifughe di tipo dinamico, rappresentabili mediante segnali sinusoidali a bassa frequenza lungo gli assi orizzontale xpe verticale yp(indicati con axde ayd). Tali segnali sinusoidali hanno la caratteristica di essere sfasati di 90° e presentano un’ampiezza proporzionale alla velocità di rotazione con la quale viene effettuato il movimento suddetto.
Applicando la relazione (17), à ̈ possibile stimare la rotazione di rollio fittizia φ' generata in questo esempio dalle componenti dinamiche dell’accelerazione.
In Figura 7 sono riportate gli andamenti della rotazione di rollio fittizia φ' per tre differenti valori della velocità di rotazione associata al movimento del dispositivo portatile 1; come si può notare dai grafici, i movimenti rotatori ripetitivi determinano un effetto equivalente ad un’inclinazione variabile del dispositivo portatile 1, che, a seconda della velocità di rotazione, può assumere un’ampiezza compresa tra ± 90°. Date le caratteristiche frequenziali, tali componenti dinamiche di accelerazione sono di difficile cancellazione mediante le tecniche di filtraggio comunemente utilizzabili.
Scopo della presente invenzione à ̈ pertanto quello di risolvere, almeno in parte, i problemi precedentemente evidenziati relativi alla compensazione della rotazione di rollio del dispositivo portatile.
Secondo la presente invenzione vengono forniti un sistema ed un metodo di compensazione dell’orientamento di un dispositivo portatile, come definiti nelle rivendicazioni allegate.
Per una migliore comprensione della presente invenzione, ne vengono ora descritte forme di realizzazione preferite, a puro titolo di esempio non limitativo, con riferimento ai disegni allegati, nei quali:
- le figure 1 e 2 mostrano schematicamente un dispositivo portatile per applicazioni di puntamento tridimensionale, in differenti orientamenti rispetto ad uno schermo di visualizzazione;
- la figura 3 illustra schematicamente una trasformazione di coordinate tra un sistema di riferimento mobile associato al dispositivo portatile ed un sistema di riferimento fisso associato allo schermo di visualizzazione;
- la figura 4 mostra un sensore di accelerazione solidale al dispositivo portatile di figura 1 e 2;
- le figure 5 e 6 mostrano schematicamente l’effetto di componenti di accelerazione dinamiche agenti sul dispositivo portatile nei confronti degli spostamenti generati sullo schermo di visualizzazione;
- la figura 7 illustra grafici relativi alla variazione di un angolo di rotazione di rollio per il dispositivo portatile soggetto alle accelerazioni dinamiche di figura 6;
- la figura 8 mostra una ulteriore rappresentazione del dispositivo portatile, con evidenziata una velocità angolare di rollio agente sullo stesso dispositivo portatile;
- la figura 9 à ̈ uno schema a blocchi di un sistema di compensazione dell’orientamento del dispositivo portatile di figura 8, secondo un aspetto della presente invenzione; e
- la figura 10 Ã ̈ un diagramma di flusso relativo ad un metodo di compensazione della rotazione di rollio del dispositivo portatile implementato nel sistema di figura 9.
Come sarà descritto in dettaglio nel seguito, un aspetto della presente invenzione prevede, al fine della compensazione dell’orientamento del dispositivo portatile, l’utilizzo di un sensore giroscopico per la determinazione della velocità angolare di rollio a cui à ̈ sottoposto lo stesso dispositivo portatile, e l’integrazione di tale velocità angolare di rollio per ricavare l’angolo di rotazione di rollio da impiegare per le operazioni di compensazione. Tali operazioni di compensazione possono essere effettuate in analogia a quanto descritto in precedenza con riferimento alle espressioni (10) e (11), ovvero mediante l’utilizzo della matrice di rotazione associata allo stesso angolo di rotazione di rollio.
Come mostrato in figura 8 (in generale, in tale figura e nelle successive, elementi analoghi ad altri già descritti in precedenza vengono indicati con gli stessi numeri di riferimento), l’angolo di rotazione di rollio, nuovamente indicato con φ, viene dunque ricavato in funzione della velocità di rotazione di rollio ωrdel dispositivo portatile 1 attorno all’asse longitudinale zp, ricavata da un sensore giroscopico avente come asse sensibile lo stesso asse longitudinale zp, in particolare mediante una sua integrazione nel tempo.
Come illustrato schematicamente in figura 9, un sistema di compensazione dell’orientamento del dispositivo portatile 1, indicato nel suo insieme con 10, comprende dunque: un sensore giroscopico 12, in particolare includente una struttura di rilevamento microelettromeccanica MEMS (di tipo per sé nota, qui non descritta in dettaglio) configurata in modo da determinare la velocità di rotazione di imbardata ωydel dispositivo portatile 1 intorno all’asse verticale ypdel sistema di riferimento mobile associato allo stesso dispositivo (si veda anche la figura 8), la velocità di rotazione di beccheggio ωpdel dispositivo portatile 1 intorno all’asse orizzontale xpdel sistema di riferimento mobile, e la velocità di rotazione di rollio ωrdel dispositivo portatile 1 intorno all’asse longitudinale zp. Vantaggiosamente, il sensore giroscopico 12 à ̈ dunque un sensore triassiale, integrante in un unico chip il rilevamento di velocità angolare intorno a tre assi sensibili (in alternativa, possono tuttavia essere previsti più sensori giroscopici mono o bi-assiali).
Il sistema di compensazione 10 comprende inoltre un’unità di elaborazione 14, ad esempio includente un microprocessore, un microcontrollore, un ASIC (Application Specific Integrated Circuit), una FPGA (Field Programmable Gate Array), o analoghi elementi di elaborazione, collegata elettricamente al sensore giroscopico 12 e configurata in modo da ricevere i valori rilevati per le velocità angolari di imbardata ωy, beccheggio ωpe rollio ωral fine di consentire la determinazione, in funzione dei movimenti del dispositivo portatile 1 nel sistema di riferimento mobile, di corrispondenti comandi da impartire in un sistema di riferimento fisso, ad esempio spostamenti di un cursore su uno schermo di visualizzazione 2 associato ad un apparecchio elettronico 15, dotato di una propria unità di controllo 16.
In particolare, e facendo riferimento a quanto precedentemente illustrato, l’unità di elaborazione 14 à ̈ configurata per determinare gli spostamenti Δxpe Δypnel piano orizzontale del sistema di riferimento mobile tramite le espressioni (3) e (4), e quindi determinare i corrispondenti spostamenti desiderati Δxve Δyvda impartire nel sistema di riferimento fisso mediante le espressioni (10) e (11), utilizzando il valore di velocità angolare di rollio ωrdeterminato dal sensore giroscopico 12 per la determinazione dell’angolo di rotazione di rollio φ, mediante processo d’integrazione numerica.
Preferibilmente, per le ragioni che saranno chiarite in seguito, il sistema di compensazione 10 comprende inoltre un sensore di accelerazione, indicato nuovamente con 6, ed includente una rispettiva struttura di rilevamento MEMS (di tipo per sé nota, qui non descritta in dettaglio) configurata in modo da determinare le componenti di accelerazione axlungo l’asse orizzontale xpdel sistema di riferimento mobile, aylungo l’asse verticale ypdel sistema di riferimento mobile e azlungo l’asse longitudinale zpdel sistema di riferimento mobile, agenti sul dispositivo portatile 1.
Nella forma di realizzazione, schematicamente rappresentata in figura 9 a titolo puramente esemplificativo, il dispositivo portatile 1 presenta un involucro 18 che racchiude al suo interno, ad esempio accoppiati ad uno stesso circuito stampato (non mostrato) il sensore giroscopico 12, il sensore di accelerazione 6 e l’unità di elaborazione 14. In tale forma di realizzazione, il dispositivo portatile 1 à ̈ in grado di eseguire al suo interno l’insieme delle elaborazioni richieste per determinare gli spostamenti Δxve Δyvda impartire nel sistema di riferimento fisso, compensando inoltre le eventuali rotazioni di rollio; i valori degli spostamenti Δxve Δyvpossono essere quindi trasmessi all’unità di controllo 16 dell’apparecchio elettronico 15 mediante un canale di comunicazione wireless di qualunque tipo noto, per essere convertiti dalla stessa unità di controllo 16 in spostamenti di un cursore sullo schermo di visualizzazione 3 o in una qualsivoglia variazione dell’ambiente grafico di lavoro.
È tuttavia evidente che possono essere previste ulteriori forme di realizzazione, in cui, ad esempio, l’algoritmo di determinazione degli spostamenti Δxve Δyve di compensazione della rotazione di rollio (descritto in seguito in maggiore dettaglio) viene eseguito a bordo dell’unità di controllo 16 dell’apparecchio elettronico 15, che riceve a tal fine dall’unità di elaborazione 14 gli spostamenti Δxpe Δypnel piano orizzontale del sistema di riferimento mobile, o, analogamente, le velocità di rotazione di imbardata e beccheggio ωy, ωped inoltre la velocità di rotazione di rollio ωrdeterminate dal sensore giroscopico 12.
Viene ora descritto in maggiore dettaglio il metodo di compensazione della rotazione di rollio del dispositivo portatile 1, in una forma di realizzazione esemplificativa in cui il sensore giroscopico 12 fornisce un’uscita, analogica o digitale, che viene campionata dall’unità di elaborazione 14 con un intervallo di campionamento Δt.
L’angolo di rotazione di rollio φ viene determinato mediante la seguente espressione, che rappresenta l’integrale discreto nel tempo della velocità di rotazione di rollio ωrdeterminata dal sensore giroscopico 12:
N
ï ª<ï€1⁄2>ï ª 0<>ïƒ¥ï · r(n )<ïƒ—ï „>t (20)
nï€1⁄20
in cui φ0indica un valore iniziale per l’angolo di rotazione di rollio φ.
Tale espressione (20) prevede dunque un processo di calcolo iterativo, che, ad ogni nuovo campione acquisito della velocità angolare di rollio ωr, aggiorna il valore calcolato all’iterazione precedente:
ï ªnï€1⁄2ï ªnï€ 1ï€«ï · r(n )ïƒ—ï „ t (21)
La soluzione dell’espressione (20) prevede dunque la conoscenza dell’intervallo di campionamento Δt, della velocità angolare ωr, ad ogni istante di campionamento n, e del valore iniziale φ0; al fine di massimizzare l’accuratezza del calcolo angolare limitando l’accumularsi di errori che potrebbero far divergere il risultato dell’integrazione à ̈ dunque richiesto un preciso controllo di tali parametri.
L’intervallo di campionamento Δt può essere ricavato direttamente dall’unità di elaborazione 14 mediante un timer interno che consenta di misurare, ad esempio con la risoluzione di un microsecondo, il tempo intercorso tra la generazione di due dati consecutivi da parte del sensore giroscopico 12. Ciò consente di limitare le incertezze temporali nel calcolo dell’integrale, e di ottenere prestazioni ottimali indipendentemente dal sensore utilizzato (e dal corrispondente clock interno impiegato per le operazioni di rilevamento delle velocità angolari). In particolare, il periodo del segnale di clock del sensore giroscopico 12 à ̈ calibrato in fabbrica a passi discreti con granularità ad esempio del 10%, da cui discende che la frequenza di generazione dei dati à ̈ soggetta ad una variabilità del ± 5% rispetto ad un valore tipico previsto. Risolvendo l’espressione (20) sulla base del tempo di campionamento teorico si rischierebbe quindi di compiere un errore sistematico dovuto allo scostamento tra il valore nominale impostato e la reale frequenza di generazione dei campioni d’uscita, e tale errore inciderebbe linearmente sul tempo d’integrazione producendo una perdita di accuratezza nella stima dell’angolo di rotazione di rollio φ, con conseguente malfunzionamento della procedura di compensazione. Vantaggiosamente, l’utilizzo del timer interno dell’unità di elaborazione 14 e la determinazione dinamica dell’intervallo di campionamento Δt consentono di evitare tale problematica.
La velocità di rotazione di rollio ωrà ̈ invece ricavata, in modo noto, convertendo l’uscita del sensore giroscopico 12 per mezzo di un fattore di scala, corrispondente in generale alla sensibilità nominale del sensore stesso. Sebbene anche il valore di sensibilità presenti una data variabilità da sensore a sensore in funzione di un parametro di calibrazione discreto definito in fase di fabbricazione, e ciò possa comportare idealmente una possibile causa di deriva per l’integrale, la presente richiedente ha verificato la possibilità di cancellare errori di integrazione servendosi del sensore di accelerazione integrato, la cui risoluzione angolare può essere in generale ampiamente sufficiente a compensare le rotazioni di rollio nell’utilizzo pratico (che risultano infatti dell’ordine anche di qualche decina di gradi).
A causa delle loro caratteristiche costruttive, i giroscopi non consentono invece di determinare il terzo parametro, ovvero il valore iniziale φ0dell’angolo di rotazione di rollio φ, che risulta infatti indipendente dalla velocità angolare del sistema, essendo funzione dell’orientamento statico del dispositivo portatile 1 nel momento in cui viene acceso il sistema (in pratica, quando viene fornita una opportuna tensione di alimentazione al sistema di compensazione 10).
Tale valore iniziale φ0può dunque essere impostato in maniera opportuna ad inizio della procedura (o ricavato mediante un sistema di rilevamento esterno); secondo un ulteriore aspetto dell’invenzione, il valore iniziale φ0dell’angolo di rotazione di rollio φ viene determinato mediante l’utilizzo del sensore di accelerazione 6, che proprio a tal fine à ̈ previsto a bordo del dispositivo portatile 1. Il sistema di compensazione 10 prevede dunque in tal caso che siano presenti a bordo del dispositivo portatile 1 un accelerometro triassiale ed un giroscopio a tre assi sensibili, da utilizzasi in maniera opportuna, a seconda delle condizioni al contorno, per le operazioni di compensazione della rotazione di rollio.
Come precedentemente descritto con riferimento all’espressione (12), il sensore di accelerazione 6 consente infatti di determinare correttamente l’angolo di rotazione di rollio φ in condizione statica, ovvero di determinare l’inclinazione del dispositivo portatile 1 rispetto alla gravità, quando lo stesso dispositivo portatile 1 non à ̈ soggetto a componenti di accelerazione dinamica; il sensore giroscopico 12, invece, viene utilizzato per il calcolo dell’angolo di rotazione di rollio φ in condizione dinamica, durante le fasi di movimento durante le quali si sovrappone all’uscita del sensore di accelerazione 6 anche una componente dinamica, oltre a quella statica.
Inoltre, secondo un ulteriore aspetto dell’algoritmo di compensazione, le uscite del sensore di accelerazione 6, oltre ad essere impiegate per determinare il valore iniziale φ0, vengono impiegate anche per annullare eventuali errori di integrazione ed evitare derive dell’integrale stesso durante l’utilizzo del dispositivo portatile 1. In particolare, durante il funzionamento, ogni volta in cui si verifichi che la risultante delle componenti di accelerazione lungo i tre assi presenta modulo unitario, condizione per la quale il risultato fornito dalla relazione (12) à ̈ considerato attendibile, viene imposta la convergenza dell’integrale al valore angolare atteso, valutato mediante le uscite del sensore di accelerazione 6. Si possono così evitare disallineamenti tra l’angolo di rotazione di rollio φ stimato sulla base della velocità angolare di rollio ωred il reale orientamento del dispositivo portatile 1 rispetto all’asse longitudinale zp.
In dettaglio, e con riferimento alla figura 10, l’algoritmo di compensazione della rotazione di rollio prevede dunque, fase 20, l’acquisizione, ad ogni intervallo di campionamento n, dei nuovi dati provenienti dal sensore di accelerazione 6 e dal sensore giroscopico 12.
Quindi, fase 21, vengono determinati gli spostamenti Δxpe Δypnel piano orizzontale del sistema di riferimento mobile tramite le espressioni (3) e (4), in funzione delle velocità angolari di imbardata ωy(n) e beccheggio ωp(n) precedentemente acquisite.
In una fase 22, successiva alla fase 21, viene determinata la risultante delle accelerazioni agenti sul dispositivo portatile 1, che sono state acquisite nella fase 20, indicata con RA; in modo di per sé noto, tale risultante à ̈ data dalla seguente espressione:
RA(n)ï€1⁄2 ax(n)2ay(n)2a z( n ) 2
(22).
In seguito, fase 23, si verifica la presenza di una condizione statica del dispositivo portatile 1, vale a dire una condizione in cui si suppone che, in assenza di movimenti nel piano orizzontale (spostamenti Δxpe Δyppari a zero, o, comunque, inferiori ad una data soglia), il dispositivo portatile 1 sia soggetto alla sola accelerazione di gravità.
Nel caso in cui la verifica dia esito positivo (uscita †̃Sì’ dal blocco di controllo della fase 23), si passa ad una fase 24, in cui si aggiorna (o si imposta, in occorrenza della prima iterazione dell’algoritmo) il valore di una risultante di riferimento RAref, ponendolo pari al valore attuale della risultante delle accelerazioni RA(n). Si noti dunque come il valore di riferimento per la risultante delle accelerazioni sia calcolato sulla base di una misura diretta, permettendo così di rendere l’applicazione indipendente da eventuali offset del sensore di accelerazione 6.
Dalla fase 24 si passa alla fase 25, in cui, appurata la condizione statica del dispositivo portatile 1, e dunque la possibilità di effettuare la compensazione di rollio basandosi sui valori di accelerazione rilevati, si determina il valore corrente dell’angolo di rotazione di rollio φ in base all’espressione (12), ovvero:
 n ) 
ï ª( n)ï€1⁄2 arctan a x( 
 (23)
2
ïƒ ̈ ay(n)2a z( n ) ïƒ ̧
Successivamente, fase 26, si esegue la compensazione della rotazione di rollio, determinando al contempo gli spostamenti desiderati Δxve Δyvda impartire nel sistema di riferimento fisso mediante le espressioni (10) e (11), utilizzando il valore corrente dell’angolo di rotazione di rollio φ(n) precedentemente determinato (e l’associata matrice di rotazione).
Nel caso invece in cui venga determinata nella fase 23 la presenza di una condizione dinamica (o non statica), ovvero una condizione nella quale gli spostamenti Δxpe Δypnon sono pari a zero, o, comunque, non sono inferiori ad una data soglia, dalla stessa fase 23 si passa ad una fase 27, in cui si esegue un ulteriore controllo sul valore della risultante delle accelerazioni RA.
In particolare, nel caso in cui il valore corrente della risultante delle accelerazioni RA(n) sia diverso dalla risultante di riferimento RAref, o si discosti dal valore di riferimento per più di una data soglia, indicando dunque la presenza di una condizione di accelerazione dinamica, dalla fase 27 si passa ad una fase 28, in cui si determina il valore corrente dell’angolo di rotazione di rollio φ(n) tramite l’integrazione della velocità angolare di rollio ωr(n) rilevata dal sensore giroscopico 12 e l’espressione iterativa (21).
Vantaggiosamente, si ottiene in questo modo una valutazione corretta dell’angolo di rotazione di rollio φ, da utilizzare per la successiva determinazione, nuovamente nella fase 26, successiva alla fase 28, degli spostamenti desiderati Δxve Δyvda impartire nel sistema di riferimento fisso, con compensazione della rotazione di rollio.
Altrimenti, ovvero nel caso in cui si determini nella fase 27 che la risultante delle accelerazioni RA(n) non sia diversa dalla risultante di riferimento RAref, o non si discosti dal valore di riferimento per più di una data soglia, condizione indicativa dell’assenza di accelerazioni dinamiche, si ritorna alla fase 25, in cui il valore corrente dell’angolo di rotazione di rollio φ(n) viene determinato nuovamente in base all’espressione (12), mediante i valori di accelerazione rilevati.
In ogni caso, dalla fase 26 si ritorna alla fase 20, per l’acquisizione di nuovi campioni dei segnali dal sensore di accelerazione 6 e dal sensore giroscopico 12.
I vantaggi del sistema di compensazione della rotazione di rollio secondo la presente invenzione emergono in maniera evidente dalla descrizione precedente.
In ogni caso, si sottolinea nuovamente il fatto che l’integrazione della velocità angolare di rollio ωrrilevata dal sensore giroscopico 12 solidale al dispositivo portatile 1 consente di rendere più efficace l’operazione di compensazione della rotazione di rollio, in particolare in presenza di accelerazioni dinamiche agenti sullo stesso dispositivo.
Inoltre, l’utilizzo sinergico delle informazioni rilevate dal sensore giroscopico 12 ed inoltre dal sensore di accelerazione 6, anch’esso solidale al dispositivo portatile 1, consente di implementare un efficace algoritmo di compensazione, evitando errori dovuti all’accelerazione dinamica ed al contempo derive o errori di integrazione della velocità angolare di rollio ωr.
La soluzione descritta può vantaggiosamente non richiedere alcun sensore aggiuntivo rispetto a quelli già presenti normalmente a bordo del dispositivo portatile 1, andando a sfruttare un ulteriore asse di misura (quello di rollio) del sensore giroscopico comunque presente per la rilevazione delle rotazioni di imbardata e beccheggio (da cui dipendono infatti, ad esempio, gli spostamenti del cursore sullo schermo di visualizzazione). L’utilizzo di un sensore giroscopico 12 del tipo a tre assi, come singolo componente per rispondere sia alle esigenze di puntamento sia a quelle di compensazione del rollio, risulta in tal senso vantaggioso e consente un evidente risparmio nell’occupazione di spazio e nel consumo energetico del sistema.
Inoltre, l’utilizzo di un sensore giroscopico di tipo MEMS si rileva di per sé vantaggioso, in quanto la struttura micromeccanica di rilevamento à ̈ intrinsecamente, o per costruzione, insensibile a disturbi dinamici (in particolare agli stimoli di accelerazione).
Risulta infine chiaro che a quanto qui descritto ed illustrato possono essere apportate modifiche e varianti, senza per questo uscire dall’ambito di protezione della presente invenzione, come definito nelle rivendicazioni allegate.
In particolare, come precedentemente evidenziato, l’applicazione di puntamento tridimensionale rappresenta solo uno dei possibili utilizzi del sistema di compensazione descritto, che infatti può essere utilizzato in tutte le situazioni in cui si desideri trasformare movimenti nello spazio tridimensionale di un dispositivo portatile in comandi da impartire in un sistema di riferimento fisso di tipo inerziale.
Inoltre, à ̈ evidente che lo stesso sistema si presta analogamente ad una implementazione software (nel firmware dell’unità di elaborazione 14 del dispositivo portatile 1 o dell’unità di controllo 16 dell’apparecchio elettronico 15 ad esso associato), ad una implementazione hardware (mediante un apposito ASIC), o ancora ad una implementazione di tipo ibrido.

Claims (16)

  1. RIVENDICAZIONI 1. Sistema di compensazione (10) dell’orientamento di un dispositivo portatile (1), comprendente un’unità di elaborazione (14) configurata in modo da: determinare un angolo di rotazione di rollio (φ) del dispositivo portatile (1) in un sistema di riferimento mobile (Δp) ad esso associato; ed applicare una matrice di rotazione (Rzp(φ)), funzione dell’angolo di rotazione di rollio (φ), per trasformare spostamenti relativi (Δxp, Δyp) del dispositivo mobile (1) nel sistema di riferimento mobile (Δp) in corrispondenti spostamenti (Δxv, Δyv) in un sistema di riferimento fisso (Δv), di tipo inerziale, che risultino indipendenti dall’orientamento del dispositivo portatile (1), caratterizzato dal fatto che l’unità di elaborazione (14) à ̈ configurata in modo da eseguire una prima operazione di calcolo per determinare in una prima condizione operativa l’angolo di rotazione di rollio (φ), comprendente: acquisire una velocità angolare di rollio (ωr) del dispositivo portatile (1); ed eseguire un’integrazione nel tempo della velocità angolare di rollio (ωr) per determinare il valore dell’angolo di rotazione di rollio (φ).
  2. 2. Sistema secondo la rivendicazione 1, comprendente un sensore giroscopico (12) solidale al dispositivo portatile (1) e configurato in modo da rilevare la velocità angolare di rollio (ωr) del dispositivo portatile (1).
  3. 3. Sistema secondo la rivendicazione 2, in cui il sensore giroscopico (12) Ã ̈ un sensore triassiale MEMS.
  4. 4. Sistema secondo una qualsiasi delle rivendicazioni precedenti, in cui l’unità di elaborazione (14) à ̈ configurata in modo da determinare la presenza di un’accelerazione dinamica agente sul dispositivo portatile (1), in aggiunta all’accelerazione di gravità, come la prima condizione operativa in cui eseguire la prima operazione di calcolo dell’angolo di rotazione di rollio (φ).
  5. 5. Sistema secondo la rivendicazione 4, in cui l’unità di elaborazione (14) à ̈ inoltre configurata in modo da eseguire una seconda operazione di calcolo per determinare l’angolo di rotazione di rollio (φ) in una seconda condizione operativa, corrispondente alla determinazione della presenza di una condizione statica del dispositivo portatile (1); in cui la seconda operazione di calcolo comprende: acquisire componenti di accelerazione (ax, ay, az) agenti sul dispositivo portatile lungo gli assi (xp, yp, zp) del sistema di riferimento mobile (Δp); e determinare il valore dell’angolo di rotazione di rollio (φ) in funzione delle componenti di accelerazione (ax, ay, az).
  6. 6. Sistema secondo la rivendicazione 5, in cui l’unità di elaborazione (14) à ̈ configurata in modo da eseguire la seconda operazione di calcolo per determinare un valore iniziale (φ0) dell’angolo di rotazione di rollio (φ) per l’integrazione nel tempo della velocità angolare di rollio (ωr).
  7. 7. Sistema secondo la rivendicazione 5 o 6, comprendente inoltre un sensore di accelerazione (6) solidale al dispositivo portatile (1) e configurato in modo da rilevare le componenti di accelerazione (ax, ay, az) agenti sul dispositivo portatile (1).
  8. 8. Sistema secondo una qualsiasi delle rivendicazioni 5-7, in cui il sistema di riferimento mobile (Δp) comprende un asse longitudinale (zp) intorno al quale agisce in uso la velocità angolare di rollio (ωr) del dispositivo portatile (1); ed in cui l’unità di elaborazione (14) à ̈ configurata in modo da determinare l’occorrenza della prima condizione operativa quando gli spostamenti relativi (Δxp, Δyp) del dispositivo mobile (1) lungo un asse orizzontale (xp) ed un asse verticale (yp) del sistema di riferimento mobile (Δp), ortogonali all’asse longitudinale (zp), non sono inferiori ad una prima soglia, ed una risultante (RA) delle componenti di accelerazione (ax, ay, az) si discosta da un valore di riferimento (RAref) più di una seconda soglia.
  9. 9. Sistema secondo la rivendicazione 8, in cui l’unità di elaborazione (14) à ̈ configurata in modo da impostare dinamicamente il valore di riferimento (RAref) al valore della risultante (RA) delle componenti di accelerazione (ax, ay, az) rilevata all’occorrenza della seconda condizione operativa.
  10. 10. Sistema secondo una qualsiasi delle rivendicazioni precedenti, in cui l’unità di elaborazione (14) à ̈ inoltre configurata in modo da: acquisire da un sensore giroscopico (12) solidale al dispositivo portatile (1) una velocità angolare di imbardata (ωy) ed una velocità angolare di beccheggio (ωp) del dispositivo portatile (1); e determinare gli spostamenti relativi (Δxp, Δyp) del dispositivo mobile (1) nel sistema di riferimento mobile (Δp) in funzione delle velocità angolari di imbardata (ωy) e di beccheggio (ωp).
  11. 11. Sistema secondo una qualsiasi delle rivendicazioni precedenti, in cui il dispositivo portatile (1) à ̈ un dispositivo puntatore tridimensionale; ed in cui il sistema di riferimento fisso (Δv) à ̈ associato ad uno schermo di visualizzazione (2) di un apparecchio elettronico (15), e i corrispondenti spostamenti (Δxv, Δyv) sono atti ad essere attuati sullo schermo di visualizzazione (2) in funzione dei movimenti del dispositivo portatile (1).
  12. 12. Sistema secondo una qualsiasi delle rivendicazioni precedenti, comprendente: un sensore giroscopico (12) solidale al dispositivo portatile (1) e configurato in modo da rilevare la velocità angolare di rollio (ωr) del dispositivo portatile (1); ed un sensore di accelerazione (6) solidale al dispositivo portatile (1) e configurato in modo da rilevare componenti di accelerazione (ax, ay, az) agenti sul dispositivo portatile lungo gli assi (xp, yp, zp) del sistema di riferimento mobile (Δp), in cui l’unità di elaborazione (14), il sensore giroscopico (12) ed il sensore di accelerazione (6) sono alloggiati all’interno di un involucro (18) del dispositivo portatile (1).
  13. 13. Metodo di compensazione dell’orientamento di un dispositivo portatile (1), comprendente: determinare un angolo di rotazione di rollio (φ) del dispositivo portatile (1) in un sistema di riferimento mobile (Δp) ad esso associato; ed applicare una matrice di rotazione (Rzp(φ)), funzione dell’angolo di rotazione di rollio (φ), per trasformare spostamenti relativi (Δxp, Δyp) del dispositivo mobile (1) nel sistema di riferimento mobile (Δp) in corrispondenti spostamenti (Δxv, Δyv) in un sistema di riferimento fisso (Δv), di tipo inerziale, che risultino indipendenti dall’orientamento del dispositivo portatile (1), caratterizzato dal fatto di comprendere la fase di eseguire una prima operazione di calcolo per determinare in una prima condizione operativa l’angolo di rotazione di rollio (φ), comprendente: acquisire una velocità angolare di rollio (ωr) del dispositivo portatile (1); ed eseguire un’integrazione nel tempo della velocità angolare di rollio (ωr) per determinare il valore dell’angolo di rotazione di rollio (φ).
  14. 14. Metodo secondo la rivendicazione 13, comprendente determinare la presenza di un’accelerazione dinamica agente sul dispositivo portatile (1), in aggiunta all’accelerazione di gravità, come la prima condizione operativa in cui eseguire la prima operazione di calcolo dell’angolo di rotazione di rollio (φ).
  15. 15. Metodo secondo la rivendicazione 14, comprendente inoltre eseguire una seconda operazione di calcolo per determinare l’angolo di rotazione di rollio (φ) in una seconda condizione operativa, corrispondente alla determinazione della presenza di una condizione statica del dispositivo portatile (1); in cui eseguire la seconda operazione di calcolo comprende: acquisire componenti di accelerazione (ax, ay, az) agenti sul dispositivo portatile (1) lungo gli assi (xp, yp, zp) del sistema di riferimento mobile (Δp); e determinare il valore dell’angolo di rotazione di rollio (φ) in funzione delle componenti di accelerazione (ax, ay, az).
  16. 16. Metodo secondo la rivendicazione 15, in cui la seconda operazione di calcolo à ̈ eseguita per determinare un valore iniziale (φ0) dell’angolo di rotazione di rollio (φ) per l’integrazione nel tempo della velocità angolare di rollio (ωr).
IT001144A 2011-12-13 2011-12-13 Sistema e metodo di compensazione dell'orientamento di un dispositivo portatile ITTO20111144A1 (it)

Priority Applications (2)

Application Number Priority Date Filing Date Title
IT001144A ITTO20111144A1 (it) 2011-12-13 2011-12-13 Sistema e metodo di compensazione dell'orientamento di un dispositivo portatile
US13/712,605 US20130151195A1 (en) 2011-12-13 2012-12-12 System and method for compensating orientation of a portable device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT001144A ITTO20111144A1 (it) 2011-12-13 2011-12-13 Sistema e metodo di compensazione dell'orientamento di un dispositivo portatile

Publications (1)

Publication Number Publication Date
ITTO20111144A1 true ITTO20111144A1 (it) 2013-06-14

Family

ID=46262240

Family Applications (1)

Application Number Title Priority Date Filing Date
IT001144A ITTO20111144A1 (it) 2011-12-13 2011-12-13 Sistema e metodo di compensazione dell'orientamento di un dispositivo portatile

Country Status (2)

Country Link
US (1) US20130151195A1 (it)
IT (1) ITTO20111144A1 (it)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101617562B1 (ko) * 2008-07-01 2016-05-02 힐크레스트 래보래토리스, 인크. 3d 포인터 매핑
EP2748939B1 (en) 2011-08-22 2019-07-24 Intel Corporation Device, system and method of controlling wireless communication based on an orientation-related attribute of a wireless communication device
US9462210B2 (en) 2011-11-04 2016-10-04 Remote TelePointer, LLC Method and system for user interface for interactive devices using a mobile device
US8769839B1 (en) * 2012-02-09 2014-07-08 The Boeing Company Clamps and methods of using clamps to measure angular positions of components
US9182227B1 (en) 2012-02-09 2015-11-10 The Boeing Company Clamps and methods of using clamps to measure angular positions of components
US9179490B2 (en) * 2012-11-29 2015-11-03 Intel Corporation Apparatus, system and method of disconnecting a wireless communication link
US9583828B2 (en) 2012-12-06 2017-02-28 Intel Corporation Apparatus, system and method of controlling one or more antennas of a mobile device
JP2015049822A (ja) * 2013-09-04 2015-03-16 ソニー株式会社 表示制御装置、表示制御方法、表示制御信号生成装置、表示制御信号生成方法、プログラム、および表示制御システム
JP6215471B2 (ja) * 2014-07-17 2017-10-18 パイオニア株式会社 回転角検出装置
US10082936B1 (en) * 2014-10-29 2018-09-25 Amazon Technologies, Inc. Handedness determinations for electronic devices
US11134360B2 (en) * 2016-04-18 2021-09-28 Cambridge Mobile Telematics Inc. Methods and systems for orienting a mobile device to a vehicle's reference frame
CN106403917B (zh) * 2016-09-06 2019-02-01 青岛海信移动通信技术股份有限公司 墙体垂度检测方法及装置
US10302450B1 (en) * 2017-06-19 2019-05-28 Rockwell Collins, Inc. Methods and systems for high accuracy and integrity estimation of flight critical aircraft states
IT201900013422A1 (it) * 2019-07-31 2021-01-31 St Microelectronics Srl Metodo di puntamento a ridotta potenza e dispositivo elettronico implementante il metodo di puntamento
CN111078029A (zh) * 2019-12-05 2020-04-28 广州视源电子科技股份有限公司 空中鼠标信息确定方法、装置、设备及存储介质
IT202000001933A1 (it) 2020-01-31 2021-07-31 St Microelectronics Srl Dispositivo elettronico di puntamento con rapido recupero in avvio e corrispondente metodo
CN112082575B (zh) * 2020-09-07 2022-04-01 北京华研军盛科技有限公司 一种用于测试加速度对倾角传感器影响的试验装置及方法
US11584543B1 (en) * 2022-04-28 2023-02-21 Beta Air, Llc Systems and methods for monitoring sensor reliability in an electric aircraft

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040260507A1 (en) * 2003-06-17 2004-12-23 Samsung Electronics Co., Ltd. 3D input apparatus and method thereof
EP1860528A2 (en) * 2006-05-23 2007-11-28 Samsung Electronics Co., Ltd. Pointing device, pointer movement method and medium, and display device for displaying the pointer
EP1870670A1 (en) * 2006-06-21 2007-12-26 Microinfinity, Inc. Method and apparatus for space recognition according to the movement of an input device
WO2009042002A1 (en) * 2007-09-26 2009-04-02 Thomson Licensing Method and apparatus for providing roll compensation
US20090265671A1 (en) * 2008-04-21 2009-10-22 Invensense Mobile devices with motion gesture recognition
US20100110001A1 (en) * 2008-10-31 2010-05-06 Sony Corporation Input device and method and program

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5902968A (en) * 1996-02-20 1999-05-11 Ricoh Company, Ltd. Pen-shaped handwriting input apparatus using accelerometers and gyroscopes and an associated operational device for determining pen movement
US20040212589A1 (en) * 2003-04-24 2004-10-28 Hall Deirdre M. System and method for fusing and displaying multiple degree of freedom positional input data from multiple input sources
ES2664472T3 (es) * 2004-04-30 2018-04-19 Idhl Holdings, Inc. Dispositivos de señalización de espacio libre con compensación de inclinación y facilidad de uso mejorada
US20070113207A1 (en) * 2005-11-16 2007-05-17 Hillcrest Laboratories, Inc. Methods and systems for gesture classification in 3D pointing devices
KR101617562B1 (ko) * 2008-07-01 2016-05-02 힐크레스트 래보래토리스, 인크. 3d 포인터 매핑
TWI428602B (zh) * 2010-12-29 2014-03-01 Nat Univ Tsing Hua 旋轉測量方法、模組及包含該模組之可攜式裝置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040260507A1 (en) * 2003-06-17 2004-12-23 Samsung Electronics Co., Ltd. 3D input apparatus and method thereof
EP1860528A2 (en) * 2006-05-23 2007-11-28 Samsung Electronics Co., Ltd. Pointing device, pointer movement method and medium, and display device for displaying the pointer
EP1870670A1 (en) * 2006-06-21 2007-12-26 Microinfinity, Inc. Method and apparatus for space recognition according to the movement of an input device
WO2009042002A1 (en) * 2007-09-26 2009-04-02 Thomson Licensing Method and apparatus for providing roll compensation
US20090265671A1 (en) * 2008-04-21 2009-10-22 Invensense Mobile devices with motion gesture recognition
US20100110001A1 (en) * 2008-10-31 2010-05-06 Sony Corporation Input device and method and program

Also Published As

Publication number Publication date
US20130151195A1 (en) 2013-06-13

Similar Documents

Publication Publication Date Title
ITTO20111144A1 (it) Sistema e metodo di compensazione dell&#39;orientamento di un dispositivo portatile
CN102289306B (zh) 姿态感知设备及其定位、鼠标指针的控制方法和装置
US10794702B2 (en) On-chip gap measurement
CN112567097B (zh) 用于确定机器的作业设备的角度的方法
US20190025056A1 (en) Electrostatic offset correction
EP2930467A1 (en) A system and method for sensing the inclination of a moving platform with respect to gravity
CN103712622A (zh) 基于惯性测量单元旋转的陀螺漂移估计补偿方法及装置
WO1998024977A1 (fr) Appareil de mesure du profil de la section verticale de la route
TWI407102B (zh) 三維空間運動感測方法
Yang et al. A monocular vision-based decoupling measurement method for plane motion orbits
KR101658473B1 (ko) Mems자이로스코프의 가속도 민감도 보정 방법
CN112306261A (zh) 低功耗倾斜补偿指点方法及相应的指点电子设备
JP2004264240A (ja) 慣性装置のミスアライメント計測方法
CN110779553A (zh) 磁力计数据的校准方法
US11009350B2 (en) Proof mass offset compensation
CN107063181A (zh) 复杂环境下多功能调试台的水平倾角的测量方法及装置
KR101332651B1 (ko) 스티어링 휠 각도 측정장치
CN102141845B (zh) 三维空间运动感测方法
CN113959464B (zh) 一种陀螺仪辅助的加速度计现场校准方法和***
TW202024571A (zh) 多重慣性感測器整合於多剛體連桿角度量測系統之校正方法
Žumer et al. An advanced nonlinear model of a low-g MEMS accelerometer for a computer pen
US11268975B2 (en) Accelerometer sensitivity self-calibration with duty cycle control of drive signal
RU2005141093A (ru) Способ определения навигационных параметров летательного аппарата и устройство для его осуществления
Zhang et al. Implementation and complexity analysis of orientation estimation algorithms for human body motion tracking using low-cost sensors
JP4287975B2 (ja) 姿勢計測装置