[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

ITRM20120641A1 - PEDESTRIAN NAVIGATION SYSTEM USING INERIAL DATA ARTIFICIAL NEURAL NETWORKS AND PSEUDOMISURE FOR ERROR CORRECTION - Google Patents

PEDESTRIAN NAVIGATION SYSTEM USING INERIAL DATA ARTIFICIAL NEURAL NETWORKS AND PSEUDOMISURE FOR ERROR CORRECTION Download PDF

Info

Publication number
ITRM20120641A1
ITRM20120641A1 IT000641A ITRM20120641A ITRM20120641A1 IT RM20120641 A1 ITRM20120641 A1 IT RM20120641A1 IT 000641 A IT000641 A IT 000641A IT RM20120641 A ITRM20120641 A IT RM20120641A IT RM20120641 A1 ITRM20120641 A1 IT RM20120641A1
Authority
IT
Italy
Prior art keywords
cascade
retrocausal
weights
multilayer
causal
Prior art date
Application number
IT000641A
Other languages
Italian (it)
Inventor
Otello Gasperini
Original Assignee
Dune 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 Dune Srl filed Critical Dune Srl
Priority to IT000641A priority Critical patent/ITRM20120641A1/en
Publication of ITRM20120641A1 publication Critical patent/ITRM20120641A1/en

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/16Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C22/00Measuring distance traversed on the ground by vehicles, persons, animals or other moving solid bodies, e.g. using odometers, using pedometers
    • G01C22/006Pedometers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/103Detecting, measuring or recording devices for testing the shape, pattern, colour, size or movement of the body or parts thereof, for diagnostic purposes
    • A61B5/11Measuring movement of the entire body or parts thereof, e.g. head or hand tremor, mobility of a limb

Landscapes

  • Engineering & Computer Science (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Navigation (AREA)

Description

<DESCRIZIONE dell’invenzione avente per TITOLO:>Sistema di Navigazione pedonale usante dati inerziali, Reti Neurali Artificiali e pseudomisure per correzione di errori <DESCRIPTION of the invention having as TITLE:> Pedestrian Navigation System using inertial data, Artificial Neural Networks and pseudomeasures for error correction

Stato della Tecnica State of the art

Il sistema parte dai sottosistemi standard sotto indicati per sintetizzare un sistema innovativo. The system starts from the standard subsystems indicated below to synthesize an innovative system.

a) Reti Neurali Artificiali a) Artificial Neural Networks

Si parte da sottosistemi quali: Percettroni Multistrati (Multi Layer Perceptrons: MLP) ([ 1], Fig. 4.1) ed in particolare due diverse configurazioni alternative, che sono MLP ricorrenti (Recurrent MLP: RMLP) ([ 1], Fig. 15.1) e sistemi con retropropagazione nel tempo (BPTT) ([ 1], Sez.15.7). Uso di sottosistemi bidirezionali, cioà ̈ con parti causali in tandem con parti retrocausali [ 2], [ 4] e di tecnologie multistream [ 3]. It starts from subsystems such as: Multilayer Perceptrons (MLP) ([1], Fig. 4.1) and in particular two different alternative configurations, which are recurrent MLP (RMLP) ([1], Fig. 15.1 ) and systems with time back propagation (BPTT) ([1], Sec.15.7). Use of bidirectional subsystems, ie with causal parts in tandem with retrocausal parts [2], [4] and multistream technologies [3].

b) Correzione di errore b) Error correction

Sono stati sviluppati svariati approcci per applicare delle correzioni alle equazioni dinamiche per la stima della posizione basata su sensore inerziale. In [ 5] la correzione à ̈ apportata attraverso un’interpolazione lineare fra le tre componenti di velocità stimate fra passi consecutivi, imponendo loro un valore nullo alla fine di un passo ed all’inizio del successivo. Questo approccio ha il vantaggio di essere semplice e di modesto carico computazionale, ma ha dimostrato (dai risultati ottenuti in [ 5]) di essere meno accurato e maggiormente prono all’accumulazione degli errori nel tempo. Several approaches have been developed for applying corrections to dynamic equations for inertial sensor-based position estimation. In [5] the correction is made through a linear interpolation between the three speed components estimated between consecutive steps, imposing a null value at the end of one step and at the beginning of the next. This approach has the advantage of being simple and of modest computational load, but has shown (from the results obtained in [5]) to be less accurate and more prone to accumulation of errors over time.

L’approccio largamente adottato nei sistemi attuali à ̈ basato sui filtri di Kalman Estesi e Complementari (ECKF) o su Unscented Kalman Filter [ 6], in cui, in corrispondenza della condizione di stasi del piede, si assume che la velocità del piede sia nulla e quindi si impone l’esistenza di una pseudo-misura dell’errore della velocità stimata, esattamente pari all’ultimo valore della velocità stimata prima di incontrare la condizione di stasi. Questo approccio, originariamente sviluppato in [ 7] à ̈ oggi adottato (praticamente senza alcuna variante di rilievo) in tutti i riferimenti bibliografici ([ 8], [ 9], [ 12], [ 14]) o brevettuali ([ 10], [ 11], [ 13], [ 15]) del recente passato fino ad oggi. The approach widely adopted in current systems is based on the Extended and Complementary Kalman Filters (ECKF) or on the Unscented Kalman Filter [6], in which, in correspondence with the stasis condition of the foot, it is assumed that the speed of the foot is null and therefore the existence of a pseudo-measurement of the error of the estimated speed is required, exactly equal to the last value of the estimated speed before encountering the stasis condition. This approach, originally developed in [7] is now adopted (practically without any relevant variant) in all bibliographic ([8], [9], [12], [14]) or patent ([10], [11], [13], [15]) from the recent past to the present day.

Altre pseudo-misure possono essere inferite o assunte dall’uso di strumentazione aggiuntiva, esterna all’IMU, quali GPS, magnetometri, barometri, odometri, etc. Other pseudo-measurements can be inferred or assumed by the use of additional instruments, external to the IMU, such as GPS, magnetometers, barometers, odometers, etc.

Descrizione dell’invenzione Description of the invention

La localizzazione ed il tracciamento di pedoni in ambienti interni dove il GPS può essere intermittente, non affidabile o assente, à ̈ di importanza crescente in missioni in cui la tempestività costituisca l’aspetto critico. Fra queste c †̃à ̈ la localizzazione di operatori di primo soccorso (quali i componenti di una squadra di Vigili del Fuoco) in edifici in cui le infrastrutture di localizzazione non siano presenti, mentre la criticità della tempistica dell’operazione impedisce lo spiegamento di tali infrastrutture prima di iniziare la missione. The location and tracking of pedestrians in indoor environments where GPS can be intermittent, unreliable or absent, is of increasing importance in missions where timeliness is the critical aspect. Among these there is the location of first aid workers (such as members of a fire brigade team) in buildings where the location infrastructures are not present, while the critical timing of the operation prevents deployment of such infrastructures before starting the mission.

Si descrive in Fig. 1 un dispositivo (oggetto dell’invenzione) indossabile da un operatore pedonale che fornisce la sua posizione attuale e percorso effettuato, basato su elaborazione delle grandezze misurate da un’unità inerziale, accelerazione e velocità angolare. Fig. 1 describes a device (object of the invention) that can be worn by a pedestrian operator that provides his current position and path taken, based on the processing of the quantities measured by an inertial unit, acceleration and angular velocity.

Il dispositivo comprende i seguenti sottosistemi in cascata: The device includes the following cascaded subsystems:

• Un sensore di Misure Inerziali (IMU) che fornisce in uscita le sequenze temporali dei vettori di accelerazione e velocità angolare, indicati come dati grezzi. Questi, la cui tipica cadenza à ̈ di centinaia di Hertz, sono corrotti da rumore additivo e derive termiche (indicato con 1 in Fig.1). â € ¢ An Inertial Measurements (IMU) sensor that outputs the time sequences of the acceleration and angular velocity vectors, indicated as raw data. These, whose typical cadence is hundreds of Hertz, are corrupted by additive noise and thermal drift (indicated with 1 in Fig. 1).

• Un filtro non lineare di interpolazione di dati grezzi, basato sull’apprendimento a macchina delle caratterische del passo umano implementato da una Rete Neurale Artificiale (ANN) (indicato con 2 in Fig.1). â € ¢ A non-linear filter for interpolation of raw data, based on machine learning of the characteristics of the human step implemented by an Artificial Neural Network (ANN) (indicated with 2 in Fig.1).

• Un Sottosistema di integrazione delle equazioni del moto (di navigazione) per stimare posizione, velocità e percorso elaborando le grandezze inerziali interpolate (indicato con 3 in Fig.1). â € ¢ A subsystem for the integration of the equations of motion (navigation) to estimate position, speed and path by processing the interpolated inertial quantities (indicated with 3 in Fig.1).

• Sintesi di pseudomisure basata su regole biometriche soggettive (indicato con 4 in Fig.1) per stimare gli errori (indicato con 5 in Fig. 1) da sottrarre dalle stime preliminari di posizione, velocità e percorso (indicato con 6 in Fig.1) e fornire le stime finali corrette (indicato con 7 in Fig.1). â € ¢ Synthesis of pseudomeasures based on subjective biometric rules (indicated with 4 in Fig. 1) to estimate the errors (indicated with 5 in Fig. 1) to be subtracted from the preliminary estimates of position, speed and path (indicated with 6 in Fig. .1) and provide the final corrected estimates (indicated with 7 in Fig. 1).

Si possono avere le seguenti alternative di elaborazione: You can have the following processing alternatives:

1. I Sottosistemi 1 e 3 sono presenti in tutte le configurazioni. 1. Subsystems 1 and 3 are present in all configurations.

2. Il Sottosistema 2 Ã ̈ bypassato durante una fase iniziale di apprendimento su un operatore specifico. 2. Subsystem 2 is bypassed during an initial learning phase on a specific operator.

3. Il Sottosistema 4, 5 e 6 sono presenti solo in presenza di pseudomisure. 3. Subsystems 4, 5 and 6 are present only in the presence of pseudomeasures.

4. Le alternative 2 e 3 possono essere scelte indipendentemente. 4. Alternatives 2 and 3 can be chosen independently.

1. Filtraggio Interpolativo tramite Reti Neurali Artificiali (Fig.1, Sottosistema 2) 1. Interpolative Filtering through Artificial Neural Networks (Fig. 1, Subsystem 2)

In senso lato, durante il passo umano le strutture temporali di accelerazione e velocità angolare sono vincolate e mutuamente dipendenti perchà ̈ entrambe sono prodotte dalla stessa struttura di locomozione umana. Le strutture temporali dipendono da dove viene posizionato il dispositivo dall’operatore, nel tacco di una scarpa, nella cintura o in una tasca. In a broad sense, during the human step the temporal structures of acceleration and angular velocity are constrained and mutually dependent because both are produced by the same structure of human locomotion. The temporal structures depend on where the device is placed by the operator, in the heel of a shoe, in the belt or in a pocket.

Si usano Reti Neurali Artificiali (ANN) per apprendere automaticamente le strutture temporali e le dipendenze fra accelerazione e velocità angolari allo scopo di filtrare il rumore del dispositivo inerziale e componenti non proprie del passo umano, che potrebbero essere causate dall’IMU, quali derive. Si usano le seguenti strutture: Artificial Neural Networks (ANNs) are used to automatically learn the temporal structures and the dependencies between acceleration and angular velocity in order to filter the noise of the inertial device and components not typical of the human step, which could be caused by the IMU, such as drift . The following structures are used:

1.1 Percettrone Multistrato Ricorrente con uscita ritardata 1.1 Recurrent Multilayer Perceptron with delayed output

Fig. 2 indica un Percettrone Multistrato Ricorrente (RMLP), basato su un Percettrone Multistrato (Sottosistema 1) più controreazione dall’uscita all’ingresso: Fig. 2 indicates a Recurrent Multilayer Perceptron (RMLP), based on a Multilayer Perceptron (Subsystem 1) plus feedback from exit to entry:

• Tsà ̈ l’intervallo di campionamento â € ¢ Tsà ̈ the sampling interval

• L’ingresso (2) u(n) à ̈ un vettore di dati grezzi con sei componenti relativo all’istante attuale (nTs), ottenuto impilando i due vettori accelerazione e velocità angolare â € ¢ Input (2) u (n) is a vector of raw data with six components relative to the current instant (nTs), obtained by stacking the two vectors acceleration and angular velocity

• L’uscita y(n-k) (3) à ̈ un vettore di dati filtrati con 6 componenti, ottenuto impilando i vettori filtrati di accelerazione e velocità angolare, che si ottiene da un pesaggio lineare del vettore di stato relativo all’ultimo stato nascosto di MLP. L’uscita rappresenta il filtraggio del dato grezzo u(n-k). Con riferimento a RMLP in ([ 1], Fig. 15.1) rispetto all’istante attuale l’uscita non à ̈ estrapolata di un passo ma à ̈ invece ritardata di kTssecondi. â € ¢ The output y (n-k) (3) is a vector of filtered data with 6 components, obtained by stacking the filtered vectors of acceleration and angular velocity, which is obtained from a linear weighting of the state vector relative to the ™ latest hidden status of MLP. The output represents the filtering of the raw data u (n-k). With reference to RMLP in ([1], Fig. 15.1) with respect to the current instant, the output is not extrapolated by one step but is instead delayed by kTsseconds.

• I blocchi (4) sono linee di ritardo pari a Tsâ € ¢ The blocks (4) are delay lines equal to Ts

• La differenza vettoriale fra il dato di addestramento (rumoroso) u(n-k) (5) ed il vettore filtrato (interpolato) ad esso corrispondente y(n-k) à ̈ riportata (controreazione) in ingresso al MLP (6) per aggiornare i suoi pesi. â € ¢ The vector difference between the (noisy) training data u (n-k) (5) and the filtered (interpolated) vector corresponding to it y (n-k) is reported (feedback) at the input of the MLP (6) to update its weights.

<n n − k − 1><n n ∠’k − 1>

• I dati grezzi in ingresso{u(.) }n − k 1, ed i dati filtrati{y(.) }n− hche costituiscono la controreazione dall’uscita all’ingresso, entrano in una Finestra Mobile (W) in (7) di dati temporali composta da due sottofinestre relative a dati, rispettivamente grezzi (8) e filtrati (9). â € ¢ The raw input data {u (.)} n ∠'k 1, and the filtered data {y (.)} nâˆ' h which constitute the feedback from the output to the input, enter a Floating Window (W) in (7) of temporal data composed of two sub-windows related to data, respectively raw (8) and filtered (9).

• L’estensione temporale della finestra à ̈ hTssecondi. â € ¢ The time extension of the window is hTsseconds.

Quindi, rispetto all’indice temporale centrale (n-k), relativo all’uscita di RMLP, (W) comprende dati grezzi nel futuro e dati filtrati nel passato. Il ritardo temporale (latenza) kTsfra il dato grezzo attuale u(n) e l’uscita RMLP y(n-k) à ̈ inferiore al massimo ritardo accettabile per la presentazione dei dati filtrati (~ due/tre secondi). Therefore, with respect to the central time index (n-k), relative to the release of RMLP, (W) includes raw data in the future and filtered data in the past. The time delay (latency) kTs between the current raw data u (n) and the RMLP output y (n-k) is less than the maximum acceptable delay for the presentation of the filtered data (~ two / three seconds).

L’estensione temporale della Finestra (W) à ̈ di circa 5 secondi, e comprende la durata di qualche The time extension of the Window (W) is about 5 seconds, and includes the duration of a few

passo tipico. RMLP sarà pre-addestrato offline per ottenere un set preliminare di pesi su uno o più typical step. RMLP will be pre-trained offline to get a preliminary set of weights on one or more

operatori, con differenti tipi di passo, prima dell’uso in operazioni reali da parte di uno specifico operators, with different types of steps, before being used in real operations by a specific one

operatore. Durante le operazioni di tale operatore, RMLP affinerà in tempo reale i pesi su operator. During the operations of that operator, RMLP will refine the weights on in real time

quest’ultimo. the latter.

1.2 Aggiornamento dei Pesi tramite il Filtro di Kalman Esteso (EKF) 1.2 Updating Weights via the Extended Kalman Filter (EKF)

Fig. 3 indica un sottosistema per l’aggiornamento dei pesi di RMLP, che comprende un RMLP Fig. 3 indicates a subsystem for updating RMLP weights, which includes an RMLP

(Sottosistema 1) e un EKF (Sottosistema 2). La grandezza u(n)(3) in ingresso al Sottosistema (1) Ã ̈ (Subsystem 1) and an EKF (Subsystem 2). The quantity u (n) (3) entering the Subsystem (1) is ̈

un vettore composito ottenuto impilando tutti i vettori contenuti nella finestra in ingresso nella Fig. 2. Il vettore di pesi w(n), ottenuto impilando tutti I pesi scalari di tutti gli strati di MLP, Ã ̈ assunto a composite vector obtained by stacking all the vectors contained in the input window in Fig. 2. The weight vector w (n), obtained by stacking all the scalar weights of all the layers of MLP, is assumed

come vettore di stato di un Filtro di Kalman Esteso (EKF). Per l’evoluzione dei pesi si assume un as the state vector of an Extended Kalman Filter (EKF). For the evolution of the weights a

modello dinamico: dynamic model:

w(n+1)= w(n)+ z(n)(1) w (n + 1) = w (n) + z (n) (1)

Dove z(n) , il vettore di rumore di stato, ha matrice di covarianza Qω. Where z (n), the state noise vector, has a covariance matrix QÏ ‰.

All’istante n, RMLP opera su u(n)con una stima estrapolata del vettore di peso w<ˆ>n/ n − 1(4) per At instant n, RMLP operates on u (n) with an extrapolated estimate of the weight vector w <Ë †> n / n ∠’1 (4) for

produrre il vettore in uscita y(n-k) (5). Dando in ingresso ad EKF l’errore di filtraggio, cioà ̈ la produce the output vector y (n-k) (5). By giving EKF the filtering error, ie the

differenza tra u(n-k) (6) e y(n-k), esso produce in uscita la stima estrapolata (w<ˆ>n 1/ n) preparando il difference between u (n-k) (6) and y (n-k), it produces as output the extrapolated estimate (w <Ë †> n 1 / n) by preparing the

sistema complessivo per la successiva iterazione relativa all’istante n+1. overall system for the subsequent iteration relating to instant n + 1.

L’uscita osservabile di RMLP à ̈ data da: The observable output of RMLP is given by:

y( n− k ) = b ( w<ˆ>n / n− 1,u ( n )) (2) y (n∠’k) = b (w <Ë †> n / n− 1, u (n)) (2)

dove b( ) indica la relazione non lineare vettoriale di ingresso/uscita di RMLP, che dipende dalla where b () denotes the vector nonlinear input / output relationship of RMLP, which depends on the

stima osservabile dei pesi w<ˆ>n/ n − 1, dall’entrata vettoriale u (n ) e dalla struttura (i.e. connessioni fra observable estimate of the weights w <Ë †> n / n ∠’1, from the vector input u (n) and from the structure (i.e. connections between

nodi di strati adiacenti) di MLP. La non linearità à ̈ indotta dalle funzioni sigmoidi non lineari (y=a nodes of adjacent layers) of MLP. Nonlinearity is induced by nonlinear sigmoid functions (y = a

tanh(bx)) presenti nelle sinapsi di MLP. La relazione fra ingresso e uscita di RMLP Ã ̈ modellata come tanh (bx)) present in MLP synapses. The relationship between RMLP input and output is modeled as

segue: follows:

u( n− k ) = y ( n − k ) r ( n − k ) = b ( w<ˆ>n / n− 1,u ( n )) r ( n − k ) (3) u (n∠’k) = y (n − k) r (n ∠’k) = b (w <Ë †> n / n− 1, u (n)) r (n ∠’k) (3)

Dove r(n-k) à ̈ il rumore di uscita (con matrice covarianza QÎ1⁄2) indotto dal rumore additivo in ingresso che à ̈ quello in uscita dal sensore inerziale. Il vettore di errore che à ̈ usato per aggiornare i pesi à ̈: Where r (n-k) is the output noise (with QÎ1⁄2 covariance matrix) induced by the additive input noise which is the output noise from the inertial sensor. The error vector that is used to update the weights is:

e ( n− k ) = u ( n − k ) − y ( n − k ) (4) e (n∠’k) = u (n − k) ∠’y (n − k) (4)

A causa del vettore di rumore di stato in eq. (1), il valore “vero†del peso w (n ) non à ̈ noto. La stima (osservabile) del peso w<ˆ>n/ n − 1e le relative quantità associate a EKF sono: Due to the state noise vector in eq. (1), the true value of the weight w (n) is not known. The (observable) estimate of the weight w <Ë †> n / n ∠’1 and the relative quantities associated with EKF are:

w<ˆ>n+1/n=w<ˆ>n/n−1+Gn [u(n−k) −b(w<ˆ>n/ n −1 ,u( n)]w <Ë †> n + 1 / n = w <Ë †> n / nâˆ'1 + Gn [u (nâˆ'k) âˆ'b (w <Ë †> n / n âˆ'1, u (n) ]

(5) (5)

<T − 1><T ∠’1>

<G>n<= P>n/n−1<B>n[<B T><G> n <= P> n / n−1 <B> n [<B T>

n<P>n/n−1<B>n<+ Q>v](6)n <P> n / n−1 <B> n <+ Q> v] (6)

<P>n+1/n<= [I −G>n<B>n<]P>n/ n − 1<+Q>ω (7)<P> n + 1 / n <= [I −G> n <B> n <] P> n / n ∠’1 <+ Q> Ï ‰ (7)

Le equazioni da (5) a (7) indicano l’evoluzione della stima del vettore peso estrapolato, del guadagno di Kalman Gne della matrice di covarianza dell’errore sul peso. Definiamo: Equations from (5) to (7) indicate the evolution of the estimate of the extrapolated weight vector, of the Kalman Gne gain of the covariance matrix of the weight error. We define:

t: numero di pesi scalari in RMLP t: number of scalar weights in RMLP

p: numero di grandezze scalari in uscita di RMLP, cioà ̈ le sei componenti di accelerazione e velocità angolare. p: number of RMLP output scalar quantities, ie the six components of acceleration and angular velocity.

L’unica non linearità di EKF à ̈ la funzione vettoriale b( . ), usata per calcolare la matrice di misura Bnche ha dimensioni (p, t): Bn(h, k) si definisce come derivata parziale della componente h-esima della funzione vettoriale b( . ) rispetto alla componente k-esima del vettore peso w<ˆ>n/n − 1. The only non-linearity of EKF is the vector function b (.), Used to calculate the measurement matrix B, which has dimensions (p, t): Bn (h, k) is defined as the partial derivative of the h-th component of the vector function b (.) with respect to the k-th component of the weight vector w <Ë †> n / n ∠'1.

Bnviene valutata nel punto corrente w<ˆ>n/n − 1. Le derivate si ottengono tramite l’algoritmo Real-time Recurrent Learning ([ 1], Sez.15,8), che usa uno schema di retro-propagazione. Bn is evaluated at the current point w <Ë †> n / n ∠'1. The derivatives are obtained through the Real-time Recurrent Learning algorithm ([1], Sec. 15,8), which uses a retro- propagation.

1.3 Addestramento Multiflusso (Fig.4). 1.3 Multi-stream Training (Fig. 4).

Il sottosistema innovativo qui indicato si ottiene a partire dal Percettrone Multistrato Ricorrente in Fig.2. The innovative subsystem indicated here is obtained starting from the Recurrent Multilayer Perceptron in Fig. 2.

La semifinestra temporale dei dati grezzi HW in Fig. 2 à ̈ suddivisa in m sotto-semifinestre (SHW) sfasate in tempo (1’, 2’, ..., m’), ognuna di estensione temporale (1/m) rispetto alla semifinestra di partenza. Il numero di dati grezzi in ogni sotto-semifinestra à ̈ pari a k/m. The temporal half-window of the HW raw data in Fig. 2 is divided into m sub-half-windows (SHW) out of phase in time (1â € ™, 2â € ™, ..., mâ € ™), each with a temporal extension (1 / m) with respect to the starting semi-window. The number of raw data in each sub-half window is equal to k / m.

Analogamente i dati filtrati entrano in m sotto- semifinestre (1’’, 2’’, ..., m’’) sfasate in tempo ognuna di estensione temporale (1/m) rispetto alla semifinestra di partenza. Il numero di dati filtrati in ogni sotto-semifinestra à ̈ pari a (h-k)/m. Similarly, the filtered data enter m sub-half windows (1â € ™ â € ™, 2â € ™ â € ™, ..., mâ € ™ â € ™) out of phase in time each of time extension (1 / m) with respect to starting semi-window. The number of data filtered in each sub-half window is equal to (h-k) / m.

I dati relativi ad ogni coppia delle m HW sono inviati ad un distinto Sub RMLP (SRMLP, Sottosistema 1, 2, …, m). The data relating to each pair of m HW are sent to a distinct Sub RMLP (SRMLP, Subsystem 1, 2, â € ¦, m).

Viene formato un vettore di errore composito impilando gli m errori vettoriali degli m SRMLP, la cui dimensione à ̈ m volte rispetto a quello di RMLP di partenza. A composite error vector is formed by stacking the m vector errors of the m SRMLPs, whose size is m times that of the starting RMLP.

L’insieme dei pesi di ognuno degli SRMLP à ̈ vincolato ad essere identico a quello degli altri: l’errore composito à ̈ usato per aggiornare simultaneamente l’insieme condiviso dei pesi degli (m) SRMLP tramite un EKF, analogamente che in Fig.3. The set of weights of each of the SRMLPs is bound to be identical to that of the others: the composite error is used to simultaneously update the shared set of weights of the (m) SRMLPs via an EKF, similarly that in Fig. 3.

All’istante attuale n: At the current time n:

<n>L’insieme dei dati grezzi nelle (m) sotto-semifinestre (1’, 2’, ..., m’) à ̈{u(.) } kn−1n − k m , n −<(>m −<1)>k <n> The set of raw data in the (m) sub-windows (1â € ™, 2â € ™, ..., mâ € ™) is {u (.)} knâˆ'1n ∠'k m, n ∠'<(> m âˆ' <1)> k

{u (<.>)}m {u (<.>)} m

22

n − k1....,{u (<.>)}m n ∠’k1 ...., {u (<.>)} m

n − k1n ∠’k1

m , m,

<n>−<k>−<1>L’insieme dei dati filtrati nelle (m) sotto-semifinestre (1’’, 2’’, ..., m’’) à ̈{y(.) }<m>hn − , −<2 kn>− m<1 n>−<k>−<1><n> ∠'<k> âˆ' <1> The set of data filtered in the (m) sub-half windows (1â € ™ â € ™, 2â € ™ â € ™, ..., mâ € ™ â € ™) à ̈ {y (.)} <m> hn ∠', âˆ' <2 kn> ∠'m <1 n> âˆ' <k> ∠'<1>

{y (<.>)}<m>{y (<.>)} <m>

k hk h

n − − y (<.>)}n −<m>−<1>k −<h>n ∠’− y (<.>)} n ∠’<m> − <1> k ∠’<h>

m m , ....,{m m, ...., {

m m m m

Le uscite filtrate degli m SRMLP, ottenute con il comune insieme di pesi sono The filtered outputs of m SRMLP, obtained with the common set of weights are

<2 k>y( n −<k>), y ( n − ),..., y ( n − k ) <2 k> y (n ∠’<k>), y (n −), ..., y (n ∠’k)

m m m m

Gli (m -1) dati filtrati più recenti, cioà ̈ tranne l’ultimo, relativi a indici temporali distinti, sono The most recent (m -1) filtered data, i.e. except the last, relative to distinct temporal indices, are

inviati ad (m-1) registri a scorrimento (shift registers<(s1,s2 ,sm )>, (1’’’, 2’’’, ..., (m-1)’’’) chesent to (m-1) shift registers (shift registers <(s1, s2, sm)>, (1â € ™ â € ™ â € ™, 2â € ™ â € ™ â € ™, ..., (m -1) â € ™ â € ™ â € ™) that

fungono da linee di ritardo di lunghezze decrescenti. act as delay lines of decreasing lengths.

− sono inviate contemporaneamente nella memoria R (m ) quantità filtrate relative allo stesso indice temporale(n −k), che sono diverse perchà ̈ prodotte con set di pesi relativi ad istanti diversi. Tali quantità sono inviate ad un combinatore (U) per ottenere in F il valore finale y(n −k)della quantità filtrata per questo istante. ∠’filtered quantities relating to the same temporal index (n âˆ'k) are sent simultaneously in memory R (m), which are different because they are produced with sets of weights relating to different instants. These quantities are sent to a combiner (U) to obtain in F the final value y (n âˆ'k) of the filtered quantity for this instant.

Lo scopo di usare l’addestramento Multiflusso à ̈ quello di ridurre la complessità della rete di partenza, i.e. il numero di pesi indipendenti di MLP, senza compromettere le prestazioni. Infatti, se per ridurre la complessità invece di usare le (m ) sotto-semifinestre sopra indicate se ne usasse solo una, a causa della rapida evoluzione delle quantità inerziali nella sottofinestra dei dati grezzi, indotta dall’evoluzione temporale della camminata umana, i pesi varierebbero rapidamente e questo sarebbe problematico per il loro adattamento nel tempo. Invece, usando le (m ) sottofinestre di dati grezzi sfasate in tempo, si presentano simultaneamente all’intera rete composita (m ) differenti sezioni del passo umano, l’aggiornamento vincolato dei pesi che tiene simultaneamente conto degli (m ) errori degli (m) SRMLP, e ciò pone meno problemi dinamici al simultaneo adattamento vincolato dei pesi. The purpose of using Multi-stream training is to reduce the complexity of the starting network, i.e. the number of independent MLP weights, without compromising performance. In fact, if to reduce the complexity instead of using the (m) sub-half-windows indicated above if only one were used, due to the rapid evolution of the inertial quantities in the raw data sub-window, induced by the temporal evolution of human walking, the weights would vary rapidly and this would be problematic for their adaptation over time. Instead, using the (m) sub-windows of raw data out of phase in time, different sections of the human step occur simultaneously to the entire composite network (m), the constrained update of the weights that simultaneously takes into account the (m) errors of the (m) SRMLP, and this poses fewer dynamic problems for the simultaneous constrained adaptation of weights.

Inoltre, la struttura composita ha una memoria “più lunga†rispetto sia a ciascuno degli (m ) Sottosistemi che al Sottosistema di partenza di Fig.2. Infatti in quest’ultimo, poichà ̈ l’aggiornamento dei pesi à ̈ pilotato dall’errore all’istante(n −k)i pesi in ingresso relativi a dati grezzi ad istanti lontani da quello centrale(n −k)tendono a diventare evanescenti, parzializzando di fatto la durata effettiva della finestra rispetto alla durata nominale(hTs ) .II sistema multiflusso allevia questo inconveniente. Furthermore, the composite structure has a â € œlongerâ € memory than both each of the (m) Subsystems and the starting Subsystem of Fig. 2. In fact in the latter, since the update of the weights is driven by the error at the instant (n âˆ'k) the input weights relative to raw data at instants far from the central one (n ∠' k) tend to become evanescent, effectively reducing the effective duration of the window with respect to the nominal duration (hTs). The multi-flow system alleviates this drawback.

1.4 Retropropagazione nel tempo (BPTT [ 1], Sez.15,7) 1.4 Back propagation over time (BPTT [1], Section 15.7)

Il Sottosistema usa h 1 copie in cascata di MLP non ricorrenti di identica struttura (MLPh-k, MLPh-k-1,... , MLP1), indicate in Fig.5 con (h-k, h-k-1, ..., 1). The subsystem uses h 1 cascaded copies of non-recurring MLPs of identical structure (MLPh-k, MLPh-k-1, ..., MLP1), indicated in Fig. 5 with (h-k, h-k-1, ..., 1).

a) All’istante n MLPh-k,in base al dato grezzo u(n− h)in ingresso (indicato con(n− h)in Fig. 5), fornisce il valore del suo stato in uscita(n− h 1)' che a sua volta à ̈ uno degli ingressi al successivo MLP alla sua destra, l’altro ingresso essendo il dato grezzo(n− h 1). L’insieme dell’elaborazione delle sezioni MLP in cascata serve a predire l’uscita del sottosistema complessivo, cioà ̈ il dato estrapolato y(n− k)in MLP1(combinazione lineare delle componenti dello stato dell’ultimo strato nascosto s(n− k)ottenuta tramite pesaggio con a) At the instant n MLPh-k, based on the raw data u (n∠'h) in input (indicated with (nâˆ' h) in Fig. 5), it provides the value of its status in output (n∠'h 1) 'which in turn is one of the inputs to the next MLP to its right, the other input being the raw data (nâˆ' h 1). The set of the elaboration of the MLP sections in cascade is used to predict the output of the overall subsystem, i.e. the extrapolated data y (n 'k) in MLP1 (linear combination of the components of the state of the last hidden layer s (n∠'k) obtained by weighting with

<n>−<k>−<1>la matrice C: y(n− k)= Cs ( t − k ) in base agli ingressi, cioà ̈ dati grezzi{u(.) }n − h e valori<n − k − 1><n> ∠'<k> âˆ' <1> the matrix C: y (n∠'k) = Cs (t âˆ' k) based on the inputs, i.e. raw data {u (.)} n ∠'h and values <n ∠'k âˆ' 1>

degli stati{s(.) }n− h 1.Si noti che solo nel primo MLP a sinistra in Fig.5 il dato dallo stato in ingresso s(n− h)((n− h)' ) à ̈ assente. of states {s (.)} n∠’h 1. Note that only in the first MLP on the left in Fig. 5 the data from the input state s (n− h) ((n∠’h) ') is absent.

b) All’istante successivo (n+1) si scarta a sinistra la sezione di MLP meno recente relativa all’istante(n− h)e si considera un nuovo MLP a destra con ingressi u ( n − k ), s ( n − k ) . In tale MLP si copiano i pesi del MLP alla sua sinistra. Quindi facendo propagare il segnale in ingresso u(n− h 1)attraverso tutte le sezioni, si calcola il nuovo valore estrapolato y(nk+1) e l’errore u ( n − k 1) − y ( n − k 1) b) At the next instant (n + 1) the least recent section of the MLP relative to the instant (n∠'h) is discarded to the left and a new MLP is considered on the right with inputs u (n âˆ' k), s (n ∠'k). In this MLP you copy the weights of the MLP to its left. Then by propagating the input signal u (n∠'h 1) through all the sections, we calculate the new extrapolated value y (nk + 1) and the error u (n âˆ' k 1) ∠'y (n ∠'k 1)

c) L’errore à ̈ usato per aggiornare i pesi dell’ultimo MLP a destra, già predisposti tramite copia indicata sopra, tramite EKF. Gli altri MLP hanno pesi che erano stati aggiornati negli istanti precedenti. c) The error is used to update the weights of the last MLP on the right, already set up via the copy indicated above, via EKF. The other MLPs have weights that were updated in the previous moments.

Ponendo oran→n+1 si ricomincia un nuovo ciclo a→b→c. By placing oranâ † ’n + 1, a new cycle aâ †’ bâ † ’c starts again.

Il sistema di elaborazione à ̈ una finestra mobile, nel tempo, di (h-k) sottosistemi MLP. The processing system is a floating window, over time, of (h-k) MLP subsystems.

Rispetto ad una rete neurale RMLP, la struttura BPTT à ̈ meno generale ma meno onerosa dal punto di vista del calcolo e non incorre in potenziali problemi di instabilità, poichà ̈ gli MLPinon hanno retroreazioni. Compared to an RMLP neural network, the BPTT structure is less general but less burdensome from a computational point of view and does not incur potential instability problems, since MLPin have no feedback.

1.5 Sottosistema Retrocausale 1.5 Retrocausal subsystem

Il Sottosistema usa k copie in cascata di MLP non ricorrenti di identica struttura (MLPk, MLPk-1,... , MLP1), indicate in Fig.6 con (k,k-1, ..., 1). The subsystem uses k cascaded copies of non-recurring MLPs of identical structure (MLPk, MLPk-1, ..., MLP1), indicated in Fig. 6 with (k, k-1, ..., 1).

L’elaborazione sotto indicata procede in maniera analoga che nel Sottosistema in Fig. 5, solo che in questo caso il tempo retrocede procedendo nella cascata delle varie sezioni MLP della struttura. Tale Sottosistema, in cui gli ingressi a sotto-sezioni RMLP ad un certo istante causano uscite ad istanti precedenti, à ̈ indicato come retrocausale. Analogamente, il sistema di Fig.5 in cui gli ingressi a sottosezioni RMLP ad un certo istante causano uscite ad istanti successivi à ̈ indicato come causale. The processing indicated below proceeds in the same way as in the Subsystem in Fig. 5, except that in this case the time goes backwards proceeding in the cascade of the various MLP sections of the structure. This subsystem, in which inputs to RMLP subsections at a certain instant cause outputs at previous instants, is referred to as retrocausal. Similarly, the system of Fig.5 in which the inputs to RMLP subsections at a certain instant cause outputs at subsequent instants is indicated as causal.

d) All’istante n, MLPk,in base al dato grezzo u(n)in ingresso (indicato con(n)in Fig. 6) fornisce, il valore del suo stato retrocausale in uscita(n −1)' che a sua volta à ̈ uno degli ingressi al successivo MLP alla sua sinistra, l’altro ingresso essendo il dato grezzo(n −1). L’insieme dell’elaborazione delle sezioni MLP in cascata serve a predire l’uscita del sottosistema complessivo, cioà ̈ il dato estrapolato retrocausale y<b>(n− k)in MLP1(combinazione lineare delle componenti dello stato retrocausale dell’ultimo strato nascosto s<b>(n− k)ottenuta tramite pesaggio con la matrice C: y<b>(n− k)= Cs<b>( t − k ) in base agli d) At instant n, MLPk, based on the raw data u (n) in input (indicated with (n) in Fig. 6) provides, the value of its retrocausal state in output (n âˆ'1) 'which in turn it is one of the inputs to the next MLP on its left, the other input being the raw data (n âˆ'1). The set of the elaboration of the MLP sections in cascade is used to predict the output of the overall subsystem, i.e. the extrapolated retrocausal datum y <b> (n∠'k) in MLP1 (linear combination of the components of the retrocausal state of the € ™ last hidden layer s <b> (n∠'k) obtained by weighting with the matrix C: y <b> (nâˆ' k) = Cs <b> (t ∠'k) on the basis of

<n>−<k>+<1 n − k 1>ingressi, cioà ̈ dati grezzi{u(.) }n e valori degli stati retrocausali{s<b>(.) } n−1 .Si noti che solo nel primo MLP a destra in Fig.6 il dato dallo stato retrocausale in ingresso s<b>(n)((n)' ) à ̈ assente. <n> ∠'<k> + <1 n âˆ' k 1> inputs, i.e. raw data {u (.)} n and retrocausal state values {s <b> (.)} nâˆ'1. Note that only in the first MLP on the right in Fig. 6 the data from the retrocausal state in input s <b> (n) ((n) ') is absent.

e) All’istante successivo (n+1) si scarta a sinistra la sezione di MLP meno recente relativa all’istante(n− k)e si considera una nuova sezione a destra con ingresso u ( n 1) . In tale sezione si copiano i pesi del MLP alla sua sinistra. Quindi facendo propagare il segnale in ingresso u(n 1)attraverso tutte le sezioni, si calcola il nuovo valore estrapolato y<b>(n-k+1) e l’errore u ( n − k 1) − y<b>( n − k 1) e) At the next instant (n + 1) the least recent MLP section relative to the instant (n∠’k) is discarded on the left and a new section on the right with input u (n 1) is considered. In this section we copy the weights of the MLP to its left. Then by propagating the input signal u (n 1) through all the sections, we calculate the new extrapolated value y <b> (n-k + 1) and the error u (n ∠'k 1) âˆ' y <b> (n ∠'k 1)

f) L’errore à ̈ usato per aggiornare i pesi dell’ultimo MLP a destra, già predisposti tramite copia indicata sopra, tramite EKF. Gli altri MLP hanno pesi che erano stati aggiornati negli istanti precedenti. f) The error is used to update the weights of the last MLP on the right, already prepared via the copy indicated above, via EKF. The other MLPs have weights that were updated in the previous moments.

Ponendo oran→n+1 si ricomincia un nuovo ciclo d→e→f. By placing oranâ † ’n + 1, a new cycle of dâ †’ andâ † ’f starts again.

Il sistema di elaborazione à ̈ una finestra mobile, nel tempo, di k sottosistemi MLP. The processing system is a floating window, over time, of k MLP subsystems.

L’uscita globale y<g>(n-k) si ottiene combinando le relative uscite dai Sottosistemi causale e The global output y <g> (n-k) is obtained by combining the relative outputs from the causal subsystems and

retrocausale. L’uso combinato dei due Sottosistemi, avente come ingresso una finestra di h dati retrocausal. The combined use of the two subsystems, having as input a window of h data

grezzi, si indica come Sistema Bidirezionale. rough, it is referred to as a Bidirectional System.

1.6 BPTT e Multirate 1.6 BPTT and Multirate

Ad ogni istante si considerano m Sottosistemi Bidirezionali con sottofinestre sfasate nel tempo e indici temporali delle uscite globali sfasate di conseguenza, analogamente che in Fig. 4. Queste uscite sono inviate a m-1 linee di ritardo di lunghezze variabili in modo tale che le loro uscite, relative allo stesso indice temporale, vengano combinate in modo da ottenere la stima finale. I pesi delle m strutture vengono aggiornati contemporaneamente tramite un Filtro di Kalman Esteso, Fig.2. At each instant, m Bidirectional Subsystems are considered with sub-windows out of phase in time and temporal indices of the global outputs out of phase accordingly, similarly as in Fig. 4. These outputs are sent to m-1 delay lines of variable lengths so that their outputs, relating to the same time index, are combined in order to obtain the final estimate. The weights of the m structures are updated simultaneously via an Extended Kalman Filter, Fig. 2.

1.7 Filtro di Kalman Esteso disaccoppiato 1.7 Uncoupled Extended Kalman Filter

Consideriamo le matrici di covarianza dell’errore in EKF nei vari Sottosistemi sopra indicati: l’analisi dell’addestramento iniziale indica quando una struttura diagonale a blocchi può approssimare convenientemente queste matrici, senza diminuire apprezzabilmente le prestazioni; con questa semplificazione viene ridotto il peso del calcolo dell’inversione delle matrici in EKF. Let us consider the error covariance matrices in EKF in the various subsystems indicated above: the analysis of the initial training indicates when a diagonal block structure can conveniently approximate these matrices, without appreciably decreasing performance; with this simplification the weight of the EKF matrix inversion calculation is reduced.

In Fig. 1 l’uscita filtrata del filtro estrapolatore basato su reti neurali (2) viene inviata allo stadio di elaborazione (3) per ricavare i dati di posizione e percorso. In Fig. 1 the filtered output of the extrapolating filter based on neural networks (2) is sent to the processing stage (3) to obtain the position and path data.

2. Equazioni di Navigazione (Sottosistema 3, Fig.1) 2. Navigation Equations (Subsystem 3, Fig.1)

Le misure inerziali prefiltrate (accelerazione e velocità angolare) - rappresentate nel sistema di riferimento dell’operatore (body frame, indicato con b) - misurate rispetto ad un riferimento inerziale (i) vengono inviate al sotto-sistema (Sottosistema 3, Fig.1) per ricavare i dati di posizione e percorso. The prefiltered inertial measurements (acceleration and angular velocity) - represented in the operator's reference system (body frame, indicated with b) - measured with respect to an inertial reference (i) are sent to the subsystem (Subsystem 3, Fig. 1) to obtain position and route data.

Si considera anche un sistema di riferimento solidale alla Terra (e). Nell’annotazione seguente gli e indici si riferiscono al riferimento in cui la misura à ̈ rappresentata; i pedici, come quelli in<ω ie>, siriferiscono al vettore di velocità angolare del riferimento (e) rispetto al riferimento (i), che in questo caso à ̈ la velocità angolare terrestre rappresentata nel sistema di riferimento della Terra. It is also considered a reference system in solidarity with the Earth (e). In the following annotation, the indices refer to the reference in which the measure is represented; subscripts, such as those in <Ï ‰ ie>, refer to the angular velocity vector of the reference (e) with respect to the reference (i), which in this case is the Earth's angular velocity represented in the Earth's reference frame.

Gli indici (b) ed (e) indicano rappresentazioni di misure rispetto ai riferimenti dell’operatore e della Terra. The indices (b) and (e) indicate representations of measures with respect to the references of the operator and of the Earth.

− to: tempo attuale ∠’to: current time

− Ts: intervallo di campionamento ∠’Ts: sampling interval

− r e : vettore posizione ∠’r e: position vector

− v<e>: vettore velocità ∠’v <e>: velocity vector

− g<e>: vettore accelerazione di gravità ∠’g <e>: acceleration vector of gravity

− R e ∠’R e

b: matrice di rotazione per passare dal riferimento dell’operatore a quello terrestre b: rotation matrix to pass from the operator to the terrestrial reference

ωb, sb: velocità angolare ed accelerazione nel riferimento dell’operatore provenienti da misure del sensore inerziale e filtrate dal primo Sottosistema di elaborazione (Fig. 1, Sottosistema 2). Si ha Ï ‰ b, sb: angular velocity and acceleration in the reference of the operator coming from measurements of the inertial sensor and filtered by the first processing subsystem (Fig. 1, Subsystem 2). Yes it has

ω<b>≡ ω b Ï ‰ <b> â ‰ ¡Ï ‰ b

<ω>b <Ï ‰> b

ie<= R>b ie <= R> b

e<ω>e and <Ï ‰> e

ie;<ω>b ie; <Ï ‰> b

eb<=ω>b b b b e eb <= Ï ‰> b b b b e

ib ; ib<−ω>ie<=ω − R>e<ω>ie(8)ib; ib <âˆ’Ï ‰> ie <= Ï ‰ ∠’R> e <Ï ‰> ie (8)

− ω b ∠’Ï ‰ b

eb: velocità angolare fra i riferimenti dell’operatore e terrestre, indicati nel riferimento dell’operatore. eb: angular velocity between the references of the operator and ground, indicated in the reference of the operator.

− I3: (3,3) matrice identità ∠’I3: (3,3) identity matrix

− 03: (3,3) matrice nulla ∠’03: (3,3) null matrix

− Ω b ∠’â„ ¦ b

eb: matrice antisimmetrica di rotazione associate aω b eb: rotation antisymmetric matrix associated with ‰ b

eb. and b.

 0−ω b ï £ "0âˆ'Ï ‰ b

eb<,>y ω b eb <,> y Ï ‰ b

eb<,>z eb <,> zï £ ¶

<><ï £ ·>

<Ω>b<><â „¦> b <ï £ ¬>

eb<=>ω b eb <=> ï £ ¬Ï ‰ b

eb, y 0<−>ω eb , x<=>Ant ( ω b eb, y 0 <∠’> Ï ‰ eb, xï £ <=> Ant (Ï ‰ b

eb ) and b)

 b ï £ ¬ b

ï£<−>ω eb , z ω eb , x 0  ï £ <∠’> Ï ‰ eb, z Ï ‰ eb, x 0 ï £ ·

ï£ ̧(9)ï £ ̧ (9)

Gli indici (x, y, z) si riferiscono alle tre componenti della velocità angolare ω b The indices (x, y, z) refer to the three components of the angular velocity Ï ‰ b

eb. In eq. (9) si definisce la matrice antisimmetrica Ant (r)=R associata al vettore generico (r). and b. In eq. (9) we define the antisymmetric matrix Ant (r) = R associated with the generic vector (r).

Le equazioni di navigazione seguenti indicano come le misure inerziali in uscita dal sensore inerziale, accelerazione e velocità angolare, dopo essere state filtrate dal Sottosistema 1 di Fig. 1, vengono usate per calcolare posizione e velocità nel riferimento terrestre, e matrice di rotazione R e The following navigation equations indicate how the inertial measurements in output from the inertial sensor, acceleration and angular velocity, after being filtered by the Subsystem 1 of Fig. 1, are used to calculate position and speed in the earth reference, and rotation matrix R and

b. b.

 r e ï £ «r e

<t>0+<Ts> I3 Ts I 3 r e <t> 0+ <Ts> ï £ ¶ I3 Ts I 3 r e

t0 0, 5T 2 t0ï £ ¶ ï £ «0, 5T 2

s I 3 s I 3ï £ ¶

  ï £ ¬ï £ ¬ ï £ ¶ï £ «

  ï £ · ï £ «

= e  R = e ï £ ¬ R

ï£ v e ï £ v e

t 0 Ts  t 0 Tsï £ · ï £ ¬ï £ ¬

ï£ ̧ ï£ 03 I ( e e b )0ï £ ̧ ï £ 03 Iï £ ï £ ï £ ¬ï £ ¬ (e and b) 0

3 ï£ ̧ï£ v 3 ï £ ̧ï £ vï £ · ï £ ·

t 0  g t 0 ï £ ¬ g

ï£ ̧ ï£ T b s ï £ ̧ ï £ Tï £ · ï £ · b s

s I<t>s I <t>

3 ï£ ̧ 3 ï £ ̧

(10) (10)

R<e>(t0)+ <sin>σ −<cos>σ  R <e> (t0) + ï £ "<sin> Ïƒï £ ¶ − <cos> Ïƒï £ ¶ ï £ ¹

b(t0+Ts)=R<e >b (t0 + Ts) = R <e ï £ ®>

b(T b(t0))<1>bï £ ¬ï £ · (T b (t0)) ï £ ¬ï £ «<1>

ï£ ̄I3 e(T b(tï £ ̄I3 e (T b (t

σsΩ<b>+s<Ω b>σsâ „¦ <b> + s <â„ ¦ b>

0))<2>0)) <2>

 ï£ ï£ ̧ ï£Ïƒ 2  eï £ ° ï £ ï £ ̧ ï £ σ 2 ï £ · e

ï£ ̧  ï £ ̧ ï £ º

 (11) ï £ "(11)

σ = (ω<b>σ = (Ï ‰ <b>

eb(t0))Tseb (t0)) Ts

(12) (12)

3. Stima dell’errore attraverso il Filtro di Kalman Esteso Complementare (CEKF) 3. Estimation of the error through the Complementary Extended Kalman Filter (CEKF)

(Sottosistema 5, Fig.1) (Subsystem 5, Fig. 1)

Oltre alle misure inerziali, si forniscono altri tipi di informazione, pseudomisure inerziali, che concorrono ad ottenere stime di posizione e velocità più accurate. I dati inerziali filtrati sono “obiettivi†in quanto provengono da strumenti di misura mentre le pseudomisure hanno origine da regole biometriche soggettive, che modellano caratteristiche dell’andatura umana e non sono prodotte da strumenti di misura. Si introduce un filtraggio attraverso il Filtro di Kalman Esteso Complementare (CEKF). In addition to inertial measurements, other types of information are provided, inertial pseudomeasures, which contribute to obtaining more accurate position and speed estimates. The filtered inertial data are â € œobjectiveâ € as they come from measuring instruments while the pseudomeasures originate from subjective biometric rules, which model characteristics of human gait and are not produced by measuring instruments. Filtering through the Complementary Extended Kalman Filter (CEKF) is introduced.

Errore vettoriale di stato con dimensione (15,1), definito da State vector error with dimension (15,1), defined by

<b b><b b>

<Î ́x>k<=>[<ε>k<;Î ́ω>k<;Î ́re><Î ́x> k <=> [<ε> k <; Î ́Ï ‰> k <; Î ́re>

k<;Î ́ve>k <; Î ́ve>

k<; Î ́ s>k](13)k <; Î ́ s> k] (13)

R<ˆ>e R <Ë †> e

b: matrice di rotazione vera (non nota) per passare dal riferimento (b) ad (e) b: true rotation matrix (not known) to pass from reference (b) to (e)

R e R and

b: matrice di rotazione stimata per passare dal riferimento (b) ad (e) b: rotation matrix estimated to pass from reference (b) to (e)

<Re><Re>

b<= (1−Ω e>b <= (1−⠄¦ e>

ε<) R ˆ>b (14)Î ́εk=(Î ́εk,x,Î ́εk,y, Î ́εk ,z )<T>(15) ε <) R Ë †> b (14) Î ́εk = (Î ́εk, x, Î ́εk, y, Î ́εk, z) <T> (15)

<Ω>εk<= Ant ( Î ́>εk<)>(16)Si assume per l’errore vettoriale un’equazione di evoluzione di stato <â „¦> εk <= Ant (Î ́> εk <)> (16) It is assumed for the vector error a state evolution equation

) )

Î ́xk=Î ̈kÎ ́xk−1+ wk − 1(17) ove E[wkw<T>Î ́xk = Î ̈kÎ ́xk−1 + wk ∠’1 (17) where E [wkw <T>

k ]= Qkk] = Qk

ed una corrispondente equazione per l’evoluzione della stima dell’errore and a corresponding equation for the evolution of the error estimate

<Î ́x>k/k−1<= Î ̈>k<Î ́ x>k−1/ k − 1(18)dove, secondo la notazione CEKF <Î ́x> k / k−1 <= Î ̈> k <Î ́ x> k−1 / k ∠’1 (18) where, according to the CEKF notation

− Î ́xk/k − 1à ̈ la stima dell’errore vettoriale estrapolata di un passo ∠’Î ́xk / k − 1à ̈ the estimate of the vector error extrapolated by a step

− Î ́xk / kà ̈ l’errore vettoriale filtrato ∠’Î ́xk / kà ̈ the filtered vector error

 e  ï £ «and ï £ ¶

 I3 Ts Rbk/k −103 03 03  ï £ ¬ I3 Ts Rbk / k âˆ'103 03 03 ï £ ·

 03 I3 03 03 03  ï £ ¬ 03 I3 03 03 03 ï £ ·

 ï £ ¬

Î ̈k= 03 03 I3 T s I30   3  (19)  e Î ̈k = 03 03 I3 T s I30 ï £ ï £ ¬ 3 ï £ (19) ï £ ¬ e

−T sS 'e âˆ'T sS 'e

<k>−<1>03 03 I3 Ts R   bk/k −1 <k> ∠’<1> 03 03 I3 Ts R ï £ · ï £ ¬ bk / k âˆ'1ï £ ·

 ï £ ¬

ï£ 03 03 03 03 I 3  ï £ 03 03 03 03 I 3 ï £ ·

ï£ ̧ ï £ ̧

Le matrici di transizione di stato in eq. (17), non specificata qui, e in eq. (18) e (19) contengono rispettivamente grandezze reali ma non note e le corrispondenti stime. The state transition matrices in eq. (17), not specified here, and in eq. (18) and (19) contain respectively real but unknown quantities and the corresponding estimates.

s<'e e>s <'and e>

k− 1=Rb,k/ k−1(s<b>k∠’1 = Rb, k / k−1 (s <b>

k−1− Î ́ s<b>k−1∠’Î ́ s <b>

k−1/ k − 1) (20) S<'e>k−1 / k ∠’1) (20) S <'e>

kAnt(s<'e>kAnt (s <'e>

− 1=k − 1 )(21) Il modello delle pseudomisure à ̈ ∠’1 = k − 1) (21) The pseudomeasures model is

<z>k<=H Î ́x>k<+ n>k(22)Dove <z> k <= H Î ́x> k <+ n> k (22) Where

− (zk) à ̈ il vettore di misura affetto da rumore ∠’(zk) is the measurement vector affected by noise

− H à ̈ una matrice di misura (9,15), specificata in seguito ∠’H is a measurement matrix (9,15), specified below

− (nk) à ̈ il rumore di misura ∠’(nk) is the measurement noise

− Rk=E(nknk<T>)à ̈ la matrice di covarianza dell’errore di misura ∠’Rk = E (nknk <T>) is the covariance matrix of the measurement error

− Kkà ̈ il guadagno di Kalman ∠’Kkà ̈ the gain of Kalman

La stima filtrata dell’errore si ottiene dalla stima estrapolata come segue: The filtered estimate of the error is obtained from the extrapolated estimate as follows:

(23) (23)

mkà ̈ un (9,1) vettore pseudomisura composito, ottenuto impilando tre vettori di pseudomisura relativi a velocità angolare, posizione e velocità rispettivamente. Definiamo mkà is a (9,1) composite pseudo-measure vector, obtained by stacking three pseudomeasure vectors relative to angular velocity, position and velocity respectively. We define

(24) (24)

Î ́v<e>Î ́v <e>

k / k=[03,03,03,I3,03 ]Î ́ xk / k(25) k / k = [03,03,03, I3,03] Î ́ xk / k (25)

r e e e r e e e

k / k=rk/k−1− Î ́ rk/k (26) k / k = rk / k−1∠’Î ́ rk / k (26)

v e e v and e

k /vk/k Î ́ v e k / vk / k Î ́ v e

k=−1− k/k (27) k = −1∠’k / k (27)

Le quantità nelle eq. (24), (25) sono usate nelle eq. (26), (27) per correggere le stime di posizione e velocità in (Fig.1, Sottosistema 6) in modo tale che, dall’azione combinata del filtraggio di Kalman e delle correzioni, l’accuratezza nelle stime aumenta nel tempo. The quantities in eqs. (24), (25) are used in eqs. (26), (27) to correct the estimates of position and velocity in (Fig.1, Subsystem 6) so that, by the combined action of Kalman filtering and corrections, the accuracy in the estimates increases in the time.

3.1 Riassunto delle equazioni di errore 3.1 Summary of the error equations

Le equazioni, riguardanti un passo temporale, sono: The equations, concerning a time step, are:

1. Correzioni rispetto alle derive degli accelerometri e dei giroscopi 1. Corrections with respect to the drift of accelerometers and gyroscopes

ω ' b b b Ï ‰ 'b b b

k− 1=ωk−1 − Î ́ωk−1/ k−1 (28) s' b k∠’1 = Ï ‰ k−1 − Î ́Ï ‰ k−1 / k−1 (28) s' b

k−1=s b b k−1 = s b b

k−1− Î ́ sk−1/k− 1(29) k−1∠’Î ́ sk−1 / k− 1 (29)

Ω'<b>â „¦ '<b>

k−1= Ant( ω<' b>k−1 = Ant (Ï ‰ <'b>

k − 1) (30) k ∠’1) (30)

e sin σ ' 2 eï £ ® ï £ «sin σ '2

k − 1 k ∠’1ï £ ¶

 'b1 − cos σ ' ï £ · 'bï £ "1 − cos σ'

k − 1 'b2 k ∠’1ï £ ¶ 'b2ï £ ¹

<R>e <R> and

b,k/k−1=<R>b,k−1/ k −1ï£ ̄<I>3 (<T>Ωk − 1 ) ' (<T>s k − 1 ) (31) b, k / kâˆ'1 = <R> b, kâˆ'1 / k âˆ'1ï £ ̄ <I> 3ï £ ¬ï £ ¬ (<T> â „¦k ∠'1)' (<T> s k ∠'1) ï £ º (31)

ï£ ̄ k − 1  ï £ ̄ k ∠’1ï £ · ï £ ¬ï £ ¬

 ï£ Ïƒ ' s ï £ ° ï £ σ 's

ï£ ̧ ï£Ïƒk − 1 Ω ï £ ̧ ï £ σk ∠’1ï £ · ï £ · â„ ¦

ï£ ̧  ï £ ̧ ï £ ºï £ "

σ ' σ '

k− 1= ω ' b k∠’1 = Ï ‰ 'b

k −1 T s (32) 2. Sottrazione della gravità k −1 T s (32) 2. Subtraction of gravity

s<'e 'b T>s <'and' b T>

k− 1=R<e>k∠’1 = R <e>

b,k/ k−1sk − 1− [0,0 , g ] (33) 3. Equazioni di navigazione con stime di posizione e velocità nel riferimento terrestre. b, k / k−1sk ∠’1− [0,0, g] (33) 3. Navigation equations with position and velocity estimates in the terrestrial reference.

 r e  3 T  r e 0, 5T  ï £ «r e ï £« 3 T ï £ «r e ï £« 0, 5T ï £ ¶

<k>/<k>−1 I<s>I 2 ï £ ¬ï £ ¬ <k> / <k> −1ï £ ¶ I <s> I 2

3 3ï £ ¶

k−1/ k − 1 s I 3 ' e ï £ · ï £ ¬k−1 / k ∠’1ï £ ¶ s I 3 'e

<>=e+s (34) ï£ v e ï £ · <ï £ ·> = e + s (34) ï £ v e

k/ k − 1 k / k ∠’1ï £ ¬ï £ ¬

ï£ ̧ ï£ 03 I 3ï£·ï £ ̧ ï £ 03 I 3ï £

ï£ ̧ï£¬ï £ ̧ï £ ¬

ï£ vk−1/ k −<>ï £ vkâˆ'1 / k âˆ'ï £ · <ï £ ·>

1ï£ ̧ 1ï £ ̧ï £ ¬ï £ ¬

ï£ T s I 3k<−>1 ï £ T s I 3ï £ · ï £ · k <∠’> 1

ï£ ̧ ï £ ̧

4. Previsione dell’errore dove la matriceÎ ̈kà ̈ data dall’eq. (19). 4. Error prediction where the matrix ̈k is given by eq. (19).

<Î ́x>k/k−1<= Î ̈>k<Î ́ x>k−1/ k − 1(18)5. Calcolo del guadagno di KalmanKk: <Î ́x> k / k−1 <= Î ̈> k <Î ́ x> k−1 / k ∠’1 (18) 5. Calculation of the gain of KalmanKk:

<− 1><∠’1>

<K>k<=P>k/k−1<H (HP>k/k−1<HT R>k<)>(35)6. Calcolo dell’errore filtrato <K> k <= P> k / k−1 <H (HP> k / k−1 <HT R> k <)> (35) 6. Calculation of the filtered error

<Î ́x>k/k<=Î ́x>k/k−1<+K>k<(m>k<−H Î ́ x>k/ k −1<)>(23)7. Calcolo della matrice di covarianza dell’errore filtrato <Î ́x> k / k <= Î ́x> k / kâˆ'1 <+ K> k <(m> k <âˆ'H Î ́ x> k / k âˆ'1 <)> (23) 7. Calculation of the covariance matrix of the filtered error

<T><T>

<P>k/k<= (I−K>k<H )P>k/k −1<(I−K>k<H ) K>k<R>k<K T><P> k / k <= (Iâˆ'K> k <H) P> k / k âˆ'1 <(Iâˆ'K> k <H) K> k <R> k <K T>

k (36)8. Calcolo della matrice di covarianza dell’errore estrapolato k (36) 8. Calculation of the covariance matrix of the extrapolated error

P T P T

k+1/k=Î ̈kPk /kÎ ̈k+ Q k (37) k + 1 / k = Î ̈kPk / kÎ ̈k + Q k (37)

9. Correzione delle equazioni di navigazione 9. Correction of navigation equations

Î ́r<e>Î ́r <e>

k/ k=(03,03,I3,03,03 )Î ́ xk / k(24) k / k = (03.03, I3.03.03) Î ́ xk / k (24)

Î ́v<e>Î ́v <e>

k/ k=(03,03,03,I3,03 )Î ́ xk / k(25) k / k = (03.03.03, I3.03) Î ́ xk / k (25)

r e e e r e e e

k/ k=rk/k−1− Î ́ rk/k (26) k / k = rk / k−1∠’Î ́ rk / k (26)

v e e v e v e and v e

k/ k=vk/k−1− Î ́k/k (27) k / k = vk / k−1∠’Î ́k / k (27)

10. Calcolo della matrice di rotazione filtrata: 10. Calculation of the filtered rotation matrix:

Î ́Ï•k/k= (I3,03,03,03,03) Î ́ xk / k(38) Î ́Ï • k / k = (I3,03,03,03,03) Î ́ xk / k (38)

Mk= Ant (Î ́Ï•k /k) (39) Mk = Ant (Î ́Ï • k / k) (39)

R<e>= ( )( −M<−1>R <e> = () (−M <−1>

k) R<e>k) R <e>

bk/ k2I Mk2Ibk/ k − 1(40) bk / k2I Mk2Ibk / k ∠’1 (40)

La quantitàΠ́xk−1/ k − 1à ̈ usata in eq. (18) per ottenereÎ ́xk/k − 1, che à ̈ introdotta nell’equazione di pseudomisura (23) per ottenere l’errore filtratoÎ ́xk / k, che a sua volta à ̈ usato per correggere le stime di posizione e velocità nelle equazioni (26) e (27). Tuttavia, prima di usare l’eq. (18) tutte le componenti di Î ́xk−1/ k − 1, tranne quelle relative all’accelerazione e alla velocità angolare, devono essere azzerate: ciò à ̈ richiesto perchà ̈ altrimenti una correzione già attuata verrebbe propagata nel tempo. The quantity Î ́xkâˆ'1 / k ∠’1à is used in eq. (18) to obtain Î ́xk / k ∠'1, which is introduced in the pseudomeasurement equation (23) to obtain the filtered error Î ́xk / k, which in turn is used to correct the position estimates and velocity in equations (26) and (27). However, before using eq. (18) all the components of Î ́xkâˆ'1 / k ∠’1, except those relating to acceleration and angular velocity, must be zeroed: this is required because otherwise a correction already implemented would be propagated over time.

Riassumendo da eq. (18) si ha: Summarizing from eq. (18) we have:

ε e b ε and b

k/k−1=TsRbk/ k−1Î ́ωk−1/k− 1(41) Î ́ω b b k / k−1 = TsRbk / k−1Î ́Ï ‰ k−1 / k∠’1 (41) Î ́Ï ‰ b b

k/ k−1= Î ́ωk−1/k− 1(42) Î ́r e k / k−1 = Î ́Ï ‰ k−1 / k∠’1 (42) Î ́r and

k/ k−1= 0 (43) Î ́v e e b k / k−1 = 0 (43) Î ́v e e b

k / k−1=TsRbk/k−1Î ́ sk−1/k− 1(44) Î ́s b b k / k−1 = TsRbk / k−1Î ́ sk−1 / k∠’1 (44) Î ́s b b

k / k−1= Î ́ sk−1/k− 1(45) Negli istanti in cui le pseudomisure non sono disponibili, si usano le equazioni di navigazione (10), (11) e (12) e non viene implementata alcuna correzione di errore fino alla disponibilità di una nuova pseudomisura. In questo caso si usano le seguenti equazioni per propagare la stima di covarianza dell’errore. k / kâˆ'1 = Î ́ skâˆ'1 / k∠'1 (45) When pseudo-measurements are not available, the navigation equations (10), (11) and (12) are used and no error correction until a new pseudomeasure is available. In this case the following equations are used to propagate the covariance estimate of the error.

P T P T

k+1/ k=Î ̈kPk / kÎ ̈k+ α k (46) k + 1 / k = Î ̈kPk / kÎ ̈k + Î ± k (46)

Pk+1/k+1= Pk 1 / k(47) Pk + 1 / k + 1 = Pk 1 / k (47)

Kk= 0 (48) Kk = 0 (48)

4. Pseudomisure (Sottosistema 4, Fig.1) 4. Pseudomeasures (Subsystem 4, Fig.1)

Nel Sottosistema 4, Fig. 1 si modellano le pseudo misure come combinazioni soggettive delle stime di velocità e posizione derivate dal Sottosistema 3. In Subsystem 4, Fig. 1 the pseudo measures are modeled as subjective combinations of the velocity and position estimates derived from Subsystem 3.

Quando il sensore inerziale à ̈ posizionato su una scarpa, in ciascun passo esiste un breve intervallo (poche centinaia di msecs.) in cui il piede ha approssimativamente zero velocità. La condizione di zero velocità à ̈ assunta per ciascun campione temporale in cui tre criteri soggettivi sono contemporaneamente validi: When the inertial sensor is placed on a shoe, in each step there is a short interval (a few hundred msecs.) In which the foot has approximately zero speed. The zero speed condition is assumed for each time sample in which three subjective criteria are simultaneously valid:

g<e>−T<b>g <e> âˆ'T <b>

1≤ s ≤g<e>+ T1(49) 1â ‰ ¤ s â ‰ ¤g <e> + T1 (49)

Deviazione standard di s<b>≤T2(50) Standard deviation of s <b> â ‰ ¤T2 (50)

ω<b>≤T3(51) Ï ‰ <b> â ‰ ¤T3 (51)

dove T1, T2, T3rappresentano soglie opportunamente scelte. where T1, T2, T3 represent suitably chosen thresholds.

Le pseudomisure in eq. (23) sono modellate come segue: The pseudomeasures in Eq. (23) are modeled as follows:

• Aggiornamento con Zero Posizione - Velocità (ZPVUP) â € ¢ Update with Zero Position - Speed (ZPVUP)

0 0 ï £ «0 0

 3 03 3 03 03 ï £ ¬ 3 03 3 03 03ï £ ¶

 ï £

H =03 03 Iz3 03 03 (52)  H = ï £ ¬03 03 Iz3 03 03ï £ · (52) ï £ ¬

ï£03 03 03 I3 03 ï £ 03 03 03 I3 03ï £

ï£ ̧ ï £ ̧

1 0 0 ï £ «1 0 0ï £ ¶

  ï £ ¬ ï £ ·

<Iz 3>=0 1 0 <Iz 3> = ï £ ¬0 1 0ï £

(53)ï£0 0 0 ï £ ¬ (53) ï £ 0 0 0ï £

ï£ ̧ ï £ ̧

Il vettore di pseudomisura (9,1) Ã ̈ definito come: The pseudomeasurement vector (9,1) is defined as:

m ] ;[r<e e e T>m]; [r <e e e T>

k=([0,0,0<T>k = ([0,0,0 <T>

k / k−1, x−rk−1/ k−1, x,rk / k−1, y−r<e>k / k−1, x−rk−1 / k−1, x, rk / k−1, y−r <e>

k−1/ k−1, y,0]; v<e>k−1 / k−1, y, 0]; v <e>

k / k − 1 )(54) k / k ∠’1) (54)

L’eq. (54) indica che i pseudo errori sono: Eq. (54) indicates that the pseudo errors are:

- v<e>k/ k−1 ≡ ve - v <e> k / k−1 â ‰ ¡ve

k/ k −1 −(0,0,0 ) T , relativo alla velocità k / k −1 ∠’(0,0,0) T, relative to the speed

- Differenza tra posizione estrapolata e filtrata nel piano orizzontale. - Difference between extrapolated and filtered position in the horizontal plane.

Questi errori diminuiscono nel tempo per azione di KF, così che la stima di velocità à ̈ forzata verso lo zero e la stima di posizione nel piano orizzontale à ̈ forzata verso un valore costante. These errors decrease over time by the action of KF, so that the speed estimate is forced towards zero and the position estimate in the horizontal plane is forced towards a constant value.

Uno pseudo errore di posizione à ̈ introdotto solo per il piano orizzontale ma non per il verticale, quindi evitando vincoli di correzione lungo il verticale: infatti à ̈ che se fosse introdotto un vincolo lungo la direzione verticale, la componente verticale della stima di posizione risulterebbe affetta da una deriva dovuta alla differenza tra il valore ipotizzato e quello attuale dell’accelerazione di gravità, che non sarebbe compensato dal Filtro di Kalman. A pseudo position error is introduced only for the horizontal plane but not for the vertical, thus avoiding correction constraints along the vertical: in fact, if a constraint was introduced along the vertical direction, the vertical component of the position estimate would be affected by a drift due to the difference between the hypothesized and the actual value of the acceleration of gravity, which would not be compensated by the Kalman Filter.

• Aggiornamento con Zero Posizione - Velocità - Velocità Angolare. â € ¢ Update with Zero Position - Speed - Angular Speed.

Il vincolo può essere applicato durante una pausa iniziale (decine di secondi) prima di iniziare la vera camminata, oppure in qualsiasi intervallo in cui avviene una “lunga†pausa (in pratica non minore di circa 10 secondi). In questo caso anche la stima della velocità angolare à ̈ ipotizzata come un errore da minimizzare attraverso l’azione del Filtro di Kalman, così che – le stime di velocità e velocità angolare tendono a zero e – la stima di posizione tende ad un valore costante. The constraint can be applied during an initial pause (tens of seconds) before starting the real walk, or in any interval in which a “long” pause occurs (in practice no less than about 10 seconds). In this case, the estimate of the angular velocity is also assumed as an error to be minimized through the action of the Kalman Filter, so that â € “the estimates of velocity and angular velocity tend to zero and - the estimate of position tends to a constant value.

Abbiamo We have

0 ï £ «0

 3 I3 03 03 03 ï £ ¬ 3 I3 03 03 03ï £ ¶

 ï £

H =03 03 I3 03 03 (55) H = ï £ ¬03 03 I3 03 03ï £ · (55)

 ï £ ¬

ï£03 03 03 I3 03 ï £ 03 03 03 I3 03ï £

ï£ ̧ ï £ ̧

Ed il vettore di pseudomisura à ̈ And the pseudomeasure vector is

 ωb ï £ ® Ï ‰ b

k/ k − 1  k / k ∠’1 ï £ ¹

ï£ ̄ ï £ ̄

m = r e − r e  m = r and ∠’r and ï £ º

k ï£ ̄k/ k−1 k−1/ k − 1 (56) ï£ ̄ ve k ï £ ̄k / k−1 k−1 / k ∠’1ï £ º (56) ï £ ̄ï £ ° ve

k / k − 1  k / k ∠’1 ï £ ºï £"

Quando invece l’unità inerziale (IMU) non à ̈ posizionato nel tacco ma alla vita o in una tasca, si assume in assenze di pseudomisure, i Sottosistema hi 4, 5 e 6 di Fig.1 sono assenti e l’interpolatore ANN in Sottosistema 2, Fig. 1 svolge il ruolo di filtrare, oltre il rumore del sensore inerziale, componenti di segnale che non sono proprie del passo umano (misurato dalla vita o dalla tasca) quali polarizzazioni e derive. On the other hand, when the inertial unit (IMU) is not positioned in the heel but at the waist or in a pocket, it is assumed that there are no pseudomeasures, the subsystem hi 4, 5 and 6 of Fig. 1 are absent and the interpolator ANN in Subsystem 2, Fig. 1 plays the role of filtering, in addition to the noise of the inertial sensor, signal components that are not typical of the human step (measured from the waist or from the pocket) such as polarizations and drifts.

Bibliografia Bibliography

[ 1] S. Haykin: Neural Networks and Learning Machines, 3rd edition, Pearson 2009 [1] S. Haykin: Neural Networks and Learning Machines, 3rd edition, Pearson 2009

[ 2] M. Schuster e K.K. Paliwal: Bidirectional Recurrent Neural Networks, IEEE Transactions on Signal Processing, Vol.45, N.11, Nov.1997 [2] M. Schuster and K.K. Paliwal: Bidirectional Recurrent Neural Networks, IEEE Transactions on Signal Processing, Vol. 45, N.11, Nov.1997

[ 3] L. A. Feldkamp e G. V. Puskorius: Training Controllers for Robustness: Multi-stream DEKF, Proceedings of the IEEE International Conference on Neural Networks, pag. 2377-2382 [3] L. A. Feldkamp and G. V. Puskorius: Training Controllers for Robustness: Multi-stream DEKF, Proceedings of the IEEE International Conference on Neural Networks, p. 2377-2382

[ 4] Xiao Hu e D.C. Wunsch II: Time Series Prediction with a Weighted Bidirectional Multi-Stream Extended Kalman Filter, IEEE 2004 [4] Xiao Hu and D.C. Wunsch II: Time Series Prediction with a Weighted Bidirectional Multi-Stream Extended Kalman Filter, IEEE 2004

[ 5] A.R. Jimenez, F. Seco, C. Prieto and J. Guevara, “A Comparison of Pedestrian Dead-Reckoning Algorithms using a Low-Cost MEMS IMU†, WISP 2009, 6th IEEE International Symposium on Intelligent Signal Processing, Budapest, Hungary, 26–28 August, 2009 [5] A.R. Jimenez, F. Seco, C. Prieto and J. Guevara, â € œA Comparison of Pedestrian Dead-Reckoning Algorithms using a Low-Cost MEMS IMUâ €, WISP 2009, 6th IEEE International Symposium on Intelligent Signal Processing, Budapest, Hungary, 26â € “28 August, 2009

[ 6] Zampella, F., Khider, M., Robertson, P., Jimenez, A., "Unscented Kalman filter and Magnetic Angular Rate Update (MARU) for an improved Pedestrian Dead-Reckoning", IEEE/ION Position Location and Navigation Symposium (PLANS), 23-26 April 2012 [6] Zampella, F., Khider, M., Robertson, P., Jimenez, A., "Unscented Kalman filter and Magnetic Angular Rate Update (MARU) for an improved Pedestrian Dead-Reckoning", IEEE / ION Position Location and Navigation Symposium (PLANS), 23-26 April 2012

[ 7] Elwell, J., “Inertial navigation for the urban warrior†, SPIE Conference on Digitization of the Battlespace IV, SPIE vol.3709, Orlando, FL, (1999) [7] Elwell, J., â € œInertial navigation for the urban warriorâ €, SPIE Conference on Digitization of the Battlespace IV, SPIE vol. 3709, Orlando, FL, (1999)

[ 8] S. Godha, G. Lachapelle, M.E. Cannon,, "Integrated GPS/INS System for Pedestrian Navigation in a Signal Degraded Environment", Institute of Navigation (ION), ION GNSS 2006 Best Presentation Awards, 2006 [8] S. Godha, G. Lachapelle, M.E. Cannon ,, "Integrated GPS / INS System for Pedestrian Navigation in a Signal Degraded Environment", Institute of Navigation (ION), ION GNSS 2006 Best Presentation Awards, 2006

[ 9] R. Zhang, M. Loschonsky and L.M. Reindl, "Study of Zero Velocity Update for Both Low- and High-Speed Human Activities", International Journal of E-Health and Medical Communications (IJEHMC), Volume 2, Issue 2, 2011. [9] R. Zhang, M. Loschonsky and L.M. Reindl, "Study of Zero Velocity Update for Both Low- and High-Speed Human Activities", International Journal of E-Health and Medical Communications (IJEHMC), Volume 2, Issue 2, 2011.

[ 10] Positioning Refinement Algorithm, US patent n° US6,292,751 B1, Sept.18.2001 [10] Positioning Refinement Algorithm, US patent n ° US6,292,751 B1, Sept.18.2001

[ 11] Vision Based on Zero Velocity Update and Zero Attitude Rate Update, US2012/01833179 A1, July 19, 2012 [11] Vision Based on Zero Velocity Update and Zero Attitude Rate Update, US2012 / 01833179 A1, July 19, 2012

[ 12] Chi-Chung Lo, Chen-Pin Chiu, Yu-Chee Tseng, Sheng-An Chang, Lun-Chia Kuo, "A Walking Velocity Update technique for pedestrian dead-reckoning applications", IEEE 22nd International Symposium on Personal Indoor and Mobile Radio Communications (PIMRC), 2011 [12] Chi-Chung Lo, Chen-Pin Chiu, Yu-Chee Tseng, Sheng-An Chang, Lun-Chia Kuo, "A Walking Velocity Update technique for pedestrian dead-reckoning applications", IEEE 22nd International Symposium on Personal Indoor and Mobile Radio Communications (PIMRC), 2011

[ 13] Enhanced Inertial System Performance, US2007/0050138 A1, March 1, 2007 [13] Enhanced Inertial System Performance, US2007 / 0050138 A1, March 1, 2007

[ 14] I. Skog, P. Handel, J. Nilsson, and J. Rantakokko, “Zero-velocity detection - an algorithm evaluation,†Biomedical Engineering, IEEE Transactions on, vol.57, pp.2657 –2666, nov. 2010 [14] I. Skog, P. Handel, J. Nilsson, and J. Rantakokko, â € œZero-velocity detection - an algorithm evaluation, â € Biomedical Engineering, IEEE Transactions on, vol. 57, pp. 2657 â € “ 2666, Nov. 2010

[ 15] System and Method for Gyroscope Error Estimation, WO 2012/135960 A1 (PCT/CA2012/050221), 5 April 2012 [15] System and Method for Gyroscope Error Estimation, WO 2012/135960 A1 (PCT / CA2012 / 050221), 5 April 2012

Claims (5)

RIVENDICAZIONI dell’invenzione avente per TITOLO: Sistema di Navigazione pedonale usante dati inerziali, Reti Neurali Artificiali e pseudomisure per correzione di errori 1. Dispositivo di localizzazione indossabile da un operatore pedonale e comprendente: • un sensore inerziale configurato per misurare accelerazioni e velocità angolari dell’operatore pedonale e per fornire in uscita dati grezzi indicativi di sequenze temporali delle accelerazioni e delle velocità angolari misurate; • un filtro non lineare di interpolazione che à ̈ accoppiato al sensore inerziale per ricevere da quest’ultimo i dati grezzi e che comprende una rete neurale artificiale addestrata per filtrare ed interpolare i dati grezzi in modo tale da filtrare rumore e derive termiche utilizzando pesi ottenuti tramite un apprendimento automatico di caratteristiche del passo umano; • un sottosistema di integrazione delle equazioni del moto che à ̈ accoppiato al filtro non lineare di interpolazione per ricevere da quest’ultimo i dati filtrati ed interpolati e che à ̈ configurato per - stimare posizione, velocità e percorso dell’operatore pedonale elaborando i dati filtrati ed interpolati, e - fornire in uscita corrispondenti stime preliminari di posizione, velocità e percorso; ed • un sottosistema di stima degli errori di posizione e velocità che à ̈ accoppiato al sottosistema di integrazione delle equazioni del moto per ricevere da quest’ultimo le stime preliminari di posizione, velocità e percorso e che à ̈ configurato per - stimare errori di posizione e velocità sulla base di regole biometriche soggettive che modellano caratteristiche del passo umano e non sono prodotte da strumenti di misura, e - correggere le stime preliminari di posizione, velocità e percorso sulla base degli errori stimati ottenendo in questo modo stime finali corrette. CLAIMS of the invention having as TITLE: Pedestrian Navigation System using inertial data, Artificial Neural Networks and pseudomeasures for error correction 1. Location device wearable by a pedestrian operator and comprising: â € ¢ an inertial sensor configured to measure accelerations and angular velocities of the pedestrian operator and to output raw data indicative of temporal sequences of the accelerations and angular velocities measured; â € ¢ a non-linear interpolation filter that is coupled to the inertial sensor to receive the raw data from the latter and that includes an artificial neural network trained to filter and interpolate the raw data in order to filter noise and thermal drift using weights obtained through automatic learning of human step characteristics; â € ¢ a subsystem of integration of the equations of motion which is coupled to the non-linear interpolation filter to receive the filtered and interpolated data from the latter and which is configured for - estimate the position, speed and path of the pedestrian operator by processing the filtered and interpolated data, and - output corresponding preliminary estimates of position, speed and path; and â € ¢ a subsystem for estimating position and velocity errors which is coupled to the integration subsystem of the equations of motion to receive from the latter the preliminary estimates of position, velocity and path and which is configured for - estimate errors of position and speed on the basis of subjective biometric rules that model characteristics of the human step and are not produced by measuring instruments, and - correct the preliminary estimates of position, speed and path on the basis of the estimated errors, thus obtaining correct final estimates. 2. Il dispositivo di localizzazione della rivendicazione 1, in cui: • la rete neurale artificiale comprende - una pluralità di percettroni multistrato ricorrenti con uscite ritardate in configurazione multiflusso, ed - un filtro di Kalman esteso; • i diversi percettroni multistrato ricorrenti con uscite ritardate sono configurati per - filtrare ed interpolare differenti porzioni temporalmente sfalsate dei dati grezzi utilizzando uno stesso insieme di pesi, e - fornire corrispondenti uscite temporalmente sfalsate indicative dei dati filtrati ed interpolati; • la rete neurale artificiale à ̈ configurata per allineare temporalmente e combinare le uscite temporalmente sfalsate dei percettroni multistrato ricorrenti ottenendo in questo modo dati filtrati ed interpolati complessivi indicativi delle accelerazioni e delle velocità angolari dell’operatore pedonale ad ogni istante di campionamento; ed • il filtro di Kalman esteso à ̈ configurato per aggiornare lo stesso insieme di pesi utilizzato da tutti i percettroni multistrato ricorrenti. The location device of claim 1, wherein: â € ¢ the artificial neural network comprises - a plurality of recurring multilayer perceptrons with delayed outputs in a multi-flow configuration, ed - an extended Kalman filter; â € ¢ the different recurring multilayer perceptrons with delayed outputs are configured to - filter and interpolate different time-staggered portions of the raw data using the same set of weights, and - provide corresponding temporally staggered outputs indicative of the filtered and interpolated data; â € ¢ the artificial neural network is configured to temporally align and combine the temporally staggered outputs of the recurrent multilayer perceptrons thus obtaining overall filtered and interpolated data indicative of the accelerations and angular velocities of the pedestrian operator at each sampling instant; and â € ¢ The extended Kalman filter is configured to update the same set of weights used by all recurring multilayer perceptrons. 3. Il dispositivo di localizzazione della rivendicazione 1, in cui: • la rete neurale artificiale comprende - un filtro di Kalman esteso, ed - una pluralità di sistemi bidirezionali in configurazione multiflusso basati su retropropagazione nel tempo, ciascuno dei quali include una rispettiva sezione causale ed una rispettiva sezione retrocausale; • i diversi sistemi bidirezionali sono configurati per - filtrare ed interpolare differenti porzioni temporalmente sfalsate dei dati grezzi utilizzando uno stesso insieme di pesi, e - fornire corrispondenti uscite temporalmente sfalsate indicative dei dati filtrati ed interpolati; • la rete neurale artificiale à ̈ configurata per allineare temporalmente e combinare le uscite temporalmente sfalsate dei sistemi bidirezionali ottenendo in questo modo dati filtrati ed interpolati complessivi indicativi delle accelerazioni e delle velocità angolari dell’operatore pedonale ad ogni istante di campionamento; ed • il filtro di Kalman esteso à ̈ configurato per aggiornare lo stesso insieme di pesi utilizzato da tutti i sistemi bidirezionali. The location device of claim 1, wherein: â € ¢ the artificial neural network comprises - an extended Kalman filter, ed - a plurality of bidirectional systems in multi-flow configuration based on retro-propagation over time, each of which includes a respective causal section and a respective retrocausal section; â € ¢ the different bidirectional systems are configured for - filtering and interpolating different temporally staggered portions of the raw data using the same set of weights, e - provide corresponding temporally staggered outputs indicative of the filtered and interpolated data; â € ¢ the artificial neural network is configured to temporally align and combine the temporally staggered outputs of the bidirectional systems, thus obtaining filtered and interpolated overall data indicative of the accelerations and angular speeds of the pedestrian operator at each sampling instant; and â € ¢ The extended Kalman filter is configured to update the same set of weights used by all bidirectional systems. 4. Il dispositivo di localizzazione della rivendicazione 3, in cui: • la sezione retrocausale di ogni sistema bidirezionale comprende una cascata retrocausale di k percettroni multistrato per ricevere una sequenza di k campioni dei dati grezzi con il primo percettrone multistrato della cascata retrocausale che riceve in ingresso il campione relativo all’istante di campionamento più recente n e l’ultimo percettrone multistrato della cascata retrocausale che riceve in ingresso il campione relativo all’istante di campionamento meno recente n-k+1, in cui k e n sono numeri interi maggiori di zero ed in cui ad ognuno dei k percettroni multistrato della cascata retrocausale sono assegnati rispettivi pesi; • ogni percettrone multistrato della cascata retrocausale, tranne il primo, riceve in ingresso, oltre ad un rispettivo campione dei dati grezzi, anche un vettore indicativo di uno stato di uscita del percettrone multistrato precedente nella cascata retrocausale; • ogni percettrone multistrato della cascata retrocausale fornisce un’uscita indicativa del proprio stato di uscita sulla base di ciò che riceve in ingresso e dei rispettivi pesi assegnati; • la sezione causale di ogni sistema bidirezionale comprende una cascata causale di h-k percettroni multistrato per ricevere una sequenza di h-k campioni dei dati grezzi con il primo percettrone multistrato della cascata causale che riceve in ingresso il campione relativo all’istante di campionamento meno recente n-h e l’ultimo percettrone multistrato della cascata causale che riceve in ingresso il campione relativo all’istante di campionamento più recente n-k-1, in cui h à ̈ un numero intero maggiore di k, ed in cui ad ognuno degli h-k percettroni multistrato della cascata causale sono assegnati rispettivi pesi; • ogni percettrone multistrato della cascata causale, tranne il primo, riceve in ingresso, oltre ad un rispettivo campione dei dati grezzi, anche un vettore indicativo di uno stato di uscita del percettrone multistrato precedente nella cascata causale; • ogni percettrone multistrato della cascata causale fornisce un’uscita indicativa del proprio stato di uscita sulla base di ciò che riceve in ingresso e dei rispettivi pesi assegnati; • la sezione causale di ogni sistema bidirezionale à ̈ configurata per eseguire, per ogni nuovo campione dei dati grezzi, le seguenti operazioni: - scartare il primo percettrone multistrato della cascata causale; - aggiungere un nuovo percettrone multistrato in coda alla cascata causale; - assegnare a detto nuovo percettrone multistrato pesi identici a quelli del percettrone multistrato immediatamente precedente nella cascata causale, in cui detto nuovo percettrone multistrato fornisce un’uscita preliminare che à ̈ ottenuta sulla base dei pesi assegnati identici a quelli del percettrone multistrato immediatamente precedente nella cascata causale ed à ̈ relativa all’istante di campionamento n-k; - calcolare un errore indicativo della differenza tra l’uscita preliminare fornita da detto nuovo percettrone multistrato ed il campione dei dati grezzi relativo allo stesso istante di campionamento n-k; ed - aggiornare i pesi assegnati a detto nuovo percettrone multistrato sulla base dell’errore calcolato, in cui detto nuovo percettrone multistrato fornisce un’uscita definitiva che à ̈ ottenuta sulla base dei pesi aggiornati ed à ̈ relativa all’istante di campionamento n-k; • la sezione retrocausale di ogni sistema bidirezionale à ̈ configurata per eseguire, per ogni nuovo campione dei dati grezzi, le seguenti operazioni: - scartare l’ultimo percettrone multistrato della cascata retrocausale; - aggiungere un nuovo percettrone multistrato in testa alla cascata retrocausale; - assegnare a detto nuovo percettrone multistrato pesi identici a quelli del percettrone multistrato immediatamente successivo nella cascata retrocausale, in cui il percettrone multistrato in coda alla cascata retrocausale fornisce un’uscita preliminare relativa all’istante di campionamento n-k; - calcolare un errore indicativo della differenza tra l’uscita preliminare fornita dal percettrone multistrato in coda alla cascata retrocausale ed il campione dei dati grezzi relativo allo stesso istante di campionamento n-k; ed - aggiornare i pesi assegnati al nuovo percettrone multistrato in testa alla cascata retrocausale sulla base dell’errore calcolato, in cui il percettrone multistrato in coda alla cascata retrocausale fornisce un’uscita definitiva dopo l’aggiornamento dei pesi assegnati al nuovo percettrone multistrato in testa alla cascata retrocausale; • per ogni nuovo campione dei dati grezzi, ogni sistema bidirezionale à ̈ configurato per combinare le uscite definitive delle sezioni causale e retrocausale ottenendo in questo modo un dato filtrato ed interpolato complessivo relativo all’istante di campionamento n-k; ed • il filtro di Kalman esteso à ̈ configurato per aggiornare simultaneamente i pesi assegnati ai nuovi percettroni multistrato delle cascate causale e retrocausale di tutti i sistemi bidirezionali. The location device of claim 3, wherein: â € ¢ the retrocausal section of each bidirectional system includes a retrocausal cascade of k multilayer perceptrons to receive a sequence of k samples of the raw data with the first multilayer perceptron of the retrocausal cascade receiving the sample relative to the sampling instant recent n is the last multilayer perceptron of the retrocausal cascade that receives in input the sample relative to the least recent sampling instant n-k + 1, in which k and n are integers greater than zero and in which to each of the k multilayered perceptrons respective weights of the retrocausal cascade are assigned; â € ¢ each multilayer perceptron of the retrocausal cascade, except the first, receives in input, in addition to a respective sample of the raw data, also a vector indicative of an exit state of the previous multilayered perceptron in the retrocausal cascade; â € ¢ each multilayer perceptron of the retrocausal cascade provides an output indicative of its own output status on the basis of what it receives at the input and the respective assigned weights; â € ¢ the causal section of each bidirectional system includes a causal cascade of h-k multilayer perceptrons to receive a sequence of h-k samples of the raw data with the first multilayer perceptron of the causal cascade receiving the sample relative to the least sampling instant recent n-h is the last multilayer perceptron of the causal cascade that receives in input the sample relative to the most recent sampling instant n-k-1, in which h is an integer greater than k, and in which to each of the h-k multilayer perceptrons of the causal cascade are assigned respective weights; â € ¢ each multilayer perceptron of the causal cascade, except the first one, receives in input, in addition to a respective sample of the raw data, also a vector indicative of an exit state of the previous multilayered perceptron in the causal cascade; â € ¢ each multilayer perceptron of the causal cascade provides an output indicative of its own output status on the basis of what it receives at the input and the respective assigned weights; â € ¢ the causal section of each bidirectional system is configured to perform the following operations for each new sample of raw data: - discard the first multilayer perceptron of the causal cascade; - add a new multilayer perceptron at the end of the causal cascade; - assigning to said new multilayer perceiver weights identical to those of the immediately preceding multilayer perceptron in the causal cascade, in which said new multilayer perceptron provides a preliminary output which is obtained on the basis of the assigned weights identical to those of the immediately preceding multilayer perceptron in the causal cascade and is relative to the sampling instant n-k; - calculate an error indicative of the difference between the preliminary output provided by said new multilayer perceptron and the raw data sample relative to the same sampling instant n-k; and - update the weights assigned to said new multilayer perceptron on the basis of the calculated error, in which said new multilayer perceptron provides a definitive output which is obtained on the basis of the updated weights and is relative to the sampling instant n-k ; â € ¢ the retrocausal section of each bidirectional system is configured to perform the following operations for each new raw data sample: - discard the last multilayer perceptron of the retrocausal cascade; - add a new multilayer perceptron at the head of the retrocausal cascade; - assigning to said new multilayer perceptron weights identical to those of the immediately following multilayer perceptron in the retrocausal cascade, in which the multilayered perceptor at the tail of the retrocausal cascade provides a preliminary output relative to the n-k sampling instant; - calculate an error indicative of the difference between the preliminary output provided by the multilayer perceptron at the end of the retrocausal cascade and the raw data sample relative to the same sampling instant n-k; and - update the weights assigned to the new multilayer perceptor at the head of the retrocausal cascade on the basis of the calculated error, in which the multilayer perceptor at the end of the retrocausal cascade provides a definitive output after updating the weights assigned to the new multilayer perceptor at the head of the retrocausal cascade; â € ¢ for each new sample of raw data, each bidirectional system is configured to combine the final outputs of the causal and retrocausal sections, thus obtaining an overall filtered and interpolated data relating to the sampling instant n-k; and â € ¢ The extended Kalman filter is configured to simultaneously update the weights assigned to the new multilayer perceptrons of the causal and retrocausal cascades of all bidirectional systems. 5. Il dispositivo di localizzazione secondo una qualsiasi rivendicazione precedente, in cui: • il sensore inerziale à ̈ progettato per essere accoppiato ad una scarpa dell’operatore pedonale; • il sottosistema di stima degli errori di posizione e velocità à ̈ configurato per rilevare una condizione di stasi della scarpa dell’operatore pedonale ed una durata di detta condizione di stasi sulla base di dati filtrati ed interpolati forniti dal filtro non lineare di interpolazione ed indicativi di accelerazioni dell’operatore pedonale; • il sottosistema di stima degli errori di posizione e velocità comprende un filtro di Kalman esteso complementare configurato per filtrare ed estrapolare errori di posizione e di velocità sulla base di vettori di pseudomisure ottenute sulla base delle regole biometriche soggettive; ed • il sottosistema di stima degli errori di posizione e velocità à ̈ inoltre configurato per: - quando rileva una condizione di stasi della scarpa dell’operatore pedonale, fornire in ingresso al filtro di Kalman esteso complementare un vettore di pseudomisure che comprende una velocità estrapolata ed una differenza tra una posizione estrapolata ed una posizione filtrata in un piano di riferimento tangente alla superficie terrestre in modo tale da ottenere in uscita dal filtro di Kalman esteso complementare un errore filtrato; detta velocità estrapolata e dette posizioni estrapolata e filtrata essendo fornite dal sottosistema di integrazione delle equazioni del moto; e - correggere le stime preliminari di posizione, velocità e percorso sulla base dell’errore filtrato.The location device according to any preceding claim, wherein: â € ¢ the inertial sensor is designed to be coupled to a pedestrian operator's shoe; â € ¢ the subsystem for estimating position and speed errors is configured to detect a stasis condition of the pedestrian operator's shoe and a duration of said stasis condition on the basis of filtered and interpolated data provided by the non-linear filter of interpolation and indicators of accelerations of the pedestrian operator; â € ¢ the subsystem for estimating position and velocity errors includes a complementary extended Kalman filter configured to filter and extrapolate position and velocity errors on the basis of vectors of pseudomeasures obtained on the basis of subjective biometric rules; and â € ¢ the subsystem for estimating position and speed errors is also configured for: - when it detects a stasis condition of the pedestrian operator's shoe, input to the complementary extended Kalman filter a pseudomeasurement vector that includes an extrapolated speed and a difference between an extrapolated position and a filtered position in a tangent reference plane to the earth's surface in such a way as to obtain a filtered error at the output of the complementary extended Kalman filter; said extrapolated velocity and said extrapolated and filtered positions being provided by the subsystem of integration of the equations of motion; And - correct the preliminary estimates of position, speed and distance on the basis of the filtered error.
IT000641A 2012-12-14 2012-12-14 PEDESTRIAN NAVIGATION SYSTEM USING INERIAL DATA ARTIFICIAL NEURAL NETWORKS AND PSEUDOMISURE FOR ERROR CORRECTION ITRM20120641A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
IT000641A ITRM20120641A1 (en) 2012-12-14 2012-12-14 PEDESTRIAN NAVIGATION SYSTEM USING INERIAL DATA ARTIFICIAL NEURAL NETWORKS AND PSEUDOMISURE FOR ERROR CORRECTION

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT000641A ITRM20120641A1 (en) 2012-12-14 2012-12-14 PEDESTRIAN NAVIGATION SYSTEM USING INERIAL DATA ARTIFICIAL NEURAL NETWORKS AND PSEUDOMISURE FOR ERROR CORRECTION

Publications (1)

Publication Number Publication Date
ITRM20120641A1 true ITRM20120641A1 (en) 2014-06-15

Family

ID=48047597

Family Applications (1)

Application Number Title Priority Date Filing Date
IT000641A ITRM20120641A1 (en) 2012-12-14 2012-12-14 PEDESTRIAN NAVIGATION SYSTEM USING INERIAL DATA ARTIFICIAL NEURAL NETWORKS AND PSEUDOMISURE FOR ERROR CORRECTION

Country Status (1)

Country Link
IT (1) ITRM20120641A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3708953A1 (en) 2019-03-15 2020-09-16 Dune S.r.l. Inertial positioning and tracking method and system with innovative functionality for magnetometer auto-calibration and for angular drift compensation/correction

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000073815A1 (en) * 1999-05-28 2000-12-07 Fisher-Tortolano Systems Limited Navigation apparatus and method
US6305221B1 (en) * 1995-12-12 2001-10-23 Aeceleron Technologies, Llc Rotational sensor system
US20050033200A1 (en) * 2003-08-05 2005-02-10 Soehren Wayne A. Human motion identification and measurement system and method
US20110313716A1 (en) * 2010-02-19 2011-12-22 Itrack, Llc Intertial tracking system with provision for position correction

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6305221B1 (en) * 1995-12-12 2001-10-23 Aeceleron Technologies, Llc Rotational sensor system
WO2000073815A1 (en) * 1999-05-28 2000-12-07 Fisher-Tortolano Systems Limited Navigation apparatus and method
US20050033200A1 (en) * 2003-08-05 2005-02-10 Soehren Wayne A. Human motion identification and measurement system and method
US20110313716A1 (en) * 2010-02-19 2011-12-22 Itrack, Llc Intertial tracking system with provision for position correction

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
XIAOPING YUN ET AL: "Estimation of Human Foot Motion During Normal Walking Using Inertial and Magnetic Sensor Measurements", IEEE TRANSACTIONS ON INSTRUMENTATION AND MEASUREMENT, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 61, no. 7, 1 July 2012 (2012-07-01), pages 2059 - 2072, XP011445945, ISSN: 0018-9456, DOI: 10.1109/TIM.2011.2179830 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3708953A1 (en) 2019-03-15 2020-09-16 Dune S.r.l. Inertial positioning and tracking method and system with innovative functionality for magnetometer auto-calibration and for angular drift compensation/correction

Similar Documents

Publication Publication Date Title
US8224575B2 (en) Method and computer-readable storage medium with instructions for processing data in an internal navigation system
Liu et al. Two-filter smoothing for accurate INS/GPS land-vehicle navigation in urban centers
JP4789216B2 (en) Improved GPS cumulative delta distance processing method for navigation applications
US8260477B2 (en) Method and apparatus for tracking center of gravity of air vehicle
Wang et al. Land vehicle dynamics-aided inertial navigation
JP2010019703A (en) Positioning device for mobile body
Zhang et al. A hybrid intelligent algorithm DGP-MLP for GNSS/INS integration during GNSS outages
CN109000640A (en) Vehicle GNSS/INS Combinated navigation method based on discrete Grey Neural Network Model
US20150241245A1 (en) Orientation estimation utilizing a plurality of adaptive filters
KR101642286B1 (en) Heading Orientation Estimation Method Using Pedestrian Characteristics in Indoor Environment
CN104613965A (en) Stepping type pedestrian navigation method based on bidirectional filtering smoothing technology
JP2013117493A (en) Movement route estimation system, movement route estimation device and movement route estimation method
Lei et al. An adaptive navigation method for a small unmanned aerial rotorcraft under complex environment
ITRM20120641A1 (en) PEDESTRIAN NAVIGATION SYSTEM USING INERIAL DATA ARTIFICIAL NEURAL NETWORKS AND PSEUDOMISURE FOR ERROR CORRECTION
US11423782B2 (en) Traffic status estimation device, traffic status estimation method, and program recording medium
Ju et al. Pedestrian dead reckoning system using dual IMU to consider heel strike impact
ITTO20140050U1 (en) PEDESTRIAN NAVIGATION SYSTEM USING INERIAL DATA, ARTIFICIAL NEURAL NETWORKS AND PSEUDOMISURES FOR ERROR CORRECTION
Gabaglio Centralised Kalman filter for augmented GPS pedestrian navigation
Allak et al. Covariance pre-integration for delayed measurements in multi-sensor fusion
Dichev et al. A Kalman Filter-Based Algorithm for Measuring the Parameters of Moving Objects
Saadeddin et al. Optimization of intelligent-based approach for low-cost INS/GPS navigation system
JP6561744B2 (en) Arithmetic device, arithmetic method, arithmetic system, program, and measuring device
KR101257935B1 (en) Device for alignment of inertial navigation system using bias and navigation system thereof
CN116817905A (en) Wearable multi-MEMS quasi-real-time collaborative navigation system and method
Weddig et al. Performance evaluation of a three-dimensional cold atom interferometer based inertial navigation system