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 PDFInfo
- 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
Links
- 238000013528 artificial neural network Methods 0.000 title claims description 17
- 238000012937 correction Methods 0.000 title claims description 12
- 239000013598 vector Substances 0.000 claims description 43
- 230000001364 causal effect Effects 0.000 claims description 19
- 230000001133 acceleration Effects 0.000 claims description 18
- 238000005070 sampling Methods 0.000 claims description 14
- 230000002457 bidirectional effect Effects 0.000 claims description 13
- 230000002123 temporal effect Effects 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 9
- 238000001914 filtration Methods 0.000 claims description 7
- 230000000295 complement effect Effects 0.000 claims description 6
- 230000000306 recurrent effect Effects 0.000 claims description 6
- 230000033001 locomotion Effects 0.000 claims description 5
- 230000003111 delayed effect Effects 0.000 claims description 4
- 230000010354 integration Effects 0.000 claims description 4
- 239000011159 matrix material Substances 0.000 description 21
- 238000005259 measurement Methods 0.000 description 13
- 101001014572 Homo sapiens MARCKS-related protein Proteins 0.000 description 8
- 102100032514 MARCKS-related protein Human genes 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 6
- 239000002131 composite material Substances 0.000 description 6
- 101000986621 Homo sapiens ATP-binding cassette sub-family C member 6 Proteins 0.000 description 4
- 238000013459 approach Methods 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 238000007667 floating Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000005484 gravity Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 239000000654 additive Substances 0.000 description 2
- 230000000996 additive effect Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005021 gait Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 230000010287 polarization Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 210000000225 synapse Anatomy 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/10—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
- G01C21/12—Navigation; 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/16—Navigation; 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
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C22/00—Measuring distance traversed on the ground by vehicles, persons, animals or other moving solid bodies, e.g. using odometers, using pedometers
- G01C22/006—Pedometers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B5/00—Measuring for diagnostic purposes; Identification of persons
- A61B5/103—Detecting, measuring or recording devices for testing the shape, pattern, colour, size or movement of the body or parts thereof, for diagnostic purposes
- A61B5/11—Measuring 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)
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)
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)
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 |
-
2012
- 2012-12-14 IT IT000641A patent/ITRM20120641A1/en unknown
Patent Citations (4)
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)
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)
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 |