[go: up one dir, main page]

ITCS20110024A1 - DEVICE AND METHOD FOR THE ESTIMATE OF THE STATE OF A VEHICLE IN NAVIGATION - Google Patents

DEVICE AND METHOD FOR THE ESTIMATE OF THE STATE OF A VEHICLE IN NAVIGATION Download PDF

Info

Publication number
ITCS20110024A1
ITCS20110024A1 IT000024A ITCS20110024A ITCS20110024A1 IT CS20110024 A1 ITCS20110024 A1 IT CS20110024A1 IT 000024 A IT000024 A IT 000024A IT CS20110024 A ITCS20110024 A IT CS20110024A IT CS20110024 A1 ITCS20110024 A1 IT CS20110024A1
Authority
IT
Italy
Prior art keywords
vehicle
vector
time
vectors
state
Prior art date
Application number
IT000024A
Other languages
Italian (it)
Inventor
Igor Vukman
Original Assignee
Cgs Spa Compagnia Generale Per Lo Spazio
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 Cgs Spa Compagnia Generale Per Lo Spazio filed Critical Cgs Spa Compagnia Generale Per Lo Spazio
Priority to PCT/IB2011/053858 priority Critical patent/WO2012029052A1/en
Priority to EP11773849.2A priority patent/EP2612111B8/en
Priority to IT000024A priority patent/ITCS20110024A1/en
Publication of ITCS20110024A1 publication Critical patent/ITCS20110024A1/en
Priority to US13/784,222 priority patent/US8886366B2/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
    • G01C21/165Navigation; 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 combined with non-inertial navigation instruments
    • G01C21/1656Navigation; 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 combined with non-inertial navigation instruments with passive imaging devices, e.g. cameras

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Navigation (AREA)

Description

Titolo Dell’Invenzione Title of the invention

DISPOSITIVO E METODO PER LA STIMA DELLO STATO DI UN VEICOLO IN NAVIGAZIONE. DEVICE AND METHOD FOR ESTIMATING THE STATE OF A VEHICLE IN NAVIGATION.

Campo Tecnico Associato All’invenzione Technical field associated with the invention

L’invenzione riguarda un dispositivo e un metodo per il calcolo delle stime dello stato di un veicolo in navigazione che sorvola un certo terreno. The invention relates to a device and a method for calculating the estimates of the state of a vehicle underway that flies over a certain terrain.

L’applicazione principale, ma non esclusiva, considerata qui per il detto dispositivo e metodo è a bordo di veicoli “lander”, ovvero veicoli utilizzati per atterrare su superfici di corpi celesti, come Marte e la Luna, per scopi di esplorazione dello spazio. I veicoli considerati devono realizzare una manovra di discesa frenata che porta all’atterraggio. Questa manovra richiede inoltre, in particolare, di identificare al momento il punto di atterraggio, a priori non definito molto accuratamente, che non presenti ostacoli o pericoli per il veicolo stesso come per es. rocce o grossi massi o pendenze eccessive. The main, but not exclusive, application considered here for the said device and method is on board "lander" vehicles, ie vehicles used to land on surfaces of celestial bodies, such as Mars and the Moon, for space exploration purposes. The vehicles considered must perform a braked descent maneuver that leads to landing. This maneuver also requires, in particular, to identify at the moment the landing point, a priori not very accurately defined, which does not present obstacles or dangers for the vehicle itself such as for example. rocks or large boulders or excessive slopes.

Per realizzare una manovra di questo tipo, questi veicoli devono essere in grado di stimare il proprio stato autonomamente e in tempo reale. To carry out a maneuver of this type, these vehicles must be able to estimate their state autonomously and in real time.

Lo stato del veicolo comprende le seguenti componenti: posizione, velocità, assetto e velocità angolare. Vehicle status includes the following components: position, speed, attitude and angular velocity.

I Dispositivi di stima dello stato allo stato dell’arte, in questo contesto, sono tipicamente composti dai seguenti componenti: State-of-the-art state estimation devices, in this context, are typically composed of the following components:

• Una fotocamera che produce in uscita una sequenza di immagini prese in momenti successivi, che mostrano il terreno sorvolato • A camera that outputs a sequence of images taken in successive moments, showing the land flown over

• Una unità di misura inerziale (Inertial Measurement Unit, IMU), che produce le misure di velocità angolare e di accelerazione lineare, in un sistema di riferimento solidale con il velivolo • Un dispositivo di elaborazione immagini (Image Processing) che effettua ripetutamente le seguente operazioni: • An Inertial Measurement Unit (IMU), which produces measurements of angular velocity and linear acceleration, in a reference system integral with the aircraft • An Image Processing device that repeatedly performs the following operations:

- riceve in ingresso le immagini acquisite - receives the acquired images in input

- identifica sulle immagini alcuni punti che hanno la caratteristica di essere facilmente “tracciabili” nella sequenza di immagini - identifies some points on the images which have the characteristic of being easily “traceable” in the sequence of images

- effettua l’operazione di “tracciamento” di detti punti – in altre parole, ne determina l’apparente movimento - performs the "tracking" operation of said points - in other words, it determines their apparent movement

- fornisce in uscita una serie di “tracce”, che descrivono questo apparente movimento, in termini di sequenze di coordinate riga e colonna della matrice di pixel della camera (la definizione rigorosa dei dati in uscita di questo dispositivo viene fornita nella sezione 1.1.). • Un dispositivo detto “Filtro di Navigazione”, che produce le stime dello stato in funzione delle misure della IMU e dei dati in uscita del dispositivo di elaborazione immagini - outputs a series of "traces", which describe this apparent movement, in terms of row and column coordinate sequences of the pixel matrix of the camera (the rigorous definition of the output data of this device is provided in section 1.1.) . • A device called "Navigation Filter", which produces estimates of the state as a function of the measurements of the IMU and the output data of the image processing device

Lo schema rappresentato in Figura 1 riassume quanto detto sopra. The scheme represented in Figure 1 summarizes what has been said above.

I Dispositivi di Navigazione allo stato dell’arte tipicamente implementano, all’interno del Filtro di Navigazione, algoritmi di filtraggio ricorsivi, basati sull’esecuzione ripetuta di due passi di base; questi passi sono, essenzialmente, la propagazione dello stato stimato, e l’aggiornamento dello stato stimato in funzione degli ultimi dati in ingresso ricevuti. Tali algoritmi tipicamente presentano vari svantaggi (per es. la possibilità di divergenza dell’errore di stima, e un alto costo computazionale). State-of-the-art Navigation Devices typically implement recursive filtering algorithms within the Navigation Filter, based on the repeated execution of two basic steps; these steps are essentially the propagation of the estimated state, and the updating of the estimated state based on the latest incoming data received. Such algorithms typically have various disadvantages (eg. The possibility of divergence of the estimation error, and a high computational cost).

L’invenzione riguarda un Dispositivo di Navigazione innovativo, che ha lo stesso schema a blocchi (ad alto livello) dei dispositivi di questo tipo allo stato dell’arte, ma implementa -all’interno del dispositivo “Filtro di Navigazione” - un metodo di calcolo diverso, e più performante. The invention relates to an innovative Navigation Device, which has the same block diagram (at high level) as the devices of this type at the state of the art, but implements - within the "Navigation Filter" device - a method of different and more performing calculation.

In particolare, al posto di aggiornare iterativamente le stime dello stato, viene utilizzata un’espressione in forma chiusa, non ricorsiva, per calcolare esplicitamente le stime dello stato in modo efficiente, robusto ed accurato, utilizzando i dati in ingresso forniti dalla IMU e dal dispositivo di elaborazione delle immagini. Questo dispositivo non ha gli svantaggi presenti invece nei dispositivi allo stato dell’arte, e inoltre consente un significativo aumento delle prestazioni - in particolare, si ha un aumento significativo dell’accuratezza di stima, robustezza e un’importante riduzione del costo computazionale. In particular, instead of iteratively updating the state estimates, a closed, non-recursive expression is used to explicitly calculate the state estimates in an efficient, robust and accurate way, using the input data provided by the IMU and the image processing device. This device does not have the disadvantages present in state-of-the-art devices, and also allows a significant increase in performance - in particular, there is a significant increase in estimation accuracy, robustness and an important reduction in computational cost.

“Prior art” rilevante Relevant "Prior art"

I Filtri di Navigazione utilizzati all’interno dei Dispositivi di Navigazione allo stato dell’arte (nel contesto considerato) sono generalmente basati su un approccio che segue il concetto del Filtro di Kalman o di una delle sue varianti (come per es. il Filtro di Kalman Esteso). Il punto di partenza per definire gli algoritmi implementati su questi dispositivi sono tipicamente le seguenti due equazioni: The Navigation Filters used within the state-of-the-art Navigation Devices (in the context considered) are generally based on an approach that follows the concept of the Kalman Filter or one of its variants (such as the Extended Kalman). The starting point for defining the algorithms implemented on these devices are typically the following two equations:

• L’equazione di osservazione (o di misura), utilizzata per calcolare i valori misurati partendo dallo stato attuale del sistema (veicolo), • The observation (or measurement) equation, used to calculate the measured values starting from the current state of the system (vehicle),

• L’equazione di transizione (o propagazione) dello stato, utilizzata per calcolare lo stato successivo del veicolo partendo dallo stato attuale e dagli input al sistema. • The transition (or propagation) equation of the state, used to calculate the subsequent state of the vehicle starting from the current state and from the inputs to the system.

E’ importante tenere conto del fatto che, assieme allo stato stimato, gli algoritmi spesso calcolano anche l’incertezza associata allo stato stimato, tipicamente espressa tramite la matrice di covarianza dell’errore di stima. It is important to take into account the fact that, together with the estimated state, the algorithms often also calculate the uncertainty associated with the estimated state, typically expressed through the estimation error covariance matrix.

Il nucleo del processo di stima tipicamente consiste nell’esecuzione ripetuta di un ciclo con i seguenti due passi di base: The core of the estimation process typically consists of the repeated execution of a cycle with the following two basic steps:

• Predizione: qui lo stato stimato (e l’errore associato) vengono propagati utilizzando l’equazione di transizione • Prediction: here the estimated state (and the associated error) are propagated using the transition equation

• Aggiornamento: qui la stima dello stato ottenuta nel passo precedente viene aggiornata tenendo conto delle ultime misure; questo viene tipicamente fatto sommando, alla stima dello stato, una “correzione” che si ottiene moltiplicando l’”innovazione” (ovvero la differenza tra le misure effettive, e quelle che si sarebbero ottenute se lo stato stimato fosse stato quello “vero”) con un’opportuna matrice di “guadagno”. Un modo per ottenere questa matrice può essere la minimizzazione del valore atteso dell’errore quadratico della stima. • Update: here the state estimate obtained in the previous step is updated taking into account the latest measurements; this is typically done by adding, to the state estimate, a "correction" that is obtained by multiplying the "innovation" (ie the difference between the actual measures, and those that would have been obtained if the estimated state had been the "true" one) with an appropriate "gain" matrix. One way to obtain this matrix can be the minimization of the expected value of the squared error of the estimate.

A livello intuitivo, è possibile dire che i filtri utilizzati nei dispositivi allo stato dell’arte utilizzano un modo “indiretto” per ottenere lo stato del veicolo partendo dalle misure: in sostanza, invece di utilizzare un’espressione in forma chiusa che ricava direttamente lo stato del veicolo in funzione dell’insieme delle misure, gli algoritmi utilizzati migliorano iterativamente la stima dello stato, in funzione delle ultime misure ricevute. On an intuitive level, it is possible to say that the filters used in state-of-the-art devices use an "indirect" way to obtain the state of the vehicle starting from the measurements: in essence, instead of using a closed expression that directly derives the state of the vehicle as a function of the set of measures, the algorithms used iteratively improve the estimate of the state, according to the latest measures received.

D’altra parte, il Dispositivo (di Navigazione) che è oggetto di questa invenzione utilizza, all’interno del Filtro di Navigazione, un’espressione in forma chiusa per ricavare direttamente lo stato del veicolo. On the other hand, the (Navigation) Device that is the subject of this invention uses, within the Navigation Filter, an expression in closed form to directly derive the status of the vehicle.

DOCUMENTI SPECIFICI RIGUARDANTI LA “PRIOR ART” SPECIFIC DOCUMENTS CONCERNING THE "PRIOR ART"

• [D1] X. Sembély et al, “Mars Sample Return: Optimizing the Descent and Soft Landing for an Autonomous Martian Lander” • [D1] X. Sembély et al, "Mars Sample Return: Optimizing the Descent and Soft Landing for an Autonomous Martian Lander"

• [D2] “Navigation for Planetary Approach and Landing Final Report”, European Space Agency, Contract Reference: 15618/01/NL/FM, May 2006. • [D2] “Navigation for Planetary Approach and Landing Final Report”, European Space Agency, Contract Reference: 15618/01 / NL / FM, May 2006.

• [D3] WO 2008/024772 A1 (Univ Florida [US]; Kaiser Michael Kent [US], Gans Nicholas Raphael [US]) 28 February 2008 (2008-02-28) • [D3] WO 2008/024772 A1 (Univ Florida [US]; Kaiser Michael Kent [US], Gans Nicholas Raphael [US]) 28 February 2008 (2008-02-28)

• [D4] Li et al: "Vision-aided inertial navigation for pinpoint planetary landing", Aerospace Science and Technology, Elsevier Masson, FR, vol 11. no.6, 19 July 2007 (2007-07-19), pages 499-506, XP022158291, ISSN: 1270-9638, DOI: DOI: 10.1016/J.AST.2007.04.006 VALUTAZIONE DELLA “PRIOR ART” • [D4] Li et al: "Vision-aided inertial navigation for pinpoint planetary landing", Aerospace Science and Technology, Elsevier Masson, FR, vol 11. no.6, 19 July 2007 (2007-07-19), pages 499 -506, XP022158291, ISSN: 1270-9638, DOI: DOI: 10.1016 / J.AST. 2007.04.006 ASSESSMENT OF THE "PRIOR ART"

Tipicamente, alcuni dei svantaggi dell’utilizzo dei dispositivi allo stato dell’arte (come per es. i dispositivi descritti in [D1], [D2], [D3] e [D4]) sono i seguenti: Typically, some of the disadvantages of using state-of-the-art devices (such as the devices described in [D1], [D2], [D3] and [D4]) are as follows:

• Notevole importanza delle stime iniziali / preliminari (in alcuni casi, è fondamentale inviare all’inizio questi dati al filtro per avere un funzionamento corretto); • Considerable importance of the initial / preliminary estimates (in some cases, it is essential to send these data to the filter at the beginning for proper operation);

• Rischio di divergenza / instabilità del filtro, oppure di un errore di stima elevato; • Risk of divergence / instability of the filter, or of a high estimation error;

• Potenziale necessità di una lunga campagna di verifica per valutare l’effetto degli errori dei dati in ingresso sugli errori dei dati in uscita; • Potential need for a long verification campaign to evaluate the effect of input data errors on output data errors;

• Limitata capacità di stima della direzione verticale locale, ovvero del vettore gravità (nel sistema di riferimento utilizzato per esprimere le stime dello stato); • Limited ability to estimate the local vertical direction, or the gravity vector (in the reference system used to express the estimates of the state);

• Potenziale necessità di un lungo processo di calibrazione dei parametri del filtro; • Potential need for a long calibration process of the filter parameters;

• Potenziale necessità di una IMU con un’elevata accuratezza; • Potential need for an IMU with high accuracy;

• Elevato costo computazionale per l’esecuzione in tempo reale (in altre parole, l’hardware di calcolo del Filtro di Navigazione deve essere in grado di effettuare un numero elevato di operazioni al secondo). • High computational cost for real-time execution (in other words, the computing hardware of the Navigation Filter must be able to perform a large number of operations per second).

PROBLEMA TECNICO DA RISOLVERE, EFFETTI VANTAGGIOSI DELL’INVENZIONE TECHNICAL PROBLEM TO BE SOLVED, ADVANTAGEOUS EFFECTS OF THE INVENTION

L’invenzione considerata ha come oggetto un dispositivo innovativo per ottenere le stime dello stato del veicolo in tempo reale. The invention in question has as its object an innovative device for obtaining estimates of the state of the vehicle in real time.

Questo dispositivo non ha gli svantaggi presenti nei dispositivi allo stato dell’arte (elencati sopra). In particolare: This device does not have the disadvantages present in state-of-the-art devices (listed above). In particular:

• Non è necessario avere valori di inizializzazione; • It is not necessary to have initialization values;

• Il Filtro di Navigazione non può divergere; • The Navigation Filter cannot diverge;

• E’ molto semplice stimare gli errori sui dati in uscita in funzione degli errori sui dati in ingresso; • La direzione verticale locale può essere stimata facilmente (insieme alle stime dello stato); • Non ci sono parametri del filtro significativi oppure altri valori da calibrare tramite un lungo processo; • It is very simple to estimate the errors on the output data as a function of the errors on the input data; • Local vertical direction can be easily estimated (together with state estimates); • There are no significant filter parameters or other values to be calibrated through a long process;

• L’algoritmo del Filtro di Navigazione è robusto rispetto agli errori nelle misure della IMU; • The Navigation Filter algorithm is robust with respect to errors in IMU measurements;

• Il costo computazionale dell’algoritmo implementato nel filtro è ridotto - la riduzione prevista rispetto alle soluzioni allo stato del’arte è tipicamente di almeno 10 volte. • The computational cost of the algorithm implemented in the filter is reduced - the expected reduction compared to state-of-the-art solutions is typically at least 10 times.

Inoltre c’è anche un incremento significativo dell’accuratezza della stima dello stato, tipicamente di almeno 10 volte. In addition, there is also a significant increase in the accuracy of the state estimate, typically at least 10 times.

Utilizzando all’interno del dispositivo questo innovativo Filtro di Navigazione, sarà possibile ottenere un notevole incremento nelle prestazioni generali della funzione di stima dello stato, rispetto allo stato dell’arte attuale. Questo incremento di prestazioni avrà ripercussioni positive anche su altre funzioni e sistemi del lander. Questo potrebbe portare anche a riduzioni di costo e di budget ingegneristici a livello di sistema - per es., riduzione dei carichi computazionali, incremento dell’affidabilità della missione a causa di un incremento della robustezza, e riduzione della massa del propellente (per es. a causa dell’incremento dell’accuratezza della stima dello stato, con conseguente riduzione del bisogno di fare manovre correttive). Using this innovative Navigation Filter within the device, it will be possible to obtain a significant increase in the general performance of the status estimation function, compared to the current state of the art. This performance increase will also have positive repercussions on other functions and systems of the lander. This could also lead to cost and engineering budget reductions at the system level - e.g., reduced computational loads, increased mission reliability due to increased robustness, and reduced propellant mass (e.g. due to the increase in the accuracy of the state estimate, with a consequent reduction in the need for corrective maneuvers).

DESCRIZIONE DI UN MODO PER REALIZZARE L’INVENZIONE DESCRIPTION OF A WAY TO REALIZE THE INVENTION

ASPETTI INNOVATIVI PRINCIPALI DELL’INVENZIONE MAIN INNOVATIVE ASPECTS OF THE INVENTION

L’aspetto innovativo chiave dell’invenzione è il metodo di calcolo che viene utilizzato all’interno del Filtro di Navigazione per calcolare le stime dello stato. The key innovative aspect of the invention is the calculation method that is used within the Navigation Filter to calculate the state estimates.

E’ possibile dire che, a differenza dei sistemi allo stato dell’arte, dove un metodo di stima generale (per es. il Filtro di Kalman) viene adattato per il particolare caso considerato, qui il metodo di stima è stato costruito “partendo da zero”, altamente ottimizzato per il problema considerato; il metodo di stima utilizza solamente espressioni “in forma chiusa”, non-iterative, efficienti e robuste. It is possible to say that, unlike state-of-the-art systems, where a general estimation method (eg the Kalman Filter) is adapted for the particular case considered, here the estimation method has been constructed "starting from zero ”, highly optimized for the considered problem; the estimation method uses only “closed form”, non-iterative, efficient and robust expressions.

Intuitivamente, paragonato il problema di stima dello stato considerato qui con il problema della ricerca dei zeri di un polinomio cubico, l’approccio allo stato dell’arte corrisponde all’utilizzo di un metodo iterativo numerico, mentre l’approccio considerato con il metodo proposto corrisponde all’utilizzo di una soluzione “analitica” esplicita (per es. il metodo di Cardano). Intuitively, compared the state estimation problem considered here with the problem of finding the zeros of a cubic polynomial, the state of the art approach corresponds to the use of a numerical iterative method, while the approach considered with the proposed method it corresponds to the use of an explicit "analytical" solution (eg Cardano's method).

DESCRIZIONE DETTAGLIATA DELL’INVENZIONE DETAILED DESCRIPTION OF THE INVENTION

Questa sezione contiene tutte le informazioni necessarie per realizzare l’invenzione. This section contains all the information necessary to implement the invention.

La sezione è strutturata nel modo seguente: The section is structured as follows:

• Concetti e assunzioni di base: qui vengono fornite le definizioni dei concetti principali e le assunzioni utilizzati nella descrizione; • Basic concepts and assumptions: here are the definitions of the main concepts and the assumptions used in the description;

• Descrizione della funzione del Filtro: qui la funzione del Filtro di Navigazione viene definita in modo rigoroso, in termini di ingressi (input) ricevuti e uscite (output) prodotti; • Description of the function of the Filter: here the function of the Navigation Filter is strictly defined, in terms of inputs (inputs) received and outputs (outputs) produced;

• Definizione del sistema di riferimento per le stime dello stato: qui viene fornita la definizione del sistema di riferimento nel quale le stime dello stato (prodotte dal Filtro) vengono espresse; • Descrizione dell’algoritmo: qui l’algoritmo implementato nel Filtro (QuickNav) viene descritto, in termini delle operazioni che realizza; questa parte è suddivisa in: • Definition of the reference system for the state estimates: here we provide the definition of the reference system in which the state estimates (produced by the Filter) are expressed; • Description of the algorithm: here the algorithm implemented in the Filter (QuickNav) is described, in terms of the operations it performs; this part is divided into:

- Passo di pre-elaborazione: qui vengono descritte alcune elaborazioni iniziali; - Pre-processing step: some initial processing are described here;

- Passo centrale: qui viene descritto il modo nel quale le operazioni chiave vengono realizzate; - Central step: here the way in which the key operations are carried out is described;

- Passo di post-elaborazione: qui viene descritto il modo nel quale vengono calcolati i dati finali in uscita; - Post-processing step: here the way in which the final output data is calculated is described;

• Informazioni aggiuntive: qui vengono fornite alcune ulteriori informazioni riguardanti l’algoritmo. • Additional information: some additional information regarding the algorithm is provided here.

1. CONCETTI DI BASE E ASSUNZIONI 1. BASIC CONCEPTS AND ASSUMPTIONS

Per semplificare la notazione e le descrizioni, un asse dei tempi “continuo” (invece che “campionato”) verrà considerato. L’intervallo temporale per il quale il moto del veicolo (e i dati in ingresso e uscita) viene considerato viene indicato con I: To simplify the notation and descriptions, a “continuous” (rather than “sampled”) time axis will be considered. The time interval for which the motion of the vehicle (and the input and output data) is considered is indicated with I:

I = [t0,t1] (1) I = [t0, t1] (1)

Durante questo intervallo temporale, il veicolo realizzerà una certa traiettoria in una regione dello spazio, sopra una parte del terreno. During this time interval, the vehicle will make a certain trajectory in a region of space, over a part of the terrain.

Si assumerà che in questa regione dello spazio, il vettore di accelerazione di gravità sia costante. It will be assumed that in this region of space, the gravity acceleration vector is constant.

La sua direzione definisce il concetto di “verticale”. Its direction defines the concept of "vertical".

Qui un generico sistema di riferimento (Reference Frame, RF) verrà chiamato “Fisso” se è fisso rispetto al terreno, durante l’intervallo temporale I. Here a generic reference frame (RF) will be called "Fixed" if it is fixed with respect to the ground, during the time interval I.

Inoltre, si dirà che un RF possiede un “Asse Z Verticale” se il suo asse z è parallelo al vettore gravità, ma ha la direzione opposta (e quindi la gravità ha componenti x e y nulle, e una componente z negativa). Furthermore, an RF will be said to have a "Vertical Z Axis" if its z axis is parallel to the gravity vector, but has the opposite direction (and therefore gravity has zero x and y components, and a negative z component).

Qui si assume anche l’esistenza di un sistema di riferimento denominato “Body Reference Frame” (BRF), fisso rispetto al veicolo; anche la IMU e la fotocamera sono fissi rispetto al veicolo. Here we also assume the existence of a reference system called "Body Reference Frame" (BRF), fixed with respect to the vehicle; the IMU and the camera are also fixed relative to the vehicle.

Un vettore espresso nel BRF verrà indicato con un apice “B”. A carrier expressed in the BRF will be indicated with a superscript “B”.

Quando non c’è rischio di ambiguità, i vettori espressi in un RF “Fisso” non avranno apice. Definito un certo RF “Fisso”, esso può essere utilizzato per esprimere lo stato dinamico del veicolo. When there is no risk of ambiguity, vectors expressed in a "Fixed" RF will not have apex. Defined a certain “Fixed” RF, it can be used to express the dynamic state of the vehicle.

Per ogni istante t in I, lo stato dinamico del veicolo è definito dalle seguenti componenti: For each instant t in I, the dynamic state of the vehicle is defined by the following components:

• r(t): posizione del veicolo: coordinate dell’origine del BRF, espresse nel sistema di riferimento “Fisso” scelto; • r (t): vehicle position: coordinates of the origin of the BRF, expressed in the chosen "Fixed" reference system;

• v(t): velocità del veicolo; • v (t): vehicle speed;

• A(t): assetto del veicolo: per semplicità di notazione (ma senza perdere in generalità), si assumerà che l’assetto venga rappresentato tramite una matrice di coseni direttori. Di conseguenza, la matrice di assetto A contiene le componenti dei tre versori di BRF, nel sistema di riferimento “Fisso” scelto; • A (t): vehicle attitude: for simplicity of notation (but without losing generality), it will be assumed that the attitude is represented by a matrix of director cosines. Consequently, the attitude matrix A contains the components of the three BRF vector units, in the chosen “Fixed” reference system;

• ω(t): velocità angolare del veicolo; • ω (t): angular velocity of the vehicle;

L’accelerazione del veicolo, a(t), può essere suddivisa in due componenti: The vehicle acceleration, a (t), can be divided into two components:

• Accelerazione di gravità, g • Acceleration of gravity, g

• Accelerazione “misurabile” a bordo dalla IMU, am(t) = a(t) - g • Acceleration "measurable" on board by the IMU, am (t) = a (t) - g

Le misure effettuate dalla IMU sono le seguenti: The measurements made by the IMU are as follows:

• L’accelerazione misurabile, espressa nel BRF: a<B>• The measurable acceleration, expressed in the BRF: a <B>

m(t ) m (t)

• La velocità angolare, espressa nel BRF: ω<B>(t). • The angular velocity, expressed in the BRF: ω <B> (t).

Per indicare un metodo generico per propagare la matrice di assetto dall’istante temporale t=t' a t=t'', utilizzando ω(t) in t ∈ [t',t''] ⊂ I, verrà utilizzata la seguente espressione: To indicate a generic method to propagate the attitude matrix from the time instant t = t 'to t = t' ', using ω (t) in t ∈ [t', t ''] ⊂ I, the following expression will be used:

t' ' t ''

A(t'')<=>∫[ω(t)<×>]dt A( t' ) (2) t ' A (t '') <=> ∫ [ω (t) <×>] dt A (t ') (2) t'

Utilizzando queste definizioni, si ottengono anche le seguenti relazioni, per [t’,t’’] ⊂ I: Using these definitions, we also obtain the following relations, for [t ’, t’ ’] ⊂ I:

t' ' t ''

v(t'')<=>v(t')<+>∫am(t)dt<+>g(t''<−>t' ) v (t '') <=> v (t ') <+> ∫am (t) dt <+> g (t' '<−> t')

t ' t '

t' ' t t '' t

1 2 1 2

<r>(t'')<= r>(t')<+ v>(t')(t''<−>t')<+>∫ ∫<a m>(<τ>)d<τ>dt<+>2<g>(t''<−>t' ) <r> (t '') <= r> (t ') <+ v> (t') (t '' <−> t ') <+> ∫ ∫ <a m> (<τ>) d <τ > dt <+> 2 <g> (t '' <−> t ')

t ' t ' t 't'

(3) (3)

Un punto generale sulla superficie del corpo celeste considerato avrà il pedice “s”. A general point on the surface of the celestial body under consideration will have the subscript "s".

1.1 IL CONCETTO DI “TRACCIA” E CONCETTI ASSOCIATI 1.1 THE CONCEPT OF "TRACK" AND ASSOCIATED CONCEPTS

La figura 2 mostra il concetto di tracce di punti caratteristici del terreno; punti “particolari” vengono riconosciuti in immagini diverse (prese in instanti diversi) dal dispositivo di Elaborazione Immagini; questi punti vengono inseguiti, tracciati nel loro moto apparente sul piano dell’immagine. Questi punti tracciati, assieme ai dati della IMU, vengono utilizzati dal Filtro di Navigazione (vedi figura 2). Figure 2 shows the concept of traces of characteristic points of the terrain; “particular” points are recognized in different images (taken at different instants) by the Image Processing device; these points are tracked, traced in their apparent motion on the plane of the image. These plotted points, together with the IMU data, are used by the Navigation Filter (see figure 2).

Il concetto di “traccia” (di punti caratteristici del terreno) può essere definito in modo accurato nel seguente modo: The concept of "track" (of characteristic points of the terrain) can be accurately defined as follows:

• Durante il periodo temporale I, il dispositivo di Elaborazione Immagini ha effettuato, ripetutamente, i seguenti due tipi di operazioni: • During the time period I, the Image Processing device repeatedly carried out the following two types of operations:

a) Estrazione (o identificazione) dei punti caratteristici da tracciare; a) Extraction (or identification) of the characteristic points to be traced;

b) Tracciamento dei punti caratteristici ; b) Tracing of the characteristic points;

• La prima operazione consiste nell’identificazione, sulle immagini acquisite, di certi particolari punti del terreno (non precedentemente noti) che apparentemente hanno la caratteristica di essere facilmente tracciabili da un’immagine a quella successiva. L’insieme di tutti i punti (rgi) estratti durante l’intervallo temporale I verrà indicato con Rg: • The first operation consists in the identification, on the acquired images, of certain particular points of the terrain (not previously known) which apparently have the characteristic of being easily traceable from one image to the next. The set of all points (rgi) extracted during the time interval I will be indicated with Rg:

Rg= (rg1, … rgN) (4) • In generale, l’identificazione di un punto rgiè avvenuto in certo istante in I; questo istante, indicato con tAi(per l’i-esimo punto), indica l’”inizio” della traccia i-esima; Rg = (rg1, ... rgN) (4) • In general, the identification of a point rgi occurred at a certain instant in I; this instant, indicated with tAi (for the i-th point), indicates the "beginning" of the i-th track;

• In un certo istante tBi> tAi, il tracciamento del punto i-estimo finisce (per es. perché è uscito dall’area visibile); questo istante indica la “fine” della traccia i-esima; • At a certain instant tBi> tAi, the tracing of the i-estimate point ends (eg because it has gone out of the visible area); this instant indicates the "end" of the i-th track;

• La figura 3 mostra un esempio della disposizione temporale delle tracce: • Figure 3 shows an example of the temporal arrangement of the tracks:

• L’intervallo temporale (per una traccia generica i-esima) [tAi,tBi] verrà chiamato “Intervallo di Traccia” (questi intervalli sono, in generale, diversi per tracce diverse); • The time interval (for a generic i-th track) [tAi, tBi] will be called "Track Interval" (these intervals are, in general, different for different tracks);

• Durante questo intervallo temporale, il blocco di Elaborazione Immagini “insegue” il punto rgifornendo, per ogni t in [tAi, tBi], la sua posizione apparente nell’immagine, in termini di coordinate (riga e colonna) del pixel (per semplicità di notazione, qui è stato usato un asse temporale “continuo”, mentre in pratica sarà ovviamente “campionato” a una certa frequenza): • During this time interval, the Image Processing block "tracks" the point supplying, for each t in [tAi, tBi], its apparent position in the image, in terms of coordinates (row and column) of the pixel (for simplicity of notation, here a "continuous" time axis has been used, while in practice it will obviously be "sampled" at a certain frequency):

pi(t) = (rowi(t),columni(t)), ∀t∈[tAi,tBi] (5) pi (t) = (rowi (t), columni (t)), ∀t∈ [tAi, tBi] (5)

• La funzione pi(t) viene chiamata “traccia i-esima”; l’insieme di tutte le N tracce viene indicato con P: • The pi (t) function is called the “i-th trace”; the set of all N tracks is indicated with P:

P = (p1(⋅),p2(⋅), …pN(⋅)) (6) P = (p1 (⋅), p2 (⋅),… pN (⋅)) (6)

dove la notazione pi(⋅) indica una funzione del tempo (che ha come dominio [tAi,tBi]). where the notation pi (⋅) indicates a function of time (which has as its domain [tAi, tBi]).

Di conseguenza, si può dire che esistono tre “livelli di gerarchia” coinvolti nel concetto di “traccia”: Consequently, it can be said that there are three "hierarchy levels" involved in the concept of "trace":

• L’oggetto a livello più alto è l’insieme delle tracce P, che contiene N elementi (ciascun elemento è una traccia separata); • The object at the highest level is the set of tracks P, which contains N elements (each element is a separate track);

• A sua volta, ogni traccia è una funzione del tempo; di conseguenza può fornire un valore di pi(t ) per ogni t nel suo dominio, [tAi,tBi] (ovviamente, in pratica è impossibile produrre un numero infinito di valori; di conseguenza ogni traccia in pratica conterrà una sequenza di valori dei vettori pi, associati a istanti temporali spaziati uniformemente nell’intervallo [tAi,tBi] – per es. con un periodo di campionamento di 0.1 sec); • In turn, each track is a function of time; consequently it can provide a value of pi (t) for each t in its domain, [tAi, tBi] (obviously, in practice it is impossible to produce an infinite number of values; consequently each trace will in practice contain a sequence of vector values pi, associated with time instants uniformly spaced in the interval [tAi, tBi] - eg with a sampling period of 0.1 sec);

• Il livello più basso sono i vettori p, composti dai valori riga e colonna. • The lowest level are the vectors p, composed of the row and column values.

Strettamente associato a pi(t) è il concetto del versore KI(t ) (nb: la lettera "I" di "KI(t ) " è u riferimento all'indice "i") Similmente a pi(t), KI(t ) indica la direzione apparente del punto tracciato i-esimo, ma nello spazio tridimensionale di un RF “Fisso”, e non nel piano bidimensionale dell’immagine: Closely associated with pi (t) is the concept of the unit vector KI (t) (nb: the letter "I" of "KI (t)" is u reference to the index "i") Similarly to pi (t), KI ( t) indicates the apparent direction of the i-th traced point, but in the three-dimensional space of a "Fixed" RF, and not in the two-dimensional plane of the image:

r gi − r( t ) r gi - r (t)

KI(t)= , ∀t∈[ tAi, tBi] (7) |r gi − r( t) | KI (t) =, ∀t∈ [tAi, tBi] (7) | r gi - r (t) |

(nell’espressione sopra, è stato assunto che la posizione della camera può essere approssimata con la posizione dell’origine del BRF). La figura 4 mostra la relazione tra pi(t) e KI(t ) . (in the expression above, it was assumed that the position of the camera can be approximated with the position of the origin of the BRF). Figure 4 shows the relationship between pi (t) and KI (t).

E’ possibile trasformare facilmente pi(t) in KI(t ) , se l’assetto del velivolo è noto, come descritto nella sezione “Passo di pre-elaborazione”. La figura 5 mostra un esempio di come il versore KI(t ) “insegue” il punto sulla superficie rgimentre il velivolo si sposta da r(tAi) a r(tBi). It is possible to easily transform pi (t) into KI (t), if the attitude of the aircraft is known, as described in the "Pre-processing step" section. Figure 5 shows an example of how the versor KI (t) “tracks” the point on the surface rg as the aircraft moves from r (tAi) to r (tBi).

2. DESCRIZIONE DELLA FUNZIONE DEL DISPOSITIVO 2. DESCRIPTION OF THE FUNCTION OF THE DEVICE

Tenendo conto dei concetti introdotti finora, è possibile descrivere accuratamente la funzione del filtro di navigazione. Taking into account the concepts introduced so far, it is possible to accurately describe the function of the navigation filter.

(NB: qui il concetto di “profilo” di una variabile indica l’insieme di tutti i valori assunti dalla variabile durante un certo intervallo temporale; questo viene indicato inserendo la variabile tra le parentesi tonde - per es. la traiettoria dei veicolo durante l’intervallo temporale I è indicata con (r(t))I). (NB: here the concept of "profile" of a variable indicates the set of all the values assumed by the variable during a certain time interval; this is indicated by inserting the variable between the round brackets - for example the trajectory of the vehicle during the 'time interval I is indicated with (r (t)) I).

Il filtro riceve i seguenti dati in ingresso: The filter receives the following input data:

• Il profilo delle misure IMU nell’intervallo temporale I, ovvero (a<B>• The profile of the IMU measurements in the time interval I, or (a <B>

m( t))<B>m (t)) <B>

Ie (ωm( t))IIe (ωm (t)) I

• L’insieme della N tracce ottenute durante l’intervallo temporale I, ovvero P = (p1(⋅),p2(⋅), … pN(⋅)) • The set of N traces obtained during the time interval I, or P = (p1 (⋅), p2 (⋅), ... pN (⋅))

Utilizzando questi dati, il filtro deve produrre le stime del profilo dello stato del veicolo durante l’intervallo temporale I, ovvero: Using this data, the filter must produce estimates of the vehicle status profile during the time interval I, namely:

• (r(t))I• (r (t)) I

• (v(t))I• (v (t)) I

• (A(t))I• (A (t)) I

• (ω(t))I. • (ω (t)) I.

Ovviamente, è fondamentale specificare il sistema di riferimento nel quale queste stime verranno espresse; questo verrà fatto nella sezione successiva. Obviously, it is essential to specify the reference system in which these estimates will be expressed; this will be done in the next section.

3. DEFINIZIONE DEL SISTEMA DI RIFERIMENTO PER LE STIME DELLO STATO 3. DEFINITION OF THE REFERENCE SYSTEM FOR THE ESTIMATES OF THE STATE

Chiaramente, il sistema di riferimento nel quale le stime dello stato verranno espresse dovrà essere scelto in modo adeguato. Un criterio importante è che l’ RF scelto deve essere tale da consentire un efficiente utilizzo delle stime prodotte (da parte di altri dispositivi/algoritmi utilizzati a bordo del velivolo). Per soddisfare questa condizione, l’ RF scelto dovrà essere “Fisso”. Clearly, the reference system in which the state estimates will be expressed will have to be chosen appropriately. An important criterion is that the RF chosen must be such as to allow efficient use of the estimates produced (by other devices / algorithms used on board the aircraft). To meet this condition, the RF chosen must be "Fixed".

Inoltre, è fondamentale conoscere la direzione del vettore gravità g nell’ RF scelto. In alternativa, l’ RF scelto può semplicemente avere un Asse Z Verticale per definizione, in modo da avere g = (0,0,-|g|)<T>(qui l’apice T indica la trasposta). Questa è l’assunzione considerata nel seguito. Furthermore, it is essential to know the direction of the gravity vector g in the chosen RF. Alternatively, the chosen RF can simply have a Vertical Z Axis by definition, so as to have g = (0,0, - | g |) <T> (here the apex T indicates the transpose). This is the assumption considered below.

Di conseguenza, l’ RF scelto per le stime dello stato dovrà essere definito rispetto ad alcune caratteristiche “locali” della traiettoria del veicolo o dei punti osservati. Consequently, the RF chosen for the state estimates must be defined with respect to some "local" characteristics of the vehicle's trajectory or observed points.

Per definire questo RF, è utile introdurre un RF “Ausiliario”, ARF, definito nel seguente modo: • E’ un RF “Fisso”, To define this RF, it is useful to introduce an "Auxiliary" RF, ARF, defined as follows: • It is a "Fixed" RF,

• L’origine del RF coincide con la posizione del veicolo per t = t0• The origin of the RF coincides with the position of the vehicle for t = t0

• Gli assi del RF coincidono con gli assi del BRF per t = t0• The axes of the RF coincide with the axes of the BRF for t = t0

In alter parole, per t = t0ARF coincide con BRF. In other words, for t = t0ARF it coincides with BRF.

ARF ha le utili proprietà che, in esso, r(t0) = 0 e A(t0) = I (qui I indica la matrice identità 3x3), per definizione. ARF ha anche lo svantaggio di non avere, in generale, un Asse Z Verticale (a meno che il veicolo non abbia l’asse z “body” orientato verticalmente per t = t0). ARF has the useful properties that, in it, r (t0) = 0 and A (t0) = I (here I denotes the identity matrix 3x3), by definition. ARF also has the disadvantage of not having, in general, a Vertical Z Axis (unless the vehicle has the "body" z axis oriented vertically for t = t0).

D’altra parte, se si riescono a calcolare le componenti del vettore gravità g nel ARF, sarà semplice “ruotare” ARF per allineare l’asse z con la gravità. L’ RF risultante verrà chiamato RF “Finale” (FRF) e verrà utilizzato per esprimere le stime dello stato del veicolo calcolate dal Filtro di Navigazione. On the other hand, if you can calculate the components of the gravity vector g in the ARF, it will be easy to "rotate" the ARF to align the z axis with gravity. The resulting RF will be called "Final" RF (FRF) and will be used to express the estimates of the vehicle status calculated by the Navigation Filter.

I Sistemi di riferimento RF coinvolti sono schematicamente raffigurati nella figura 6 (per semplicità, nella figura è stato considerato il caso 2D) The RF reference systems involved are schematically depicted in figure 6 (for simplicity, the 2D case has been considered in the figure)

Il FRF, centrato (come anche ARF) nella posizione del veicolo per t = t0, ha l’Asse Z Verticale, ed inoltre è “Fisso”. Di conseguenza, si tratta di un RF adeguato per esprimere le stime dello stato. The FRF, centered (as well as ARF) in the position of the vehicle for t = t0, has the Vertical Z Axis, and is also "Fixed". Consequently, it is an adequate RF for expressing state estimates.

4. DESCRIZIONE DELL’ALGORITMO 4. DESCRIPTION OF THE ALGORITHM

L’algoritmo per il filtro di navigazione può essere visto, ad alto livello, come una sequenza di tre passi: The algorithm for the navigation filter can be seen, at a high level, as a sequence of three steps:

1) Passo di pre-elaborazione, necessario per alcuni calcoli iniziali da fare sui dati in ingresso; 2) Passo centrale: qui vengono realizzate le operazioni principali del filtro; questo essenzialmente consiste nella stima (nell’ ARF) della velocità dei veicolo (per t = t1) e della accelerazione di gravità, g. Questo viene fatto elaborando i dati IMU nell’ ARF e l’insieme di tracce elaborate; questi dati vengono forniti dal passo di pre-elaborazione; 1) Pre-processing step, necessary for some initial calculations to be made on the input data; 2) Central step: here the main operations of the filter are carried out; this essentially consists in the estimate (in the ARF) of the vehicle speed (for t = t1) and the acceleration of gravity, g. This is done by processing the IMU data in the ARF and the set of traces processed; this data is provided by the pre-processing step;

3) Passo di post-elaborazione, qui vengono utilizzati alcuni degli output del passo di preelaborazione, e poi combinati con gli output del “passo centrale”, per ottenere il profilo dello stato stimato nell’ FRF. 3) Post-processing step, here some of the outputs of the preprocessing step are used, and then combined with the outputs of the "central step", to obtain the profile of the state estimated in the FRF.

4.1 PASSO DI PRE-ELABORAZIONE 4.1 PRE-PROCESSING STEP

Con questo passo vengono preparati i dati in ingresso per esprimerli nella forma corretta – e in particolare per esprimerli nel sistema di riferimento “Ausiliario” (ARF). This step prepares the input data to express them in the correct form - and in particular to express them in the “Auxiliary” reference system (ARF).

4.1.1 CALCOLO DELL’ASSETTO, VELOCITA’ ANGOLARE E ACCELERAZIONE MISURATA NELL’ ARF 4.1.1 CALCULATION OF THE TRIM, ANGULAR SPEED AND ACCELERATION MEASURED IN THE ARF

La prima operazione effettuata ha come obiettivo il calcolo del profilo dell’assetto e della velocità angolare nell’ ARF, ovvero: The first operation carried out aims to calculate the attitude profile and angular velocity in the ARF, namely:

(A<A>(t))I, (ω<A>(t))I(8) partendo dal profilo delle misure di velocità angolare, ovvero (ω<B>(t))I. Si tratta di un’operazione piuttosto semplice, per il fatto che l’assetto iniziale in ARF è noto per definizione: (A <A> (t)) I, (ω <A> (t)) I (8) starting from the angular velocity measurement profile, that is (ω <B> (t)) I. This is a rather simple operation, due to the fact that the initial set-up in ARF is known by definition:

A<A>(t0) = I (9) A questo punto, per calcolare il profilo dell’assetto e della velocità angolare per t>t0, è possibile utilizzare le seguenti espressioni: A <A> (t0) = I (9) At this point, to calculate the attitude profile and angular velocity for t> t0, you can use the following expressions:

ω<A>(tn) = A<A>(tn) ω<B>(tn) ω <A> (tn) = A <A> (tn) ω <B> (tn)

A<A>(tn+1) = [ω<A>(tn)×] A<A>(tn) ∆t A <A> (tn + 1) = [ω <A> (tn) ×] A <A> (tn) ∆t

(10) (10)

dove l’asse temporale è stato discretizzato con un passo ∆t; per n ≥ 0: where the time axis has been discretized with a step ∆t; for n ≥ 0:

tn= t0+ n∆t (11) Una volta ottenuti i profili (A<A>(t))Ie (ω<A>(t))I, anche l’accelerazione misurata viene convertita dal BRF all’ARF: tn = t0 + n∆t (11) Once the profiles (A <A> (t)) Ie (ω <A> (t)) I have been obtained, the measured acceleration is also converted from the BRF to the ARF:

a<A>to <A>

m(t) =A<A>(t) a<B>m (t) = A <A> (t) a <B>

m( t ) (12) 4.1.2 ELABORAZIONE DELLE TRACCE PER CALCOLARE I VERSORI ASSOCIATI m (t) (12) 4.1.2 PROCESSING THE TRACKS TO CALCULATE THE ASSOCIATED VERSORS

L’obiettivo di questo calcolo è l’elaborazione dell’insieme P delle N tracce, P = (p1(⋅),p2(⋅), …pN(⋅)) (ottenuto dal dispositivo di elaborazione immagini), dove ogni traccia è una funzione del tempo pi(t) = (rowi(t), columni(t)), per ottenere un insieme TP di N tracce “trasformate”: The goal of this calculation is the processing of the set P of the N traces, P = (p1 (⋅), p2 (⋅), ... pN (⋅)) (obtained from the image processing device), where each trace is a function of time pi (t) = (rowi (t), columni (t)), to obtain a set TP of N "transformed" tracks:

TP =(K1(⋅),K2(⋅),... KN( ⋅ )) (13) dove ogni traccia “trasformata” KI(⋅ ) è semplicemente il versore che indica la direzione verso il punto tracciato i-esimo, durante l’”Intervallo di Traccia” [tAi,tBi], nell’ ARF. TP = (K1 (⋅), K2 (⋅), ... KN (⋅)) (13) where each "transformed" trace KI (⋅) is simply the vector indicating the direction towards the i-th plotted point, during the "Trace Interval" [tAi, tBi], in the ARF.

Di conseguenza, P può essere trasformato in TP calcolando – per ogni traccia 1<i<N, e per ogni istante t∈[tAi,tBi] – il valore di KI(t ) utilizzando il valore di pi(t). Consequently, P can be transformed into TP by calculating - for each trace 1 <i <N, and for each instant t∈ [tAi, tBi] - the value of KI (t) using the value of pi (t).

Il calcolo di KI(t ) utilizzando pi(t) può essere effettuato nel modo seguente: The calculation of KI (t) using pi (t) can be done as follows:

1) Si calcola il di valore di KI(t ) nell’ RF della fotocamera (CRF); questo valore verrà indicato con KRFCI(t ) . Si assume di avere un CRF con l’asse z passante attraverso l’asse ottico della fotocamera, e l’origine sul piano focale della fotocamera. Di conseguenza, KRFCI(t ) può essere calcolato utilizzando un modello della fotocamera, che associa le coordinate dei pixel a direzioni nello spazio. Per esempio, se si considera un semplice modello “pinhole”, allora KRFCI(t ) può essere calcolato semplicemente con: 1) The value of KI (t) in the RF of the camera (CRF) is calculated; this value will be indicated with KRFCI (t). It is assumed to have a CRF with the z axis passing through the optical axis of the camera, and the origin on the focal plane of the camera. Consequently, KRFCI (t) can be calculated using a camera model, which maps pixel coordinates to directions in space. For example, if we consider a simple "pinhole" model, then KRFCI (t) can be calculated simply with:

K ( ) =<1>(<~>(column ( )),<~>(row ( )), − T K () = <1> (<~> (column ()), <~> (row ()), - T

RFCI t x i t y i t 1 ) (14)<~>x2(columni(t))+<~>y 2(row i( t)) 1 RFCI t x i t y i t 1) (14) <~> x2 (columni (t)) + <~> y 2 (row i (t)) 1

dove : where is it :

~<column>FOV FOV y x(column)=(-1+2 ) tan(x ) , ~ y(row)=(1- 2<row>) tan() (15) ~ <column> FOV FOV y x (column) = (- 1 + 2) tan (x), ~ y (row) = (1- 2 <row>) tan () (15)

N column 2 N row 2 e Nrow, Ncolumn, FOVx, FOVysono, rispettivamente, il numero delle righe e delle colonne dell’immagine, e il campo di vista lungo gli assi x e y della fotocamera. N column 2 N row 2 and Nrow, Ncolumn, FOVx, FOV are, respectively, the number of rows and columns of the image, and the field of view along the x and y axes of the camera.

2) Dato che la posizione e l’orientazione della camera rispetto al veicolo sono note, è possibile trasformare il versore KRFCI(t ) in KRFBI(t ) . 2) Given that the position and orientation of the chamber with respect to the vehicle are known, it is possible to transform the KRFCI (t) versor into KRFBI (t).

3) Infine, usando l’informazione dell’assetto del veicolo in ARF, KRFBI(t ) viene trasformato in KI(t ) . 3) Finally, using the vehicle attitude information in ARF, KRFBI (t) is transformed into KI (t).

Per riassumere, le uscite di questo passo di pre-elaborazione sono le seguenti: To summarize, the outputs of this preprocessing step are as follows:

<A A>• I profili (A (t))I, (ω (t))Ie (a<A><A A> • The profiles (A (t)) I, (ω (t)) Ie (a <A>

m( t))I; m (t)) I;

• Le tracce TP =(K1(⋅),K2(⋅),... KN( ⋅ )) ; ogni traccia contiene il profilo (ovvero i valori nel tempo) del versore KI(t ) , che “punta” nella direzione del punto i-esimo “inseguito” sulla superficie r<A>Questi vettori sono espressi nel ARF. • Tracks TP = (K1 (⋅), K2 (⋅), ... KN (⋅)); each trace contains the profile (ie the values over time) of the unit vector KI (t), which “points” in the direction of the i-th “pursued” point on the surface r <A> These vectors are expressed in the ARF.

4.2 PASSO CENTRALE 4.2 CENTRAL STEP

I dati del passo di pre-elaborazione utilizzati qui sono i seguenti: The preprocessing step data used here are as follows:

• Il profilo di accelerazione misurata, (a<A>• The measured acceleration profile, (a <A>

m( t))I; m (t)) I;

• L’insieme TP, contenente le tracce dei punti, espressi come versori nell’ ARF. • The TP set, containing the traces of the points, expressed as vector units in the ARF.

Inoltre, viene utilizzato anche il valore della norma dell’accelerazione di gravità (nella regione dello spazio considerato), gS.; si considera questo dato come noto. In addition, the value of the norm of the acceleration of gravity (in the region of the space considered), gS, is also used; this data is considered as known.

Utilizzando queste informazioni, verranno calcolati i seguenti valori: Using this information, the following values will be calculated:

<A>• Il vettore di accelerazione della gravita, nell’ ARF: g <A> • The acceleration vector of gravity, in the ARF: g

• La velocità del veicolo per t = t1, in ARF: v<A>(t1) • The vehicle speed for t = t1, in ARF: v <A> (t1)

D’ora in poi, nel resto della descrizione di questa parte dell’algoritmo, l’apice “A” verrà omesso, dato che tutti i vettori verranno espressi nell’ ARF. From now on, in the rest of the description of this part of the algorithm, the superscript "A" will be omitted, since all vectors will be expressed in the ARF.

La stima di g e v(t1) inizia scegliendo una delle N tracce nell’insieme TP. L’indice della generica traccia scelta verrà qui indicato con i*∈[1,…N]. Utilizzando la traccia i*-esima come punto di partenza, si calcolerà una singola stima di g e v(t1). The estimation of g and v (t1) begins by choosing one of the N traces in the set TP. The index of the generic track chosen will be indicated here with i * ∈ [1, ... N]. Using the i * -th plot as a starting point, a single estimate of g and v (t1) will be computed.

(NB: è importante notare come, durante il processo di calcolo di g e v(t1), verranno utilizzate anche altre tracce in TP , assieme alla traccia i*. E’ possibile tuttavia vedere la traccia i*-esima come quella principale, ovvero la “pivot”). (NB: it is important to note that, during the calculation process of g and v (t1), other tracks in TP will also be used, together with track i *. However, it is possible to see track i * -th as the main one, that is the "Pivot").

La traccia i*-esima, KI(t ) , inizia all’istante tAi*e finisce a tBi*. L’istante temporale centrato tra queste due verrà indicato con tMi*: The track i * -th, KI (t), begins at instant tAi * and ends at tBi *. The time instant centered between these two will be indicated with tMi *:

t Mi * =tAi* t Bi * (16) t Mi * = tAi * t Bi * (16)

2 2

La differenza tra questi due istanti temporali verrà indicata con T: The difference between these two time instants will be indicated with T:

Ti*= tBi*- tMi*= tMi*- tAi*. (17) In generale, è possibile considerare anche un algoritmo dove l’istante temporale tMi*non è esattamente centrato tra tAi*e tBi*; questo può comportare un piccolo incremento nell’accuratezza; per ottenere una descrizione più compatta, questo caso più generale non verrà considerato qui. Ti * = tBi * - tMi * = tMi * - tAi *. (17) In general, it is also possible to consider an algorithm where the time instant tMi * is not exactly centered between tAi * and tBi *; this can lead to a small increase in accuracy; to obtain a more compact description, this more general case will not be considered here.

E’ importante tenere conto del fatto che, a questo stadio, le coordinate del punto del terreno rgi*non sono note al Filtro di Navigazione. It is important to take into account that, at this stage, the coordinates of the ground point rgi * are not known to the Navigation Filter.

A questo punto si introduce la seguente notazione semplificativa, per le posizioni e le velocità agli istanti temporali tAi*, tMi*e tBi*: At this point the following simplifying notation is introduced, for the positions and speeds at the time instants tAi *, tMi * and tBi *:

rA= r(tAi*), rM= r(tMi*), rB= r(tBi*), vA= v(tA), vM= v(tM) (18) rA = r (tAi *), rM = r (tMi *), rB = r (tBi *), vA = v (tA), vM = v (tM) (18)

Inoltre si definiscono le differenze delle posizioni: In addition, the differences in positions are defined:

DELTA_R = ∆rA= rM- rA, ∆rB= rB- rM(19) DELTA_R = ∆rA = rM- rA, ∆rB = rB- rM (19)

Queste differenze sono chiaramente legate ai valori di vA, vB, g e dell’accelerazione misurata amattraverso le seguenti espressioni (negli integrali, il pedice “i*” è stato omesso dal limite temporale, per semplificare la notazione): These differences are clearly related to the values of vA, vB, g and the acceleration measured by the following expressions (in the integrals, the subscript "i *" has been omitted from the time limit, to simplify the notation):

t M t t M t

<∆rA = vA>T<+>∫ ∫<a m>(<τ>)d<τ>dt<+ 1>2 <∆rA = vA> T <+> ∫ ∫ <a m> (<τ>) d <τ> dt <+ 1> 2

2<g>T 2 <g> T

t A t A t A t A

t B t t B t

<∆rB = vB>T<+ m>(<τ>)d<τ>dt<1><∆rB = vB> T <+ m> (<τ>) d <τ> dt <1>

2 T 2 2 T 2

t ∫ M t ∫<a g>t ∫ M t ∫ <a g>

M M.

(20) (20)

Inoltre, tenendo conto che: Furthermore, taking into account that:

t M t M

vM<=>vA<+>∫am(t )dt<+>g T (21) t A vM <=> vA <+> ∫am (t) dt <+> g T (21) t A

si ha : we have:

∆r 2 ∆r 2

A= vAT h<II>A = vAT h <II>

AM+<1>AM + <1>

2 g T 2 g T

∆r 3 ∆r 3

B= vATi*+h I B = vATi * + h I

AMTi*+h II AMTi * + h II

MB 2 MB 2

2 g T 2 g T

(22) (22)

dove ∆rAe ∆rBsono stati espressi in funzione di vA, g e dei seguenti valori che indicano gli integrali dell’accelerazione misurata: where ∆rA and ∆rB were expressed as a function of vA, g and the following values that indicate the integrals of the measured acceleration:

t M t M t t B t t M t M t t B t

h I h I

AM<=>a m(t) dt ,<h>II II AM <=> a m (t) dt, <h> II II

<AM = τ>dt<, hMB =><AM = τ> dt <, hMB =>

t ∫ A ∫ ∫<a>m<(τ )>d ∫ ∫<a>m<(τ )d τ dt (23)>t A t A t M t M t ∫ A ∫ ∫ <a> m <(τ)> d ∫ ∫ <a> m <(τ) d τ dt (23)> t A t A t M t M

E’ importante tenere conto del fatto che h<I>It is important to take into account the fact that h <I>

AM, h<I>AM, h <I>

A<I>A <I>

Me h<II>Me h <II>

MBpossono essere calcolati dal filtro, dato che il profilo di am(t) è noto. MB can be calculated by the filter, since the profile of am (t) is known.

A questo punto, è utile suddividere le differenze delle posizioni in una parte “posizione” e una parte “lunghezza”: At this point, it is useful to divide the differences in positions into a "position" part and a "length" part:

DELTA_R = ∆rA= lAUA , ∆rB= lBUB (24) DELTA_R = ∆rA = lAUA, ∆rB = lBUB (24)

dove UA e UB sono due versori. where UA and UB are two versors.

I valori di UA e UB possono essere calcolati dal filtro utilizzando le tracce disponibili. La procedura per farlo verrà adesso descritta, nel caso di un vesore U generico, che indica lo spostamento tra due istanti temporali T1 e T2, ovvero per il quale si ha che r(T2) - r(T1) = lGU, dove lGè uno scalare. Per UA e UB la procedura è analoga. The values of UA and UB can be calculated by the filter using the available traces. The procedure to do this will now be described, in the case of a generic value U, which indicates the displacement between two temporal instants T1 and T2, i.e. for which we have that r (T2) - r (T1) = lGU, where lG is one climb. For UA and UB the procedure is similar.

Considerando il piano definito dai punti r1= r(T1), r2= r(T2) e rgi*, si ha che i seguenti versori sono tutti paralleli a questo piano: Considering the plane defined by the points r1 = r (T1), r2 = r (T2) and rgi *, we have that the following vector units are all parallel to this plane:

• U (il versore da r1a r2); • U (the unit vector from r1 to r2);

• KI 1 (il versore da r1a rgi*); • KI 1 (the unit vector from r1 to rgi *);

• KI 2 (il versore da r2a rgi*) • KI 2 (the versor from r2 to rgi *)

Il triangolo di detti versori con i vertici r1, r2e rgi*è mostrato nella figura 7. The triangle of said versors with the vertices r1, r2 and rgi * is shown in figure 7.

Di conseguenza, il versore: Consequently, the versor:

KI1 × KI 2KCI= (25) KI1 × KI 2KCI = (25)

| KI1 × KI2 | | KI1 × KI2 |

è ortogonale a U , ovvero KCI ⋅U = 0 (qui “⋅” indica il prodotto scalare). it is orthogonal to U, that is KCI ⋅U = 0 (here “⋅” indicates the scalar product).

Se si assume che, invece di avere una singola traccia da t = T1 a t = T2, che insegue un punto del terreno rgi*, ce ne sono più di una, è possibile definire più triangoli analoghi a questo. Di conseguenza, è possibile pure definire più versori KCI , tutti con la proprietà di ortogonalità rispetto a U . If we assume that, instead of having a single track from t = T1 to t = T2, which follows a point of the terrain rgi *, there are more than one, it is possible to define more triangles analogous to this one. Consequently, it is also possible to define several KCI vector units, all with the property of orthogonality with respect to U.

Per esempio, considerando tre tracce, che seguono rispettivamente i punti del terreno rgi,rgi’e rgi’’, si ottiene la situazione mostrata nella figura 8. For example, considering three traces, which respectively follow the points of the ground rgi, rgi and rgi '', we obtain the situation shown in figure 8.

Da qui è possibile facilmente vedere che b<ˆ>⋅U = 0 , b<ˆ>'⋅U = 0 e b<ˆ>''⋅U = 0. Di conseguenza, è possibile calcolare U cercando il vettore ortogonale a b<ˆ>, b<ˆ>' e b<ˆ>' ' (se non ci fossero errori nei dati in ingresso, sarebbe sufficiente fare il prodotto vettoriale tra due vettori b<ˆ>di questo tipo). Di conseguenza, è possibile costruire facilmente un metodo per stimare U (anche in presenza di errori) partendo dalla traccia “pivot” KI(t ) (che inizia a T1 e finisce a T2). Utilizzando questa From here it is easy to see that b <ˆ> ⋅U = 0, b <ˆ> '⋅U = 0 and b <ˆ>' '⋅U = 0. Consequently, it is possible to calculate U by looking for the orthogonal vector a b <ˆ >, b <ˆ> 'and b <ˆ>' '(if there were no errors in the input data, it would be sufficient to make the vector product between two vectors b <ˆ> of this type). Consequently, it is possible to easily construct a method for estimating U (even in the presence of errors) starting from the “pivot” trace KI (t) (which starts at T1 and ends at T2). Using this

traccia, si ottiene un triangolo e un vettore b<ˆ>. Poi, si aggiungono altre tracce da TP =(K1(⋅),K2(⋅),... KN( ⋅ )) , per ottenere più triangoli e versori b<ˆ>. trace, we obtain a triangle and a vector b <ˆ>. Then, we add other traces from TP = (K1 (⋅), K2 (⋅), ... KN (⋅)), to obtain more triangles and vector units b <ˆ>.

Dato che il versore U indica la “direzione del moto” tra t = T1 e t = T2, ovvero: Since the vector U indicates the "direction of motion" between t = T1 and t = T2, that is:

r(T2) − r( T1 )UA= (26) |r(T2) − r( T1) | r (T2) - r (T1) UA = (26) | r (T2) - r (T1) |

le tracce di TP che possono essere aggiunte sono solamente quelle che iniziano prima di T1 e finiscono dopo T2. Questo è dovuto al fatto che, per definire un triangolo (e il versore corrispondente b<ˆ>) partendo da una traccia KI(t ) , è necessario poter valutare questa traccia per gli istanti temporali t = T1 e t = T2. La figura 9 mostra un esempio di soluzione per quanto riguarda l’identificazione di tali tracce “ammissibili”. the TP tracks that can be added are only those starting before T1 and ending after T2. This is due to the fact that, to define a triangle (and the corresponding versor b <ˆ>) starting from a trace KI (t), it is necessary to be able to evaluate this trace for the time instants t = T1 and t = T2. Figure 9 shows an example of a solution regarding the identification of such "admissible" traces.

Il metodo complessivo è di conseguenza il seguente: The overall method is therefore as follows:

1) Partendo dall’insieme TP, se ne identifica un sottoinsieme Q*=(K1(⋅),K2(⋅),... KM( ⋅ )) , composto dalle tracce che iniziano prima di T1 e finiscono dopo T2 (è possibile modificare facilmente l’algoritmo per tenere conto anche del caso quando il numero di tracce identificate in questo modo, M, è troppo basso per una stima accurata – per esempio, permettendo una modifica di T1 e T2;). 1) Starting from the set TP, a subset Q * = (K1 (⋅), K2 (⋅), ... KM (⋅)) is identified, composed of the traces starting before T1 and ending after T2 (it is You can easily modify the algorithm to take into account even the case when the number of traces identified in this way, M, is too low for an accurate estimate - for example, allowing a modification of T1 and T2;).

2) Per ogni traccia KI(⋅ ) di Q* (con I∈[1,...M]), ne vengono valutati i valori per t = T1*e t = T2: 2) For each trace KI (⋅) of Q * (with I∈ [1, ... M]), its values are evaluated for t = T1 * and t = T2:

KI1 = KI( T1 ) , KI2 =KI( T2 ) (27) KI1 = KI (T1), KI2 = KI (T2) (27)

3) Poi, si costruisce il versore ortogonale ad entrambi: 3) Then, the vector unit orthogonal to both is constructed:

KKI1 × KI 2CI= (28) KKI1 × KI 2CI = (28)

| KI1 × KI2 | | KI1 × KI2 |

4) A questo punto, si ha un insieme di M versori, E =(KC1,KC2,... KCM ) . Se non ci fossero errori nella determinazione delle tracce, tutti questi versori sarebbero ortogonali a U . In pratica, in presenza di errori, è utile trovare U cercando il versore “più ortogonale” a tutti gli (KCI ) . Qui, questo viene fatto minimizzando la funzione: 4) At this point, we have a set of M versors, E = (KC1, KC2, ... KCM). If there were no errors in the determination of the traces, all these vector units would be orthogonal to U. In practice, in the presence of errors, it is useful to find U by looking for the “most orthogonal” versor to all (KCI). Here, this is done by minimizing the function:

M M.

J(u)= ∑ I = 1( KCI ⋅ u)<2>(29) J (u) = ∑ I = 1 (KCI ⋅ u) <2> (29)

con il vincolo: with the constraint:

| u | = 1 (30) Per minimizzare la funzione, è necessario trovare i punti, sulla sfera unitaria, per i quali il gradiente di J(u), ∇J(u), è perpendicolare al piano tangente alla sfera. Di conseguenza ∇J(u) dovrà essere parallelo a u, ovvero: | u | = 1 (30) To minimize the function, it is necessary to find the points, on the unit sphere, for which the gradient of J (u), ∇J (u), is perpendicular to the plane tangent to the sphere. Consequently ∇J (u) must be parallel to u, that is:

∇J(u) = λ u (31) dove λ è uno scalare. ∇J (u) = λ u (31) where λ is a scalar.

L’espressione per il gradiente di J è : The expression for the gradient of J is:

∇J(u) = W u (32) dove: ∇J (u) = W u (32) where:

�w1⋅w1 w1⋅w2 w1 ⋅ w 3� �w1⋅w1 w1⋅w2 w1 ⋅ w 3�

W = 2� � W = 2� �

�w2⋅w1 w2⋅w2 w2 ⋅ w 3� (33) ��w3⋅w1 w3⋅w2 w3 ⋅ w 3�� �w2⋅w1 w2⋅w2 w2 ⋅ w 3� (33) ��w3⋅w1 w3⋅w2 w3 ⋅ w 3��

dove w1, w2and w3sono tre vettori con M componenti, ottenuti, rispettivamente, dalle componenti x, y e z dei vettori KCI : where w1, w2 and w3 are three vectors with M components, obtained, respectively, from the x, y and z components of the vectors KCI:

w1=(KC1x,KC2x,... KCMx) T w1 = (KC1x, KC2x, ... KCMx) T

w2=(KC1y,KC2y,... KCMy) T w2 = (KC1y, KC2y, ... KCMy) T

w3=(KC1z,KC2z,... KCM T w3 = (KC1z, KC2z, ... KCM T

z) z)

(34) (34)

Il vettore U dovrà quindi soddisfare la condizione: The vector U must therefore satisfy the condition:

WU = λU (35) per un certo λ. WU = λU (35) for a certain λ.

Di conseguenza, U viene trovato tra gli autovettori di W. Consequently, U is found among the eigenvectors of W.

Per calcolare UA , si utilizza KIA (il versore da rAa rgi*) al posto di K 1 , e KIB (il versore da rBa rgi*) al posto di K 2. To calculate UA, we use KIA (the versor from rAa to rgi *) instead of K 1, and KIB (the versor from rBa to rgi *) instead of K 2.

Per calcolare UB , si utilizza KIM al posto di K 1 , e KIB (il versore da rBa rgi*) al posto di K 2. Questa stima ai minimi quadrati di U può essere espansa (per es. usando la nota tecnica del Random Sample Consensus, o RANSAC) per rendere il metodo di stima più robusto a tracce “outlier” (ovvero tracce “spurie”). To calculate UB, use KIM instead of K 1, and KIB (the versor from rBa to rgi *) instead of K 2. This least squares estimate of U can be expanded (e.g. using the Random Sample Tech Note Consensus, or RANSAC) to make the estimation method more robust to “outlier” traces (ie “spurious” traces).

E’ importante tenere conto del fatto che la scelta dell’insieme Q* dipende dai valori di T1 e T2 i quali, a loro volta, dipendono dalla scelta della traccia “pivot” i*. It is important to take into account the fact that the choice of the set Q * depends on the values of T1 and T2 which, in turn, depend on the choice of the "pivot" track i *.

A questo punto, assumendo di aver calcolato le stime di UA e UB , si considerano due triangoli TRA e TRB (in generale non coplanari), con, rispettivamente, i seguenti vertici: At this point, assuming we have calculated the estimates of UA and UB, we consider two triangles TRA and TRB (generally non-coplanar), with the following vertices respectively:

• rgi*, rMe rA• rgi *, rMe rA

• rgi*, rBe rM• rgi *, rBe rM

I due triangoli TRA e TRB ed alcuni vettori associati, sono mostrati nella figura 10: The two triangles TRA and TRB and some associated vectors are shown in figure 10:

I due triangoli hanno un lato comune, lungo l* (il valore di l* non è noto a questo stadio). The two triangles have a common side, along l * (the value of l * is not known at this stage).

I valori di ALPHA_A, ALPHA_B, BETA_A e BETA_B si ottengono calcolando gli angoli tra alcuni versori noti: The values of ALPHA_A, ALPHA_B, BETA_A and BETA_B are obtained by calculating the angles between some known vector units:

ALPHA_A = arccos( UA ⋅ KIA ), ALPHA_B = arccos( -UB ⋅ KIB ) BETA_A = arccos( KIA⋅ KIM ), BETA_B = arccos( KIB ⋅ KIM ), ALPHA_A = arccos (UA ⋅ KIA), ALPHA_B = arccos (-UB ⋅ KIB) BETA_A = arccos (KIA⋅ KIM), BETA_B = arccos (KIB ⋅ KIM),

(36) (36)

Utilizzando il teorema dei seni, si hanno le seguenti espressioni: Using the sine theorem, we have the following expressions:

sin(ALPHA_ A ) = sin(BETA_ A ) , sin(ALPHA_ B ) =sin(BETA_ B ) (37) l * lAl * lBsin (ALPHA_ A) = sin (BETA_ A), sin (ALPHA_ B) = sin (BETA_ B) (37) l * lAl * lB

Queste espressioni vengono utilizzate per eliminare l* e ottenere un espressione per il rapporto tra lBe lA. Qui questo rapporto viene indicato con RHO: These expressions are used to eliminate l * and get an expression for the relationship between lB and lA. Here this ratio is referred to as RHO:

RHO=<l>B =sin(ALPHA_A)sin(BETA_ B ) (38) l A sin(ALPHA_B)sin(BETA_ A ) RHO = <l> B = sin (ALPHA_A) sin (BETA_ B) (38) l A sin (ALPHA_B) sin (BETA_ A)

A questo punto, si riorganizzano le equazioni (22) (sottraendo la prima dalla seconda) per eliminare vA, e poi si usano le espressioni (24) (per le differenze di posizione), e (38), (per il rapporto tra lBe lA). L’espressione che si ottiene è: At this point, we rearrange equations (22) (subtracting the first from the second) to eliminate vA, and then we use the expressions (24) (for the position differences), and (38), (for the ratio between lBe there). The expression obtained is:

UBl − =h I II II 2ARHO UAlA AMTi* hMB−hAM g Ti* (39) Questa espressione può essere semplificata introducendo le seguenti grandezze: UBl - = h I II II 2ARHO UAlA AMTi * hMB − hAM g Ti * (39) This expression can be simplified by introducing the following quantities:

s0=UBRHO − UA s0 = UBRHO - UA

s I II II s I II II

1=hAMTi*+hMB − hAM 1 = hAMTi * + hMB - hAM

s2=T 2 s2 = T 2

i*the*

(40) (40)

dove s0e s1sono vettori, e s2è uno scalare. E’ importante tenere conto del fatto che s0, s1e s2possono essere tutti calcolati dal filtro utilizzando i dati in ingresso disponibili. where s0 and s1 are vectors, and s2 is a scalar. It is important to take into account the fact that s0, s1 and s2 can all be calculated by the filter using the available input data.

L’equazione risultante, che lega lAcon g, è la seguente: The resulting equation, which binds A with g, is the following:

s0lA= s1+ s2g (41) Questo è un’equazione vettoriale (corrispondente a 3 equazioni scalari), con 4 incognite scalari (il valore di lA,e le tre componenti del vettore di gravità g, nell’ ARF). Aggiungendo a questa la condizione |g| = gS(dove gSè stato assunto noto), si ottiene un sistema di 4 equazioni scalari e 4 incognite scalari. E’ possibile ridurlo a una singola equazione quadratica con lAcome incognita, scrivendo la condizione che riguarda la gravità come g⋅g = gs<2>e poi sostituendo g, con la (41). L’equazione risultante per calcolare lAè: s0lA = s1 + s2g (41) This is a vector equation (corresponding to 3 scalar equations), with 4 scalar unknowns (the value of lA, and the three components of the gravity vector g, in the ARF). Adding to this the condition | g | = gS (where gS has been assumed to be known), we obtain a system of 4 scalar equations and 4 scalar unknowns. It is possible to reduce it to a single quadratic equation with lA as unknown, by writing the condition concerning gravity as g⋅g = gs <2> and then replacing g, with (41). The resulting equation to calculate the A is:

|s0|<2>lA<2>- 2(s0⋅ s1)lA+ |s1|<2>- gSs2<2>= 0 (42) Questa equazione ha due soluzioni per lA; quella corretta può essere identificata con semplici controlli dei valori delle stime ottenute (per es. tipicamente con la soluzione “sbagliata” si ottiene un vettore gravità che punta verso l’alto). | s0 | <2> lA <2> - 2 (s0⋅ s1) lA + | s1 | <2> - gSs2 <2> = 0 (42) This equation has two solutions for lA; the correct one can be identified with simple checks of the values of the estimates obtained (eg typically with the "wrong" solution you get a gravity vector pointing upwards).

Una volta ottenuto lA, si calcola g, utilizzando la (41). Successivamente si calcola lB, utilizzando il valore di RHO (calcolato con la (38)). Da lAe lB, i vettori DELTA_R = ∆rAe ∆rBsi ottengono dalla (24). Once lA is obtained, g is calculated using equation (41). Then lB is calculated, using the RHO value (calculated with (38)). From lA and lB, the vectors DELTA_R = ∆rA and ∆rB are obtained from (24).

A questo punto, utilizzando la (22), si calcola anche vA. Infine, il valore della velocità per t = t1si ottiene semplicemente tramite integrazione: At this point, using (22), vA is also calculated. Finally, the speed value for t = t1 is obtained simply by integration:

t 1 t 1

v(t1)<=>vA<+>∫am(t)dt<+>(t1<−>t A ) g (43) t A v (t1) <=> vA <+> ∫am (t) dt <+> (t1 <−> t A) g (43) t A

Come indicato all’inizio della descrizione del passo centrale dell’algoritmo, questi valori di v(t1) e g sono stati ottenuti utilizzando come “punto di partenza” (o “pivot”) una traccia generica i*. Se non ci fossero errori nei dati in ingresso, sarebbe sufficiente scegliere in modo arbitrario un valore per i* nell’insieme [1,...N], partire dalla traccia corrispondente, e poi seguire il metodo descritto qui per ottenere i valori corretti di v(t1) e g. As indicated at the beginning of the description of the central step of the algorithm, these values of v (t1) and g were obtained using a generic trace i * as the "starting point" (or "pivot"). If there were no errors in the input data, it would be sufficient to arbitrarily choose a value for i * in the set [1, ... N], start from the corresponding trace, and then follow the method described here to obtain the correct values of v (t1) and g.

In pratica, i dati in ingresso avranno degli errori; di conseguenza, per ridurre l’errore di stima di v(t1) e g, si può utilizzare una procedura di calcolo della media, per esempio: In practice, the input data will have errors; consequently, to reduce the estimation error of v (t1) and g, an average calculation procedure can be used, for example:

1) Ciascuna delle N tracce in TP=(K1(⋅),K2(⋅),... KN( ⋅ )) viene presa come “pivot”, i*, per generare una singola coppia di stime della velocità (a t1) e della gravità, indicata con (vi*(t1), gi*) ; 1) Each of the N tracks in TP = (K1 (⋅), K2 (⋅), ... KN (⋅)) is taken as a "pivot", i *, to generate a single pair of speed estimates (at t1 ) and severity, indicated with (vi * (t1), gi *);

2) Partendo dalle N stime di v(t1) e g ottenute in questo modo, se ne calcola la media, per ridurre gli errori di stima. 2) Starting from the N estimates of v (t1) and g obtained in this way, the average is calculated to reduce the estimation errors.

Invece di una semplice operazione di media, è possibile anche considerare altri metodi (e.g. il mediano, o RANSAC) per ottenere una stima più robusta rispetto agli “outliers”. Instead of a simple averaging operation, it is also possible to consider other methods (eg the median, or RANSAC) to obtain a more robust estimate than the "outliers".

Inoltre, un’altra variante consiste nella realizzazione di una media pesata delle singole stime, calcolando le medie in funzione delle varianze delle singole stime (i valori delle varianze potrebbero a sua volta essere stimate propagando i valori assunti per le incertezze in ingresso attraverso i calcoli), minimizzando la stima complessiva dell’errore. Furthermore, another variant consists in the realization of a weighted average of the single estimates, calculating the averages as a function of the variances of the individual estimates (the values of the variances could in turn be estimated by propagating the values assumed for the input uncertainties through the calculations ), minimizing the overall estimate of the error.

4.3 PASSO DI POST-ELABORAZIONE 4.3 POST-PROCESSING STEP

Questo passo riceve i seguenti dati: This step receives the following data:

• Dal passo di pre-elaborazione: profili di assetto, velocità angolare e accelerazione misurata nell’ ARF, ovvero (A<A>(t))<A>I<A>, (ω (t))Iand (am( t))I• From the preprocessing step: attitude profiles, angular velocity and acceleration measured in the ARF, that is (A <A> (t)) <A> I <A>, (ω (t)) Iand (am (t ))THE

<A A>• Dal passo centrale: le stime di v (t1) e g <A A> • From the central step: the estimates of v (t1) and g

L’obiettivo di questo passo è il calcolo del profilo dello stato (composto dai profili di asseto, velocità angolare, posizione e velocità lineare) nell’ FRF. The goal of this step is the calculation of the state profile (composed of the profiles of attitude, angular velocity, position and linear velocity) in the FRF.

La prima operazione effettuata qui ha come obiettivo il calcolo del profilo di velocità e posizione in FRF. The first operation performed here has as its objective the calculation of the speed and position profile in FRF.

<A>Il profilo di velocità è calcolato semplicemente integrando la stima di v (t1) utilizzando (a<A>m( t))Ie g: <A> The velocity profile is calculated by simply integrating the estimate of v (t1) using (a <A> m (t)) I and g:

t t

<∀t∈I,>v<A>(t)<=>v<A>(t1)<+>aA(τ)d τ (t t A <∀t∈I,> v <A> (t) <=> v <A> (t1) <+> aA (τ) d τ (t t A

∫ m<+ −>1) g (44) t 1 ∫ m <+ -> 1) g (44) t 1

Dato che r<A>(t0) = 0 per definizione, il profilo della posizione viene calcolato tramite semplice integrazione della velocità: Since r <A> (t0) = 0 by definition, the position profile is calculated by simple integration of the speed:

t t

<∀t∈I,>r<A>(t)<=>v<A>(τ ) d τ (45) t ∫ 0 <∀t∈I,> r <A> (t) <=> v <A> (τ) d τ (45) t ∫ 0

A questo punto sono disponibili tutte le componenti del profilo dello stato in ARF (ovvero (r<A>(t))I, (v<A>(t))I, (A<A>(t))I, (ω<A>(t))I). At this point, all the components of the state profile in ARF are available (i.e. (r <A> (t)) I, (v <A> (t)) I, (A <A> (t)) I, ( ω <A> (t)) I).

Per convertirle in FRF, si applica una matrice di rotazione che descrive la trasformazione ARF→FRF; questa trasformazione tiene conto del fatto che FRF ha l’Asse Z Verticale, mentre ARF no. To convert them to FRF, a rotation matrix is applied which describes the transformation ARF → FRF; this transformation takes into account the fact that FRF has the Vertical Z Axis, while ARF does not.

Di conseguenza, la matrice di rotazione è quella che descrive la rotazione attorno a un asse di un certo angolo, dove: Consequently, the rotation matrix is the one that describes the rotation around an axis by a certain angle, where:

• L’asse è il vettore ortogonale sia al vettore di gravità che all’asse Z dell’ARF. • The axis is the vector orthogonal to both the gravity vector and the Z axis of the ARF.

• L’angolo ϕ è l’angolo tra il vettore di gravità e l’azze Z del ARF - di conseguenza, viene ottenuto dalla componente z del vettore gravità nel ARF, g<A>• The angle ϕ is the angle between the gravity vector and the Z axis of the ARF - consequently, it is obtained from the z component of the gravity vector in the ARF, g <A>

z: z:

A TO

ϕ=arccos( − gz ) (46) g S ϕ = arccos (- gz) (46) g S

In questo modo, intuitivamente, la rotazione “raddrizzerà” tutte le componenti del profilo dello stato in ARF, portandole in FRF. In this way, intuitively, the rotation will "straighten" all the components of the state profile in ARF, bringing them into FRF.

5. INFORMAZIONI AGGIUNTIVE 5. ADDITIONAL INFORMATION

5.1 FUNZIONAMENTO TEMPORALE DEL FILTRO 5.1 TEMPORAL OPERATION OF THE FILTER

Nella descrizione fino a questo punto, è stata descritta la modalità “batch” del Filtro di Navigazione. In questa modalità, l’algoritmo opera nel seguente modo: In the description up to this point, the “batch” mode of the Navigation Filter has been described. In this mode, the algorithm operates as follows:

• riceve, come ingressi, i dati ottenuti durante l’intero intervallo temporale [t0,t1] • receives, as inputs, the data obtained during the entire time interval [t0, t1]

• poi, produce, in uscita, le stime dello stato, relative all’intero intervallo temporale [t0,t1] • then, it produces, in output, the estimates of the state, relating to the entire time interval [t0, t1]

In pratica, il Filtro tipicamente opererà in una modalità “incrementale”, dove: In practice, the Filter will typically operate in an "incremental" mode, where:

• L’algoritmo verrà chiamato a una frequenza che può essere relativamente alta (per es.10 Hz), e • The algorithm will be called at a frequency that can be relatively high (e.g. 10 Hz), and

• Per ogni chiamata, l’algoritmo: • For each call, the algorithm:

- Riceverà gli ingressi ottenuti tra la chiamata precedente e quella attuale, e: - It will receive the inputs obtained between the previous call and the current one, and:

- Dovrà calcolare la stima dello stato “corrente” - Will have to calculate the estimate of the "current" state

Per ottenere un funzionamento nella modalità “incrementale”, si fanno le seguenti modifiche: • Tra chiamate successive dell’algoritmo, i valori dei dati in ingresso vengono memorizzati (assieme ad altri dati rilevanti, come per es. le stime di v(t1) e g) in una memoria To obtain operation in "incremental" mode, the following changes are made: • Between successive calls of the algorithm, the values of the input data are stored (together with other relevant data, such as the estimates of v (t1) and g) in a memory

• Ad ogni chiamata, l’algoritmo inserisce nella memoria i nuovi dati in ingresso, e poi processa tutti i dati contenuti in essa che sono rilevanti per la stima (per es. da un certo istante temporale in poi) • At each call, the algorithm inserts the new incoming data into the memory, and then processes all the data contained in it that are relevant for the estimate (eg. From a certain moment in time onwards)

5.2 CASI DI VELOCITA’ NON OSSERVABILI 5.2 CASES OF SPEED NOT OBSERVABLE

In generale, un qualsiasi Filtro di Navigazione - che utilizza solamente dati IMU e tracce di punti sconosciuti sulla superficie - non potrà stimare la velocità (e quindi nemmeno le differenze di posizione) se l’accelerazione è nulla; è possibile dimostrarlo tenendo conto del fatto che in una tale situazione esistono più profili di velocità e posizione che producono lo stesso profilo di dati in ingresso; di conseguenza, il Filtro di Navigazione “non può decidere” la traiettoria corretta. Nel caso del Filtro di Navigazione considerato qui, se l’accelerazione è ≈0 durante l’intervallo di traccia [tAi*,tBi*] (corrispondente alla traccia “pivot” i*-esima), si avrà che: In general, any Navigation Filter - which uses only IMU data and traces of unknown points on the surface - will not be able to estimate the speed (and therefore not even the position differences) if the acceleration is zero; it can be demonstrated by taking into account the fact that in such a situation there are multiple velocity and position profiles that produce the same input data profile; consequently, the Navigation Filter "cannot decide" the correct trajectory. In the case of the Navigation Filter considered here, if the acceleration is ≈0 during the trace interval [tAi *, tBi *] (corresponding to the track "pivot" i * -th), we will have that:

UB ≈ UA , RHO≈ 1 (47) UB ≈ UA, RHO≈ 1 (47)

e di conseguenza, dalla (40), and consequently, from (40),

s0≈ 0 (48) s0≈ 0 (48)

e quindi le stime di lAottenute con (42) - e anche le risultanti stime di vi*(t1) and gi*- non saranno affidabili. In tali situazioni, è possibile fare le seguenti operazioni: and therefore the estimates of lA obtained with (42) - and also the resulting estimates of vi * (t1) and gi * - will not be reliable. In such situations, you can do the following:

• Nel processo di accumulazione di stime singole di v(t1) and g, i valori ottenuti con le tracce “pivot”, che hanno come intervallo di traccia periodi temporali con accelerazione bassa, vengono esclusi dal calcolo • In the process of accumulating single estimates of v (t1) and g, the values obtained with the "pivot" traces, which have time periods with low acceleration as trace interval, are excluded from the calculation

• In alternativa, è possibile combinare le stime basate sulla IMU e sulle tracce con informazioni aggiuntive relative al modello del veicolo. Per esempio, nel caso di un atterraggio su Marte, se il Filtro di Navigazione inizia ad operare quando il veicolo è ancora attaccato al paracadute, si ha che una situazione con un’accelerazione bassa può verificarsi quando il veicolo si avvicina alla velocità terminale (prima dello sgancio del paracadute). Tuttavia, in una situazione di questo tipo, le equazioni della dinamica possono diventare più semplici (per es. il moto potrebbe essere quasi verticale e uniforme), e quindi la conoscenza del modello può essere utilizzata per stimare dei limiti sul modulo della velocità (per esempio, in un caso molto semplice, il modulo della velocità corrisponderebbe alla velocità terminale) • Alternatively, IMU and track based estimates can be combined with additional vehicle model information. For example, in the case of a landing on Mars, if the Navigation Filter starts operating while the vehicle is still attached to the parachute, a situation with low acceleration can occur as the vehicle approaches terminal speed (before of the parachute release). However, in such a situation, the equations of dynamics can become simpler (e.g. the motion could be almost vertical and uniform), and therefore the knowledge of the model can be used to estimate limits on the velocity modulus (for example, in a very simple case, the velocity modulus would correspond to the terminal velocity)

E’ importante tenere conto del fatto che la direzione del movimento può essere osservata anche con un’accelerazione nulla (utilizzando il metodo per la stima di uˆA, del “Passo centrale”). It is important to take into account the fact that the direction of movement can also be observed with zero acceleration (using the method for estimating uˆA, of the "Central step").

5.3 FUNZIONALITÀ AGGIUNTIVE 5.3 ADDITIONAL FEATURES

Il Filtro di Navigazione considerato finora, può essere utilizzato anche per implementare alcune funzionalità aggiuntive che sono qui di seguito descritte. The Navigation Filter considered so far can also be used to implement some additional features which are described below.

5.3.1 RICOSTRUZIONE DELLA FORMA DEL TERRENO 5.3.1 REBUILDING THE FORM OF THE SOIL

Questa funzionalità può essere aggiunta facilmente, realizzando un’operazione di triangolazione una volta che i valori di rAe rMsono stati stimati. E’ possibile prendere l’insieme delle tracce Q*=(K1(⋅),K2(⋅),... KM( ⋅ )) utilizzate per la stima di UA , e l’insieme dei vettori risultanti (KJ1 ) and (KJ2 ) . A questo punto, per ogni J ∈{1,... M } , la posizione del punto sulla superficie rg*Jpuò essere ottenuta cercando l’intersezione (oppure il punto di minima distanza) tra: This functionality can be added easily, by carrying out a triangulation operation once the values of rA and rM have been estimated. It is possible to take the set of traces Q * = (K1 (⋅), K2 (⋅), ... KM (⋅)) used for the estimation of UA, and the set of resulting vectors (KJ1) and ( KJ2). At this point, for each J ∈ {1, ... M}, the position of the point on the surface rg * J can be obtained by looking for the intersection (or the point of minimum distance) between:

• La semiretta che parte da rAe va nella direzione KJ 1 • The ray starting from rAe goes in the direction KJ 1

• La semiretta che parte da rMe va nella direzione KJ 2 • The ray starting from rMe goes in the direction KJ 2

5.3.2 AGGIUNTA DI SENSORI ADDIZIONALI 5.3.2 ADDITION OF ADDITIONAL SENSORS

La combinazione di sensori considerata - IMU e fotocamera - può essere estesa aggiungendo altri sensori per aumentare ulteriormente la robustezza e l’accuratezza del processo di stima dello stato. Il Filtro di Navigazione può essere infatti adattato per ricevere dati da sensori addizionali quali: The combination of sensors considered - IMU and camera - can be extended by adding other sensors to further increase the robustness and accuracy of the state estimation process. The Navigation Filter can in fact be adapted to receive data from additional sensors such as:

• Sensori di stelle: questi possono essere utilizzati per fornire direttamente le misure dell’assetto del veicolo (per es. per un atterraggio lunare); • Star sensors: these can be used to directly provide vehicle attitude measurements (eg for a lunar landing);

• Altimetro: l’aggiunta di un altimetro può permettere un incremento dell’accuratezza delle stime dello stato, fornendo un metodo alternativo per stimare una delle principali grandezze coinvolte, ovvero la lunghezza del vettore di “differenza di posizione”, DELTA_R = ∆rA(considerato nel “Passo centrale” dell’algoritmo del filtro). Essenzialmente, processando i dati dell’altimetro, si misura la lunghezza della proiezione del vettore DELTA_R lungo la direzione nˆaltimeter(questo vettore indica le direzione di puntamento dell’altimetro); indicando questa lunghezza con laltimeter, si ha che per calcolare il valore di lAè possibile utilizzare la seguente espressione (dove nˆaltimetere K 1 sono entrambi calcolati nel sistema di riferimento ARF): • Altimeter: the addition of an altimeter can allow an increase in the accuracy of the state estimates, providing an alternative method to estimate one of the main quantities involved, that is the length of the "position difference" vector, DELTA_R = ∆rA ( considered in the “Central Step” of the filter algorithm). Essentially, by processing the altimeter data, the length of the projection of the DELTA_R vector is measured along the nˆaltimeter direction (this vector indicates the pointing direction of the altimeter); indicating this length with laltimeter, we have that to calculate the value of lA it is possible to use the following expression (where nˆaltimeter K 1 are both calculated in the reference system ARF):

l<A>= l altimeter (49) K1⋅ nˆ altimeter l <A> = l altimeter (49) K1⋅ nˆ altimeter

• Scanning LIDAR: questo sensore consente la misura delle distanze lungo la direzione di un fascio laser, e questa direzione può essere controllata sui due gradi di libertà (un sensore del tipo “Flash” LIDAR può essere utilizzato in alternativa). In questo modo, si ottiene una scansione del terreno sottostante, espressa rispetto al veicolo. Stimando il moto apparente del terreno scansionato, si può ricostruire il movimento del veicolo. Similmente al caso dell’altimetro, qui lo Scanning LIDAR rappresenta un modo alternativo per stimare ∆rA(d’altra parte, qui possono essere osservate anche tutte e 3 le componenti del vettore ∆rA). • Scanning LIDAR: this sensor allows the measurement of distances along the direction of a laser beam, and this direction can be controlled on the two degrees of freedom (a “Flash” LIDAR sensor can be used as an alternative). In this way, a scan of the underlying terrain is obtained, expressed with respect to the vehicle. By estimating the apparent motion of the scanned terrain, the movement of the vehicle can be reconstructed. Similarly to the case of the altimeter, here the Scanning LIDAR represents an alternative way to estimate ∆rA (on the other hand, all 3 components of the vector ∆rA can also be observed here).

5.3.3 NAVIGAZIONE ASSOLUTA 5.3.3 ABSOLUTE NAVIGATION

Questa funzionalità consente la stima del profilo dello stato del veicolo in un sistema di riferimento “planetocentrico” (PRF), ovvero in un sistema di riferimento che viene utilizzato per specificare (in modo non ambiguo) i punti del terreno sul corpo celeste considerato - come per es. tramite la latitudine, longitudine e altezza (ovviamente da definire opportunamente). This feature allows the estimation of the vehicle status profile in a "planetocentric" reference system (PRF), that is, in a reference system that is used to specify (unambiguously) the points of the terrain on the celestial body considered - such as for example. through latitude, longitude and height (obviously to be defined appropriately).

Per realizzare questa funzionalità, il Filtro di Navigazione deve avere a disposizione anche un insieme di dati “precaricati” (ovvero messi a disposizione prima dell’inizio del funzionamento del filtro). In questo caso, questi dati corrispondono a una “mappa” del terreno (per es. composta da una combinazione di un Digital Elevation Model e un’ortoimmagine), riferita rispetto al sistema di riferimento PRF. To achieve this functionality, the Navigation Filter must also have a set of "preloaded" data available (ie made available before the filter starts operating). In this case, these data correspond to a "map" of the terrain (eg composed of a combination of a Digital Elevation Model and an ortho-image), referred to the PRF reference system.

Senza perdere in generalità, si assume di avere un PRF cartesiano, con l’Asse Z Verticale. Without losing generality, it is assumed to have a Cartesian PRF, with the Vertical Z Axis.

Qui si considerano due varianti del funzionamento del filtro: Two variants of the filter operation are considered here:

A) Variante “senza misure di assetto”: qui si assume di non avere un ingresso aggiuntivo che fornisce (durante l’intervallo temporale di funzionamento del filtro, I) il profilo dell’assetto del velivolo nel PRF (questo profilo potrebbe essere ottenibile, ad esempio, tramite dei sensori di stelle); A) Variant "without attitude measurements": here it is assumed that there is no additional input that provides (during the time interval of operation of the filter, I) the attitude profile of the aircraft in the PRF (this profile could be obtainable, for example, through star sensors);

B) Variante “con misure di assetto”: qui si assume di avere il suddetto profilo di assetto . B) Variant “with trim measures”: here it is assumed to have the aforementioned trim profile.

Nel caso della variante A, i passi dell’algoritmo da implementare sono i seguenti (la differenza tra le varianti A e B è che nel caso della variante B si “salta” il secondo passo, essendo il profilo dell’assetto nel PRF già disponibile): In the case of variant A, the steps of the algorithm to be implemented are the following (the difference between variants A and B is that in the case of variant B the second step is "skipped", since the structure profile in the PRF is already available ):

1) Esecuzione dell’algoritmo “standard” (descritto precedentemente); 1) Execution of the "standard" algorithm (described above);

2) Determinazione del profilo di assetto nel PRF; 2) Determination of the trim profile in the PRF;

3) Calcolo della posizione nel PRF; 3) Calculation of the position in the PRF;

4) Calcolo del profilo dello stato del veicolo nel PRF. 4) Calculation of the vehicle status profile in the PRF.

Il primo passo ha come obiettivo la stima del profilo dello stato nel FRF. The first step aims at estimating the state profile in the FRF.

Nel secondo passo, è necessario determinare la rotazione tra il FRF ed il PRF. Dato che questi due sistemi di riferimento hanno l’asse z comune, è sufficiente determinare l’angolo di rotazione attorno a questo asse, necessario per passare da un RF all’altro. In the second step, it is necessary to determine the rotation between the FRF and the PRF. Since these two reference systems have a common z axis, it is sufficient to determine the angle of rotation around this axis, necessary to switch from one RF to the other.

Questo angolo, indicato qui con α, può essere calcolato partendo dai seguenti valori: This angle, indicated here with α, can be calculated starting from the following values:

1) La direzione della velocità, nel piano xy del PRF, per un certo tα(anche minore di t0): si tratta di una grandezza tipicamente nota - per es., nel caso di un atterraggio su Marte o sulla Luna, questo valore è ottenibile dai parametri dell’orbita del veicolo (tipicamente noti con un’accuratezza accettabile). 1) The direction of the velocity, in the xy plane of the PRF, for a certain tα (even less than t0): it is a typically known quantity - for example, in the case of a landing on Mars or the Moon, this value is obtainable from vehicle orbit parameters (typically known with acceptable accuracy).

2) La direzione della velocità, nel piano xy del FRF: è calcolabile partendo dall’output del primo passo (ovvero dall’algoritmo “standard”) - se tα< t0, si utilizzano le misure IMU ottenute tra tαe t02) The direction of speed, in the xy plane of the FRF: it can be calculated starting from the output of the first step (ie from the "standard" algorithm) - if tα <t0, the IMU measurements obtained between tα and t0 are used

Indicando queste due direzioni delle velocità rispettivamente con θPRFe θFRF, si ha che α è dato semplicemente da: Indicating these two directions of velocities respectively with θPRF and θFRF, we have that α is given simply by:

α = θPRF- θFRF(50) α = θPRF- θFRF (50)

A questo punto, per determinare la completa trasformazione tra il FRF e il PRF (la quale consentirà la trasformazione del profilo dello stato nel FRF in quello in PRF), è necessario determinare anche la traslazione (espressa come un vettore del PRF) che porta dall’origine del PRF all’origine del FRF. Questo vettore ovviamente coincide con la differenza tra il vettore r(tP), espresso nel PRF, e lo stesso vettore, espresso nel FRF (qui tP∈ I). Dato che i valori di posizione nel FRF sono noti (essendo ottenuti nel primo passo), rimane da calcolare il vettore r(tP) nel PRF. La procedura per farlo è descritta qui di seguito. At this point, to determine the complete transformation between the FRF and the PRF (which will allow the transformation of the state profile in the FRF into that in the PRF), it is also necessary to determine the translation (expressed as a vector of the PRF) that leads from the origin of the PRF at the origin of the FRF. This vector obviously coincides with the difference between the vector r (tP), expressed in the PRF, and the same vector, expressed in the FRF (here tP∈ I). Since the position values in the FRF are known (being obtained in the first step), it remains to calculate the vector r (tP) in the PRF. The procedure for doing this is described below.

Per semplicità di notazione, questo vettore viene in seguito indicato con r. For simplicity of notation, this vector is hereinafter referred to as r.

Confrontando la “mappa” del terreno precaricata con il terreno osservato dalla fotocamera, si identificano alcuni punti sull’immagine per i quali le coordinate nel PRF sono note. Questi punti (nel PRF) verranno indicati con rg1,rg 2,... rgS. Utilizzando la stima dell’assetto nel PRF, è possibile ottenere i versori (nel PRF) associati a ciascuno di questi punti; questi versori verranno indicati qui con n<ˆ>g1,n<ˆ>g 2,... n<ˆ>gS(ciascun versore indica la direzione apparente del corrispondente punto sul terreno). By comparing the preloaded "map" of the terrain with the terrain observed by the camera, some points on the image are identified for which the coordinates in the PRF are known. These points (in the PRF) will be indicated with rg1, rg 2, ... rgS. Using the asset estimate in the PRF, it is possible to obtain the vector units (in the PRF) associated with each of these points; these vector units will be indicated here as n <ˆ> g1, n <ˆ> g 2, ... n <ˆ> gS (each vector unit indicates the apparent direction of the corresponding point on the ground).

Ciascuna coppia (rgi, n<ˆ>gi) , per i ∈{1,... S } , definisce una semiretta, i cui punti sono parametrizzabili con li> 0 : Each pair (rgi, n <ˆ> gi), for i ∈ {1, ... S}, defines a ray, whose points can be parameterized with li> 0:

qi(li)=rgi+ n<ˆ>gili(51) qi (li) = rgi + n <ˆ> gili (51)

In assenza di errori, tutte queste semirette incrocerebbero a un certo punto r. In altre parole, si avrebbe per ogni i ∈{1,... S } un valore li<*>tale per cui qi( l<*>In the absence of errors, all of these rays would cross at some point r. In other words, we would have for every i ∈ {1, ... S} a value li <*> such that qi (l <*>

i) = r . i) = r.

Ovviamente, nella pratica è impossibile che queste semirette si incrocino. Per ottenere una stima di r, si segue un approccio ai minimi quadrati, minimizzando il valore di f (r ) definito da: f(<r>) = ∑<2>Obviously, in practice it is impossible for these rays to cross. To obtain an estimate of r, a least squares approach is followed, minimizing the value of f (r) defined by: f (<r>) = ∑ <2>

i= 1d i(<r>) (52) dovedi(r ) indica la distanza minima tra il punto r e la semiretta i-esima: i = 1d i (<r>) (52) where (r) indicates the minimum distance between the point r and the i-th ray:

di(r)=min|r − q( ) | (53)l> i l i di (r) = min | r - q () | (53) l> i l i

i0i0

Il puntoqi( l<r>The point qi (l <r>

i) della semiretta più vicino al punto r è quello per il quale è verificata la condizione: i) of the ray closest to point r is the one for which the condition is verified:

n<ˆ>gi⋅(r−qi( l<r>n <ˆ> gi⋅ (r − qi (l <r>

i)) = 0 (54) i)) = 0 (54)

e quindil<r>and then <r>

i=n<ˆT>i = n <ˆT>

gi(r − rgi) ; di conseguenza, si ha che: gi (r - rgi); consequently, we have that:

di(r)=|r−qi( l<r>di (r) = | r − qi (l <r>

i)|=|r−rgi−n<ˆ>gin<ˆT>i) | = | r − rgi − n <ˆ> gin <ˆT>

gi(r−rgi)|=|Bi(r − rgi) | (55) gi (r − rgi) | = | Bi (r - rgi) | (55)

doveBi=I−n<ˆ>gin<ˆ T>whereBi = I − n <ˆ> gin <ˆ T>

gi. E’ possibile quindi riscrivere l’espressione per d<2>already It is therefore possible to rewrite the expression for d <2>

i( r ) come: i (r) as:

d<2>d <2>

i(r)=(Bi(r−rgi))<T>(Bi(r−rgi))=(r−rgi)<T>Ci(r − rgi) (56) i (r) = (Bi (r − rgi)) <T> (Bi (r − rgi)) = (r − rgi) <T> Ci (r - rgi) (56)

doveCi=B<T>whereCi = B <T>

iBiè una matrice simmetrica. Il gradiente di f(r ) è quindi dato da : iBi is a symmetric matrix. The gradient of f (r) is therefore given by:

S S.

<∇>f(<r>)<=>∑<∇>2S <∇> f (<r>) <=> ∑ <∇> 2S

i=1 (d i(<r>))<=>∑i= 12<C>i(<r−r>gi )<=Dr − h>(57) S S i = 1 (d i (<r>)) <=> ∑i = 12 <C> i (<r−r> gi) <= Dr - h> (57) S S

<dove D>=<2>∑ i =1<C i e>h = 2 ∑i=1Ci r gi . Di conseguenza, il valore di r per il quale f(r ) è minimo si ricava tramite l’espressione: <where D> = <2> ∑ i = 1 <C i e> h = 2 ∑i = 1Ci r gi. Consequently, the value of r for which f (r) is minimum is obtained through the expression:

r=D<− 1>h (58) A questo punto, si può calcolare il profilo dello stato nel PRF partendo da quello nel FRF (ottenuto con l’algoritmo “standard”) e operando le seguenti trasformazioni: r = D <- 1> h (58) At this point, the state profile in the PRF can be calculated starting from that in the FRF (obtained with the "standard" algorithm) and performing the following transformations:

• Una rotazione attorno all’asse z, di un angolo α ; • A rotation around the z axis, by an angle α;

• Una traslazione di r . • A translation of r.

Per ridurre ulteriormente l’errore di stima dello stato nel PRF, si può fare la seguente operazione: To further reduce the state estimation error in the PRF, you can do the following:

1) si calcolano i valori della posizione dei veicolo nel PRF per più istanti temporali di I (invece che solo per tP∈ I). 1) the values of the vehicle position in the PRF are calculated for more time instants than I (instead of only for tP∈ I).

2) poi, queste stime, indicate qui con r(tP1),r(tP 2),... r( tPH) , vengono elaborate nel modo seguente: 2) then, these estimates, indicated here as r (tP1), r (tP 2), ... r (tPH), are processed as follows:

• Per ogni i ∈{1,... H } , si ottiene (dal valore di r(tP i) ), una stima indipendente della traslazione dal PRF al FRF. Calcolando la media delle stime ottenute in questo modo, l’errore complessivo di stima di questa traslazione viene ridotto. • For each i ∈ {1, ... H}, an independent estimate of the translation from the PRF to the FRF is obtained (from the value of r (tP i)). By calculating the average of the estimates obtained in this way, the overall estimation error of this translation is reduced.

• Analogamente, per un certo istante t* ∈ I , si possono ottenere stime indipendenti di v(t *) (da mediare successivamente) usando coppie di punti (r(tPi), r( tP j)) (dove (i,j) ∈{1,... H } ei ≠ j ) tramite l’espressione : • Similarly, for a certain instant t * ∈ I, independent estimates of v (t *) (to be averaged later) can be obtained using pairs of points (r (tPi), r (tP j)) (where (i, j ) ∈ {1, ... H} ei ≠ j) through the expression:

t Pj t t * t Pj t t *

<v>( t*)<1 =>(<r>(tPj)−<r>(tPi)−∫ ∫<a>m(<τ>)d<τ>dt−<1g>(t −t ) 2)+ () ( − *)<(59)>tPj − t 2 Pj Pi mtdt tPjt Pi t Pi t Pi t ∫<a g><v> (t *) <1 => (<r> (tPj) - <r> (tPi) −∫ ∫ <a> m (<τ>) d <τ> dt− <1g> (t −t ) 2) + () (- *) <(59)> tPj - t 2 Pj Pi mtdt tPjt Pi t Pi t Pi t ∫ <a g>

Pi Pi

Claims (10)

RIVENDICAZIONI 1. Dispositivo per la stima dello stato di un veicolo in navigazione, costituito da un’unità di misura inerziale (IMU), che rileva le velocità angolari e le accelerazioni di detto veicolo, da un mezzo di acquisizione di immagini (CAM) e da un dispositivo (PROC) di elaborazione delle immagini fotografiche del terreno prese in momenti successivi, identificando una serie di punti caratteristici del terreno, che vengono tracciati sulle diverse immagini, e da un filtro di navigazione (NF) che attraverso un algoritmo opportuno calcola lo stato del veicolo in termini di velocità, posizione, assetto e velocità angolare, in un sistema di riferimento fisso rispetto al terreno, caratterizzato dal fatto: - che il filtro di navigazione per ottenere un versore (U), che indica la direzione dello spostamento del veicolo tra due istanti temporali (T1) e (T2), realizza i seguenti passaggi di calcolo: A) calcola prima un insieme di vettori, (E), i quali in assenza di errori di misura sarebbero tutti ortogonali al detto versore (U), realizzando le seguenti operazioni: A.1) integra le misure di velocità angolare dell'unità di misura inerziale in modo da ottenere il profilo dell'assetto, ovvero l'andamento temporale dell'assetto durante un certo intervallo di tempo, rispetto a un sistema di riferimento fisso rispetto al terreno A.2) utilizza il detto profilo d'assetto per processare l'uscita del dispositivo di elaborazione di immagini, ovvero l'insieme di tracce di pixel dove ogni traccia di pixel descrive il moto apparente di un punto caratteristico del terreno all'interno della sequenza di immagini, con lo scopo di ottenere un insieme (TP) di tracce di versori, dove ogni traccia di versore è una funzione del tempo e descrive il moto dei detto punto caratteristico in un sistema di riferimento fisso rispetto al tempo A.3) l'insieme (E) viene costruito realizzando i seguenti calcoli su ogni membro (KI) di un sottoinsieme di (TP): A.3.1) i valori di (KI) a (T1) e (T2), indicati rispettivamente con (KI1) e (KI2), vengono estratti, A.3.2) il prodotto vettoriale normalizzato di (KI1) e (KI2), indicato con (KCI), viene calcolato, A.3.3) (KCI) viene inserito nell'insieme (E) B) determina, tramite un procedimento ai minimi quadrati, il vettore più vicino alla ortogonalità al detto insieme di vettori (E) e che in tal modo meglio approssima il versore (U) reale ; - che per ottenere il rapporto, (RHO), tra le lunghezze degli spostamenti del veicolo, rispettivamente, da (TA) a (TM), e da (TM) a (TB), dove (TA), (TM) e (TB) sono tre instanti temporali consecutivi, il filtro di navigazione realizza i seguenti calcoli: A) calcola, utilizzando la procedura descritta sopra, i vettori (UA) e (UB), che indicano le direzioni dei spostamenti dei veicoli rispettivamente tra gli istanti temporali (TA) e (TM), e (TM) e (TB) B) per ciascuna traccia di versore (KI) che appartiene al detto insieme (TP), due triangoli (TRA) e (TRB) sono definiti quando possibile, tali per cui: i vertici di (TRA) sono: la posizione del veicolo a (TA), la posizione del veicolo a (TB), e il punto del terreno tracciato da (KI) e i vertici di (TRB) sono: la posizione del veicolo a (TB), la posizione del veicolo a (TC), e il detto punto del terreno tracciato; C) gli angoli rilevanti dei triangoli (TRA) e (TRB) sono calcolati effettuando le seguenti operazioni: a) tre versori, (KIA), (KIM) e (KIB), appartenenti alla detta traccia (KI), e associati rispettivamente agli istanti temporali (TA), (TM) e (TB), sono estratti dalla detta traccia b) viene calcolato l'angolo tra i vettori (KIA) e (UA), il quale è anche l'angolo (ALPHA) del triangolo (TRA) c) viene calcolato l'angolo tra i vettori (KIA) e (KIM), il quale è anche l'angolo (BETA) del triangolo (TRA) d) viene calcolato l'angolo tra l'opposto del vettore (UB) e il vettore (KIB), il quale è anche l'angolo (ALPHA) del triangolo (TRB) e) viene calcolato l'angolo tra i vettori (KIB) e (KIM), il quale è anche l'angolo (BETA) del triangolo (TRB) D) (RHO) viene calcolato moltiplicando il seno dell'angolo (ALPHA) di (TRA) con il seno dell'angolo (BETA) di (TRB), e poi dividendo il prodotto con il prodotto del seno dell'angolo (ALPHA) di (TRB) con il seno dell'angolo (BETA) di (TRA); è possibile combinare stime multiple di (RHO) - che per calcolare la lunghezza dello spostamento del veicolo tra due istanti temporali, il filtro di navigazione elabora i detti versori (U), e il detto rapporto (RHO), e le misure dell’unità di misura inerziale, opportunamente processate, assieme al valore del vettore accelerazione di gravità oppure al valore della norma di tale vettore . 2. Metodo per la stima dello stato di un veicolo in navigazione a partire dalle misurazioni di un’unità di misura inerziale che rileva le velocità angolari e le accelerazioni di detto veicolo, dalla elaborazione delle immagini fotografiche del terreno prese in momenti successivi, identificando su una serie di punti caratteristici del terreno, che vengono tracciati sulle diverse immagini, e che attraverso un algoritmo opportuno calcola lo stato del veicolo in termini di velocità, posizione, assetto e velocità angolare, in un sistema di riferimento fisso rispetto al terreno, caratterizzato dal fatto: - che per ottenere il versore (U), che indica la direzione dello spostamento del veicolo tra due istanti temporali, si calcola prima un insieme di vettori, (E), i quali in assenza di errori di misura sarebbero tutti ortogonali al detto versore (U), e successivamente si determina, tramite un procedimento ai minimi quadrati, il vettore più vicino alla ortogonalità al detto insieme di vettori (E) e che in tal modo meglio approssima il versore (U) reale; - che per ottenere il rapporto, (RHO), tra le lunghezze degli spostamenti del veicolo, rispettivamente, da (TA) a (TM), e da (TM) a (TB), dove (TA), (TM) e (TB) sono tre instanti temporali consecutivi, si calcolano prima gli angoli di due triangoli, aventi rispettivamente i seguenti vertici: a) la posizione del veicolo a (TA), la posizione del veicolo a (TM), e un punto del terreno tracciato sulle immagini, e b) la posizione del veicolo a (TM), la posizione del veicolo a (TB), e il detto punto del terreno tracciato, e successivamente si applica il teorema geometrico dei seni; - che per calcolare la lunghezza dello spostamento del veicolo tra due istanti temporali, si elaborano i detti versori (U), il detto rapporto (RHO), e le misure dell’unità di misura inerziale, opportunamente processate, assieme al valore del vettore accelerazione di gravità oppure al valore della norma di tale vettore. 3. Metodo per la stima dello stato di un veicolo in navigazione secondo la rivendicazione 2, caratterizzato da fatto che per calcolare il profilo di detto stato, ovvero l’andamento temporale dello stato durante un intervallo temporale, viene utilizzato anche un sistema di riferimento ausiliario, il quale coincide, all’istante iniziale di detto intervallo temporale, con il sistema di riferimento fisso rispetto al veicolo. 4. Metodo per la stima dello stato di un veicolo in navigazione secondo la rivendicazione 2, caratterizzato da fatto che il risultato dell’elaborazione delle immagini, composto da un insieme di tracce di pixel, dove ciascuna traccia di pixel descrive il movimento apparente di un punto caratteristico del terreno nella sequenza delle immagini, viene ulteriormente elaborato per ottenere un insieme (TP) di tracce di versori, dove ciascuna traccia di versore, (KI), è una funzione del tempo e descrive il movimento del suddetto punto caratteristico in un sistema di riferimento fisso rispetto al terreno . 5. Metodo per la stima dello stato di un veicolo in navigazione secondo la rivendicazione 2, caratterizzato da fatto che per calcolare il versore, (U), che indica la direzione dello spostamento del veicolo tra due istanti temporali, vengono effettuate le seguenti operazioni: - viene processato l'insieme di tracce (TP), ottenuto elaborando le immagini e le misure dell’unità di misura inerziale, per definire prima un insieme di piani nello spazio, tutti contenenti, in assenza di errori di misura, il detto versore (U), e poi per definire un insieme di vettori, (E), unitari e ortogonali al detto insieme di piani; - si calcola il versore più ortogonale al detto insieme di vettori (E), minimizzando analiticamente la somma dei quadrati dei prodotti scalari con i vettori del detto insieme. 6. Metodo per la stima dello stato di un veicolo in navigazione secondo la rivendicazione 2, caratterizzato dal fatto che per calcolare il rapporto, (RHO), tra le lunghezze degli spostamenti del veicolo rispettivamente da (TA) a (TM), e da (TM) a (TB), dove (TA), (TM) e (TB) sono tre instanti temporali per i quali esiste almeno una traccia di pixel (KI) che inizia a (TA) o prima, e finisce a (TB) o dopo, vengono effettuate le seguenti operazioni: - si calcolano le direzioni (UA) e (UB) degli spostamenti del veicolo rispettivamente tra (TA) e (TM), e tra (TM) e (TB); - si definiscono due triangoli, (TRA) e (TRB), aventi rispettivamente i seguenti vertici: a) la posizione del veicolo a (TA), la posizione del veicolo a (TM), e il punto del terreno tracciato dalla detta traccia di pixel (KI), e b) la posizione del veicolo a (TM), la posizione del veicolo a (TB), e il punto del terreno tracciato dalla detta traccia di pixel (KI); - l'insieme delle tracce (TP), ovvero il risultato dell’elaborazione delle immagini e delle misure dell’unità di misura inerziale, viene usato assieme ai vettori (UA) e (UB), per calcolare gli angoli dei detti due triangoli (TRA) e (TRB); - si calcola il detto rapporto, (RHO), tra le lunghezze degli spostamenti, utilizzando i detti angoli dei triangoli (TRA) e (TRB), e applicando il teorema geometrico dei seni; è possibile combinare stime multiple di (RHO). 7. Metodo per la stima dello stato di un veicolo in navigazione secondo la rivendicazione 2, caratterizzato da fatto che per calcolare la velocità del veicolo in un certo istante temporale (TA), e il vettore accelerazione di gravità, vengono effettuate le seguenti operazioni: - si utilizzano altri due istanti temporali, (TM) e (TB), per calcolare i detti versori (UA) e (UB), e il rapporto (RHO); - si utilizzano i valori calcolati al passo precedente, assieme alle misure dell’unità di misura inerziale, opportunamente processate, per calcolare il vettore (DELTA_R) che indica lo spostamento dei veicolo da (TA) a (TM); - se il vettore gravità non è noto, ma è nota solamente la sua norma, allora partendo dal detto vettore(DELTA_R), e dal valore della norma del vettore gravità, e da altri valori ottenuti precedentemente, si determina il vettore gravità; - partendo dal detto vettore gravità, e da altri valori ottenuti precedentemente, si calcola la velocità nell’istante temporale (TA). 8. Metodo per la stima dello stato di un veicolo in navigazione secondo la rivendicazione 2, caratterizzato da fatto che, utilizzando anche le misure di un altimetro, allora si calcola lo spostamento tra due istanti temporali, (DELTA_R), effettuando le seguenti operazioni: - si calcola la direzione, (U), del detto vettore spostamento; - si utilizzano le misure dell’altimetro per calcolare la proiezione del detto vettore spostamento lungo la direzione di misura dell’altimetro; - si utilizzano i valori della detta direzione (U), della detta direzione di misura dell’altimetro, e della detta proiezione, per calcolare la lunghezza del detto spostamento (DELTA_R). 9. Metodo per la stima dello stato di un veicolo in navigazione secondo la rivendicazione 2, caratterizzato da fatto che, ricevendo anche le misure di un sensore LIDAR, a scansione o flash, allora si calcola lo spostamento, (DELTA_R), tra due istanti temporali, effettuando le seguenti operazioni: - si calcola la direzione, (U), del detto vettore spostamento, utilizzando il procedimento descritto nella rivendicazione 5; - utilizzando la detta direzione, si determina la lunghezza del detto spostamento massimizzando la sovrapposizione tra i punti del terreno misurati con le scansioni LIDAR ottenute nei detti due istanti temporali. 10. Metodo per la stima dello stato di un veicolo in navigazione secondo la rivendicazione 2, caratterizzato da fatto che utilizzando come dati in ingresso anche una mappa del terreno osservato, che include anche un’ortoimmagine, ovvero una matrice di pixel, riferita a un sistema di riferimento planetocentrico, che indica l’aspetto del terreno osservato, allora si effettuano le seguenti operazioni per calcolare il profilo dello stato del veicolo nel detto sistema di riferimento: - viene fatto un confronto tra la detta ortoimmagine e le immagini osservate dal veicolo, per ottenere un insieme di punti del terreno, dove per ogni punto di tale insieme sono disponibili sia le coordinate planetocentriche, che le coordinate che indicano la posizione apparente del punto su una o più immagini acquisite; - per ciascuna detta immagine, si effettua una elaborazione delle coordinate sull’immagine di detti punti, per ottenere un insieme di versori che indicano le direzioni in cui si trovano detti punti, rispetto al veicolo, nel detto sistema di riferimento planetocentrico ; - si calcola la posizione del veicolo nel detto sistema di riferimento planetocentrico, definendo una semiretta per ogni coppia di detti punto e versore, e poi definendo una funzione che, per ogni punto dello spazio tridimensionale, valuta la somma delle distanze al quadrato, tra detto punto dello spazio e le semirette precedentemente definite, e infine minimizza la detta funzione calcolando, tramite un procedimento analitico, il punto per il quale il gradiente di detta funzione è nullo. 1. Device to estimate the state of a moving vehicle, composed of an inertial measurement unit (IMU), measuring the angular velocities and the accelerations of said vehicle, by a camera (CAM) and by a device (PROC) for the processing of the terrain photographic images taken at successive instants, identifying a set of characteristic points of the terrain, which are tracked on the different images, and by a navigation filter (NF) which using a suitable algorithm calculates the state of the vehicle in terms of velocity, position, attitude and angular velocity, in a reference frame fixed with respect to the ground, characterized in that: - the navigation filter, in order to get a unit vector (U), indicating the direction of the displacement of the vehicle between two time instants (T1) and (T2), performs the following two computing steps: A) calculates at first a set of vectors, (E), which in case of no measurement errors would be all orthogonal to the said unit vector (U), by performing the following operations: A.1) integrates the angular velocity measurements of the inertial measurement unit in order to obtain the profile of the attitude, i.e. the temporal behaviour of the attitude during a time interval, with respect to a reference frame fixed with respect to the ground A.2) utilizes the said attitude profile in order to process the output of the image processing device, i.e. the set of pixel tracks where each pixel track describes the apparent motion of a characteristic point of the terrain in the sequence of the images, in order to obtain a set (TP) of tracks of unit vectors, where each unit vector track is a function of time and describes the motion of said characteristic point in a reference frame fixed with respect to the ground A.3) the set (E) is constructed by performing the following computations on each member (KI) of a subset of (TP): A.3.1) the values of (KI) at (T1) and (T2), indicated respectively with (KI1) and (KI2), are extracted, A.3.2) the normalized vector cross product of (KI1) and (KI2), indicated with (KCI), is computed, A.3.3) (KCI) is inserted in the set (E) B) determines, through the method of the least squares, the vector closer to the perpendicular to the said set of vectors (E) and that in this way better approximates the actual unit vector (U); - to obtain the ratio, (RHO), between the lengths of the displacements of the vehicle, respectively in the timeframe from (TA) to (TM) and from (TM) to (TB), where (TA), (TM) and (TB) are three successive time instants, the navigation filter performs the following computations: A) computes, by using the procedure described above, the vectors (UA) and (UB), that indicate the directions of the displacements of the vehicle respectively between time instants (TA) and (TM), and (TM) and (TB) B) for each unit vector track (KI) that is a member of the said set (TP), two triangles, (TRA) and (TRB), are defined when possible, such that the vertices of (TRA) are: the position of the vehicle at time (TA), the position of the vehicle at time (TM), and the point on the terrain tracked by (KI) and the vertices of (TRB) are: the position of the vehicle at time (TM), the position of the vehicle at time (TB), and the said tracked point of the terrain, C) the relevant angles of the triangles (TRA) and (TRB) are computed by performing the following operations: a) three unit vectors, (KIA), (KIM) and (KIB), belonging to the said pixel track (KI), and associated respectively to the time instants (TA), (TM) and (TB), are extracted from the said pixel track b) the angle between vectors (KIA) and (UA), which is also the angle (ALPHA) of the triangle (TRA), is computed, c) the angle between vectors (KIA) and (KIM), which is also the angle (BETA) of the triangle (TRA), is computed, d) the angle between the opposite of the vector (UB), and the vector (KIB), is computed, which is also the angle (ALPHA) of the triangle (TRB), is computed, e) the angle between vectors (KIB) and (KIM), which is also the angle (BETA) of the triangle (TRB), is computed, D) (RHO) is then computed by multiplying the sine of the angle (ALPHA) of (TRA) with the sine of the angle (BETA) of (TRB), and then dividing that product with the product of the sine of the angle (ALPHA) of (TRB) with the sine of the angle (BETA) of (TRA); multiple estimates of (RHO) can be combined - to calculate the length of the displacement of the vehicle between two time instants, the navigation filter processes the said unit vectors (U), the said ratio (RHO), and the measurements of the inertial measurement unit, conveniently treated, together with the value of the gravity acceleration vector or the value of the norm of such vector. CLAIMS 1. Device for estimating the state of a vehicle in navigation, consisting of an inertial measurement unit (IMU), which detects the angular velocities and accelerations of said vehicle, by an image acquisition medium (CAM) and by a device (PROC) for processing photographic images of the terrain taken in successive moments, identifying a series of characteristic points of the terrain, which are traced on the various images, and by a navigation filter (NF) which, through an appropriate algorithm, calculates the state of the vehicle in terms of speed, position, attitude and angular velocity, in a fixed reference system with respect to the ground, characterized by the fact: - that the navigation filter to obtain a unit vector (U), which indicates the direction of the displacement of the vehicle between two time instants (T1) and (T2), performs the following calculation steps: A) first calculates a set of vectors, (E), which in the absence of measurement errors would be they are all orthogonal to said unit vector (U), carrying out the following operations: A.1) integrates the angular velocity measurements of the inertial measurement unit in order to obtain the attitude profile, i.e. the temporal trend of the attitude during a certain time interval, with respect to a fixed reference system with respect to the ground A.2) uses the said attitude profile to process the output of the image processing device, i.e. the set of pixel traces where each trace of pixels describes the apparent motion of a characteristic point of the ground within the sequence of images, with the aim of obtaining a set (TP) of versor traces, where each versor trace is a function of time and describes the motion of said characteristic point in a fixed reference system with respect to time A.3) the set (E) is constructed by making the following calculations on each member (KI) of a subset of (TP): A.3.1) the values of ( KI) to (T1) and (T2), indic given respectively with (KI1) and (KI2), are extracted, A.3.2) the normalized vector product of (KI1) and (KI2), denoted by (KCI), is calculated, A.3.3) (KCI) is inserted into 'set (E) B) determines, by means of a least squares procedure, the vector closest to the orthogonality to said set of vectors (E) and which in this way best approximates the real unit vector (U); - that to obtain the ratio, (RHO), between the lengths of the movements of the vehicle, respectively, from (TA) to (TM), and from (TM) to (TB), where (TA), (TM) and ( TB) are three consecutive time instants, the navigation filter performs the following calculations: A) calculates, using the procedure described above, the vectors (UA) and (UB), which indicate the directions of vehicle movements respectively between the time instants (TA) and (TM), and (TM) and (TB) B) for each vector trace (KI) belonging to said set (TP), two triangles (TRA) and (TRB) are defined when possible, such therefore: the vertices of (TRA) are: the position of the vehicle at (TA), the position of the vehicle at (TB), and the point of the ground traced by (KI) and the vertices of (TRB) are: the position of the vehicle a (TB), the position of the vehicle a (TC), and said plot point; C) the relevant angles of the triangles (TRA) and (TRB) are calculated by carrying out the following operations: a) three versors, (KIA), (KIM) and (KIB), belonging to the said trace (KI), and associated respectively with the time instants (TA), (TM) and (TB), are extracted from the said trace b) the angle between the vectors (KIA) and (UA) is calculated, which is also the angle (ALPHA) of the triangle ( TRA) c) the angle between the vectors (KIA) and (KIM) is calculated, which is also the angle (BETA) of the triangle (TRA) d) the angle between the opposite of the vector (UB) is calculated ) and the vector (KIB), which is also the angle (ALPHA) of the triangle (TRB) and) the angle between the vectors (KIB) and (KIM) is calculated, which is also the angle (BETA ) of the triangle (TRB) D) (RHO) is calculated by multiplying the sine of the angle (ALPHA) of (TRA) with the sine of the angle (BETA) of (TRB), and then dividing the product by the product of the sine of the angle (ALPHA) of (TRB) with the sine of the angle (BETA) of (TRA); it is possible to combine multiple estimates of (RHO) - that in order to calculate the length of the movement of the vehicle between two moments in time, the navigation filter processes the said vector units (U), and the said ratio (RHO), and the measurements of the unit of inertial measurement, suitably processed, together with the value of the gravity acceleration vector or the value of the norm of this vector. 2. Method for estimating the state of a vehicle in navigation starting from the measurements of an inertial measurement unit that detects the angular velocities and accelerations of said vehicle, from the processing of photographic images of the terrain taken in successive moments, identifying on a series of characteristic points of the terrain, which are plotted on the various images, and which through an appropriate algorithm calculates the state of the vehicle in terms of speed, position, attitude and angular velocity, in a fixed reference system with respect to the ground, characterized by fact: - that in order to obtain the vector unit (U), which indicates the direction of the movement of the vehicle between two temporal instants, a set of vectors (E) is first calculated, which in the absence of measurement errors would all be orthogonal to the said versor (U), and subsequently the vector closest to the orthogonality to said set of vectors is determined by means of a least squares procedure ( E) and that in this way better approximates the real unit vector (U); - that to obtain the ratio, (RHO), between the lengths of the movements of the vehicle, respectively, from (TA) to (TM), and from (TM) to (TB), where (TA), (TM) and ( TB) are three consecutive time instants, first calculate the angles of two triangles, having respectively the following vertices: a) the position of the vehicle a (TA), the position of the vehicle a (TM), and a point on the ground traced images, and b) the position of the vehicle a (TM), the position of the vehicle a (TB), and the said plot point of the terrain, and subsequently the geometric sinus theorem is applied; - that in order to calculate the length of the movement of the vehicle between two instants of time, the said vector units (U), the said ratio (RHO), and the measures of the inertial measurement unit, suitably processed, are processed, together with the value of the acceleration vector of gravity or to the value of the norm of that vector. 3. Method for estimating the state of a vehicle in navigation according to claim 2, characterized in that an auxiliary reference system is also used to calculate the profile of said state, or the temporal trend of the state during a time interval , which coincides, at the initial instant of said time interval, with the fixed reference system with respect to the vehicle. 4. Method for estimating the state of a vehicle in navigation according to claim 2, characterized in that the result of the image processing, composed of a set of pixel tracks, where each pixel track describes the apparent movement of a characteristic point of the terrain in the sequence of images, is further processed to obtain a set (TP) of traces of versors, where each trace of versor, (KI), is a function of time and describes the movement of the aforementioned characteristic point in a system fixed reference with respect to the ground. 5. Method for estimating the state of a vehicle in navigation according to claim 2, characterized in that to calculate the unit vector, (U), which indicates the direction of movement of the vehicle between two instants of time, the following operations are carried out: - the set of traces (TP) is processed, obtained by processing the images and measurements of the inertial measurement unit, to first define a set of planes in space, all containing, in the absence of measurement errors, the said unit vector ( U), and then to define a set of vectors, (E), unitary and orthogonal to said set of planes; - the most orthogonal vector unit to the said set of vectors (E) is calculated, analytically minimizing the sum of the squares of the scalar products with the vectors of the said set. 6. Method for estimating the state of a vehicle in navigation according to claim 2, characterized by the fact that to calculate the ratio, (RHO), between the lengths of the movements of the vehicle respectively from (TA) to (TM), and from (TM) a (TB), where (TA), (TM) and (TB) are three time instants for which there is at least one pixel trace (KI) starting at (TA) or earlier, and ending at (TB ) or afterwards, the following operations are carried out: - the directions (UA) and (UB) of the vehicle movements are calculated respectively between (TA) and (TM), and between (TM) and (TB); - two triangles are defined, (TRA) and (TRB), having the following vertices respectively: pixel (KI), and b) the position of the vehicle a (TM), the position of the vehicle a (TB), and the point of the terrain traced by said pixel trace (KI); - the set of traces (TP), that is the result of the processing of the images and of the measurements of the inertial measurement unit, is used together with the vectors (UA) and (UB), to calculate the angles of the said two triangles ( TRA) and (TRB); - the said ratio, (RHO), is calculated between the lengths of the displacements, using the said angles of the triangles (TRA) and (TRB), and applying the geometric theorem of sines; it is possible to combine multiple estimates of (RHO). 7. Method for estimating the state of a vehicle in navigation according to claim 2, characterized in that to calculate the speed of the vehicle at a certain time instant (TA), and the gravity acceleration vector, the following operations are carried out: - two other time instants, (TM) and (TB), are used to calculate the said vector units (UA) and (UB), and the ratio (RHO); - the values calculated in the previous step are used, together with the measures of the inertial measurement unit, appropriately processed, to calculate the vector (DELTA_R) that indicates the movement of the vehicle from (TA) to (TM); - if the gravity vector is not known, but only its norm is known, then starting from said vector (DELTA_R), and from the value of the norm of the gravity vector, and from other values obtained previously, the gravity vector is determined; - starting from the said gravity vector, and from other values obtained previously, the speed in the instant in time (TA) is calculated. 8. Method for estimating the state of a vehicle in navigation according to claim 2, characterized by the fact that, also using the measurements of an altimeter, then the displacement between two temporal instants (DELTA_R) is calculated by carrying out the following operations: - the direction, (U), of the said displacement vector is calculated; - the altimeter measurements are used to calculate the projection of the said displacement vector along the measurement direction of the altimeter; - the values of said direction (U), of said altimeter measurement direction, and of said projection are used to calculate the length of said displacement (DELTA_R). 9. Method for estimating the state of a vehicle in navigation according to claim 2, characterized by the fact that, also receiving the measurements of a LIDAR sensor, scanning or flash, then the displacement, (DELTA_R), between two instants is calculated temporal, by carrying out the following operations: - the direction, (U), of said displacement vector is calculated, using the procedure described in claim 5; - using the said direction, the length of the said displacement is determined by maximizing the overlap between the points of the ground measured with the LIDAR scans obtained in the said two temporal instants. 10. Method for estimating the state of a vehicle in navigation according to claim 2, characterized in that using as input data also a map of the observed terrain, which also includes an ortho-image, or a matrix of pixels, referred to a planetocentric reference system, which indicates the aspect of the observed terrain, then the following operations are carried out to calculate the profile of the state of the vehicle in the said reference system: - a comparison is made between said ortho-image and the images observed by the vehicle, to obtain a set of points on the ground, where both the planetocentric coordinates and the coordinates indicating the apparent position of the point on one or more acquired images are available for each point of this set; - for each said image, the coordinates are processed on the image of said points, to obtain a set of vector units that indicate the directions in which said points are located, with respect to the vehicle, in said planetocentric reference system; - the position of the vehicle in the said planetocentric reference system is calculated, defining a ray for each pair of said point and versor, and then defining a function which, for each point of the three-dimensional space, evaluates the sum of the squared distances between said point of space and the half-lines previously defined, and finally minimizes said function by calculating, by means of an analytical procedure, the point for which the gradient of said function is zero. 1. Device to estimate the state of a moving vehicle, composed of an inertial measurement unit (IMU), measuring the angular velocities and the accelerations of said vehicle, by a camera (CAM) and by a device (PROC) for the processing of the terrain photographic images taken at successive instants, identifying a set of characteristic points of the terrain, which are tracked on the different images, and by a navigation filter (NF) which using a suitable algorithm calculates the state of the vehicle in terms of velocity, position , attitude and angular velocity, in a reference frame fixed with respect to the ground, characterized in that: - the navigation filter, in order to get a unit vector (U), indicating the direction of the displacement of the vehicle between two time instants (T1) and (T2), performs the following two computing steps: A) calculates at first a set of vectors, (E), which in case of no measurement errors would be all orthogonal to the said unit vector (U), by performing the following operations: A.1) integrates the angular velocity measurements of the inertial measurement unit in order to obtain the profile of the attitude, i.e. the temporal behavior of the attitude during a time interval, with respect to a reference frame fixed with respect to the ground A.2) utilizes the said attitude profile in order to process the output of the image processing device, i.e. the set of pixel tracks where each pixel track describes the apparent motion of a characteristic point of the terrain in the sequence of the images, in order to obtain a set (TP) of tracks of unit vectors, where each unit vector track is a function of time and describes the motion of said characteristic point in a reference frame fixed with respect to the ground A.3) the set (E) is constructed by performing the following computations on each member (KI) of a subset of (TP): A.3.1) the values of (KI) at (T1) and (T2), indicated respectively with (KI1) and (KI2), are extracted, A.3.2) the normalized vector cross product of (KI1) and (KI2) , indicated with (KCI), is computed, A.3.3) (KCI) is inserted in the set (E) B) determines, through the method of the least squares, the vector closer to the perpendicular to the said set of vectors ( E) and that in this way better approximates the actual unit vector (U); - to obtain the ratio, (RHO), between the lengths of the displacements of the vehicle, respectively in the timeframe from (TA) to (TM) and from (TM) to (TB), where (TA), (TM) and (TB) are three successive time instants, the navigation filter performs the following computations: A) computes, by using the procedure described above, the vectors (UA) and (UB), that indicate the directions of the displacements of the vehicle respectively between time instants (TA) and (TM), and (TM) and (TB) B) for each unit vector track (KI) that is a member of the said set (TP), two triangles, (TRA) and (TRB ), are defined when possible, such that the vertices of (TRA) are: the position of the vehicle at time (TA), the position of the vehicle at time (TM), and the point on the terrain tracked by (KI) and the vertices of (TRB) are: the position of the vehicle at time (TM), the position of the vehicle at time (TB), and the said tracked point of the terrain, C) the relevant angles of the triangles (TRA ) and (T RB) are computed by performing the following operations: a) three unit vectors, (KIA), (KIM) and (KIB), belonging to the said pixel track (KI), and associated respectively to the time instants (TA), ( TM) and (TB), are extracted from the said pixel track b) the angle between vectors (KIA) and (UA), which is also the angle (ALPHA) of the triangle (TRA), is computed, c) the angle between vectors (KIA) and (KIM), which is also the angle (BETA) of the triangle (TRA), is computed, d) the angle between the opposite of the vector (UB), and the vector (KIB), is computed, which is also the angle (ALPHA) of the triangle (TRB), is computed, e) the angle between vectors (KIB) and (KIM), which is also the angle (BETA) of the triangle (TRB), is computed, D) (RHO) is then computed by multiplying the sine of the angle (ALPHA) of (TRA) with the sine of the angle (BETA) of (TRB), and then dividing that product with the product of the sine of the angle (ALPHA) of (TRB) with the sine of the angle (BETA) of (BETWEEN); multiple estimates of (RHO) can be combined - to calculate the length of the displacement of the vehicle between two time instants, the navigation filter processes the said unit vectors (U), the said ratio (RHO), and the measurements of the inertial measurement unit, conveniently treated, together with the value of the gravity acceleration vector or the value of the norm of such vector. 2. Method to estimate the state of a moving vehicle, on the base of the measurements of an inertial measurement unit, sensing the angular velocities and the accelerations of said vehicle, and of the processing of the photographic images of the terrain taken at successive instants, identifying a series of characteristic points of the terrain, which are tracked on the different images, and that by a suitable algorithm calculates the state of the vehicle in terms of velocity, position, attitude and angular velocity, in a reference frame fixed with respect to the ground and characterized in that: - in order to get the unit vector (U), indicating the direction of the displacement of the vehicle between two time instants, calculates at first a set of vectors, (E), which in case of no measurement errors would be orthogonal to the said unit vector (U), and then determines, through the method of the least squares, the vector closer to the perpendicular to the said set of vectors (E) and that in this way better approximates the actual unit vector (U); - to obtain the ratio, (RHO), between the lengths of the displacements of the vehicle, respectively in the timeframe from (TA) to (TM) and from (TM) to (TB), where (TA), (TM) and (TB) are three successive time instants, at first the angles of two triangles are calculated, having respectively the following vertices: a) the position of the vehicle at time (TA), the position of the vehicle at time (TM), and one of the points on the terrain tracked in the images, and b) the position of the vehicle at time (TM), the position of the vehicle at time (TB), and the said tracked point of the terrain, and then the triangle law of sines is applied; - to calculate the length of the displacement of the vehicle between two time instants, the said unit vectors (U), the said ratio (RHO), and the measurements of the inertial measurement unit, conveniently treated, are processed together with the value of the gravity acceleration vector or the value of the norm of such vector. 2. Method to estimate the state of a moving vehicle, on the base of the measurements of an inertial measurement unit, sensing the angular velocities and the accelerations of said vehicle, and of the processing of the photographic images of the terrain taken at successive instants , identifying a series of characteristic points of the terrain, which are tracked on the different images, and that by a suitable algorithm calculates the state of the vehicle in terms of velocity, position, attitude and angular velocity, in a reference frame fixed with respect to the ground and characterized in that: - in order to get the unit vector (U), indicating the direction of the displacement of the vehicle between two time instants, calculates at first a set of vectors, (E), which in case of no measurement errors would be orthogonal to the said unit vector (U), and then determines, through the method of the least squares, the vector closer to the perpendicular to the said set of vectors (E) and that in this way better approximates the actual unit vector (U); - to obtain the ratio, (RHO), between the lengths of the displacements of the vehicle, respectively in the timeframe from (TA) to (TM) and from (TM) to (TB), where (TA), (TM) and (TB) are three successive time instants, at first the angles of two triangles are calculated, having respectively the following vertices: a) the position of the vehicle at time (TA), the position of the vehicle at time (TM), and one of the points on the terrain tracked in the images, and b) the position of the vehicle at time (TM), the position of the vehicle at time (TB), and the said tracked point of the terrain, and then the triangle law of sines is applied; - to calculate the length of the displacement of the vehicle between two time instants, the said unit vectors (U), the said ratio (RHO), and the measurements of the inertial measurement unit, conveniently treated, are processed together with the value of the gravity acceleration vector or the value of the norm of such vector. 3. Method as in Claim 2 to estimate the state of a moving vehicle, characterized in that to calculate the profile of said state, i.e. the temporal behaviour of the state during a time interval, an auxiliary reference system is also used, that coincides, at the initial time of said time interval, with the reference system fixed with respect to the vehicle. 3. Method as in Claim 2 to estimate the state of a moving vehicle, characterized in that to calculate the profile of said state, i.e. the temporal behavior of the state during a time interval, an auxiliary reference system is also used, that coincides, at the initial time of said time interval, with the reference system fixed with respect to the vehicle. 4. Method as in Claim 2 to estimate the state of a moving vehicle, characterized in that the result of the processing of the images, composed of a set of pixel tracks, where each pixel track describes the apparent motion of a characteristic point of the terrain in the sequence of the images, is further processed in order to obtain a set (TP) of tracks of unit vectors, where each unit vector track, (KI), is a function of time and describes the motion of said characteristic point in a reference frame fixed with respect to the ground. 4. Method as in Claim 2 to estimate the state of a moving vehicle, characterized in that the result of the processing of the images, composed of a set of pixel tracks, where each pixel track describes the apparent motion of a characteristic point of the terrain in the sequence of the images, is further processed in order to obtain a set (TP) of tracks of unit vectors, where each unit vector track, (KI), is a function of time and describes the motion of said characteristic point in a reference frame fixed with respect to the ground. 5. Method as in Claim 2 to estimate the state of a moving vehicle, characterized in that, to calculate the unit vector, (U), indicating the direction of the displacement of the vehicle between two time instants, the following operations are performed: - the set of tracks, (TP), obtained by processing the images and the measurements of the inertial measurement unit is processed to define at first a set of planes in space, all containing, in case of no measurement errors, the said unit vector (U), and then to define a set of unit vectors, (E), orthogonal to the said set of planes. - the unit vector closer to the perpendicular to the said set of vectors (E) is calculated, analytically minimizing the sum of the squares of the scalar products with the vectors of said set. 5. Method as in Claim 2 to estimate the state of a moving vehicle, characterized in that, to calculate the unit vector, (U), indicating the direction of the displacement of the vehicle between two time instants, the following operations are performed: - the set of tracks, (TP), obtained by processing the images and the measurements of the inertial measurement unit is processed to define at first a set of planes in space, all containing, in case of no measurement errors, the said unit vector (U), and then to define a set of unit vectors, (E), orthogonal to the said set of planes. - the unit vector closer to the perpendicular to the said set of vectors (E) is calculated, analytically minimizing the sum of the squares of the scalar products with the vectors of said set. 6. Method as in Claim 2 to estimate the state of a moving vehicle, characterized in that, to calculate the ratio, (RHO), between the lengths of the displacements of the vehicle respectively in the timeframe from (TA) to (TM) and in the timeframe from (TM) to (TB), where (TA), (TM) and (TB) are three successive time instants for which at least one pixel track exists (KI) that starts at (TA) or before, and ends at (TB) of after, the following operations are performed: - the directions (UA) and (UB) of the displacements of the vehicle respectively between time (TA) and (TM), and between (TM) and (TB) are calculated; - two triangles, (TRA) and (TRB), are defined having respectively the following vertices: a) the position of the vehicle at time (TA), the position of the vehicle at time (TM), and the point of the terrain tracked in the said pixel track (KI), and b) the position of the vehicle at time (TM), the position of the vehicle at time (TB), and the point of the terrain tracked in the said pixel track (KI); - the set of tracks, (TP), obtained by processing the images and the measurements of the inertial measurement unit, is used together with the vectors (UA) and (UB), to calculate the angles of said triangles (TRA) and (TRB) - the said ratio, (RHO), between the lengths of the displacements, is calculated, by using the said angles of the triangles (TRA) and (TRA), and applying the triangle law of sines; multiple estimates of (RHO) can be combined 6. Method as in Claim 2 to estimate the state of a moving vehicle, characterized in that, to calculate the ratio, (RHO), between the lengths of the displacements of the vehicle respectively in the timeframe from (TA) to (TM) and in the timeframe from (TM) to (TB), where (TA), (TM) and (TB) are three successive time instants for which at least one pixel track exists (KI ) that starts at (TA) or before, and ends at (TB) of after, the following operations are performed: - the directions (UA) and (UB) of the displacements of the vehicle respectively between time (TA) and (TM), and between (TM) and (TB) are calculated; - two triangles, (TRA) and (TRB), are defined having respectively the following vertices: a) the position of the vehicle at time (TA), the position of the vehicle at time (TM), and the point of the terrain tracked in the said pixel track (KI), and b) the position of the vehicle at time (TM), the position of the vehicle at time (TB), and the point of the terrain tracked in the said pixel track (KI) ; - the set of tracks, (TP), obtained by processing the images and the measurements of the inertial measurement unit, is used together with the vectors (UA) and (UB), to calculate the angles of said triangles (TRA) and ( TRB) - the said ratio, (RHO), between the lengths of the displacements, is calculated, by using the said angles of the triangles (TRA) and (TRA), and applying the triangle law of sines; multiple estimates of (RHO) can be combined 7. Method as in Claim 2 to estimate the state of a moving vehicle, characterized in that, to calculate the velocity of the vehicle in a given time instant (TA), and the gravity acceleration vector, the following operations are performed: - other two time instants, (TM) and (TB), are used to calculate the said unit vectors (UA) and (UB) and the ratio (RHO); - the values calculated at the previous step are used, together with the measurements of the inertial measurement unit, conveniently processed, to calculate the vector (DELTA_R) representing the displacement of the vehicle from (TA) to (TM); - if the gravity acceleration vector is not known, but only its norm is known, then from the said vector (DELTA_R), and from the value of the gravity acceleration norm, and from other values previously obtained, the gravity acceleration vector is determined; - from said gravity acceleration vector, and from others values previously obtained, the velocity at the time instant (TA) is calculated. 7. Method as in Claim 2 to estimate the state of a moving vehicle, characterized in that, to calculate the velocity of the vehicle in a given time instant (TA), and the gravity acceleration vector, the following operations are performed: - other two time instants, (TM) and (TB), are used to calculate the said unit vectors (UA) and (UB) and the ratio (RHO); - the values calculated at the previous step are used, together with the measurements of the inertial measurement unit, conveniently processed, to calculate the vector (DELTA_R) representing the displacement of the vehicle from (TA) to (TM); - if the gravity acceleration vector is not known, but only its norm is known, then from the said vector (DELTA_R), and from the value of the gravity acceleration norm, and from other values previously obtained, the gravity acceleration vector is determined; - from said gravity acceleration vector, and from others values previously obtained, the velocity at the time instant (TA) is calculated. 8. Method as in Claim 2 to estimate the state of a moving vehicle, characterized in that, using also the measurements of an altimeter, then the displacement, (DELTA_R), between two time instants, is calculated by performing the following operations: - the direction, (U), of the said displacement vector is calculated; - the measurements of the altimeter are used to calculate the projection of the said displacement vector along the direction of the measurement of the altimeter; - the values of the said direction (U), of the said direction of measurement of the altimeter, and of the said projection are used to calculate the length of the said displacement (DELTA_R). 8. Method as in Claim 2 to estimate the state of a moving vehicle, characterized in that, using also the measurements of an altimeter, then the displacement, (DELTA_R), between two time instants, is calculated by performing the following operations: - the direction, (U), of the said displacement vector is calculated; - the measurements of the altimeter are used to calculate the projection of the said displacement vector along the direction of the measurement of the altimeter; - the values of the said direction (U), of the said direction of measurement of the altimeter, and of the said projection are used to calculate the length of the said displacement (DELTA_R). 9. Method as in Claim 2 to estimate the state of a moving vehicle, characterized in that, having available also the measurements of a LIDAR sensor, of the scanning type or flash type, then the displacement, (DELTA_R), between two time instants is calculated by performing the following operations: - the direction, (U), of the said displacement vector is calculated using the method described in Claim 5; - using said direction, the length of said displacement is determined by maximizing the overlapping between the points of the terrain measured with the LIDAR scans in the said two time instants. 9. Method as in Claim 2 to estimate the state of a moving vehicle, characterized in that, having available also the measurements of a LIDAR sensor, of the scanning type or flash type, then the displacement, (DELTA_R), between two time instants is calculated by performing the following operations: - the direction, (U), of the said displacement vector is calculated using the method described in Claim 5; - using said direction, the length of said displacement is determined by maximizing the overlapping between the points of the terrain measured with the LIDAR scans in the said two time instants. 10. Method as in Claim 2 to estimate the state of a moving vehicle, characterized in that, using as input data also a map of the observed terrain, including also an orthoimage, i.e. a pixel matrix, referred to a planeto-centric reference system, showing the aspect of the observed terrain, then the following operations are performed to calculate the profile of the state of the vehicle in the said reference system: - a comparison is done between the said orthoimage and the images observed by the vehicle, to obtain a set of points of the terrain, where for each point of said set, both the planetocentric coordinates and the coordinates giving the apparent position of the point on one or more of the acquired images are available; - for each of said images, a processing of the coordinates of said points on the image is performed, to obtain a set of unit vectors which give the directions of the position of said points with respect to the vehicle, in the said planetocentric reference frame; - the position of the vehicle in the said planetocentric reference system is calculated, defining a half line for each pair of said point and unit vector, and then defining a function that, for each point in the three-dimensional space, calculates the sum of the squared distances between said point in space and the half lines previously defined, and finally minimizes the said function calculating, with an analytical method, the point for which the gradient of said function is null.10. Method as in Claim 2 to estimate the state of a moving vehicle, characterized in that, using as input data also a map of the observed terrain, including also an orthoimage, i.e. a pixel matrix, referred to a planeto-centric reference system, showing the aspect of the observed terrain, then the following operations are performed to calculate the profile of the state of the vehicle in the said reference system: - a comparison is done between the said orthoimage and the images observed by the vehicle, to obtain a set of points of the terrain, where for each point of said set, both the planetocentric coordinates and the coordinates giving the apparent position of the point on one or more of the acquired images are available; - for each of said images, a processing of the coordinates of said points on the image is performed, to obtain a set of unit vectors which give the directions of the position of said points with respect to the vehicle, in the said planetocentric reference frame ; - the position of the vehicle in the said planetocentric reference system is calculated, defining a half line for each pair of said point and unit vector, and then defining a function that, for each point in the three-dimensional space, calculates the sum of the squared distances between said point in space and the half lines previously defined, and finally minimizes the said function calculating, with an analytical method, the point for which the gradient of said function is null.
IT000024A 2010-09-04 2011-09-02 DEVICE AND METHOD FOR THE ESTIMATE OF THE STATE OF A VEHICLE IN NAVIGATION ITCS20110024A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
PCT/IB2011/053858 WO2012029052A1 (en) 2010-09-04 2011-09-02 Device and method to estimate the state of a moving vehicle
EP11773849.2A EP2612111B8 (en) 2010-09-04 2011-09-02 Device and method to estimate the state of a moving vehicle
IT000024A ITCS20110024A1 (en) 2011-09-02 2011-09-02 DEVICE AND METHOD FOR THE ESTIMATE OF THE STATE OF A VEHICLE IN NAVIGATION
US13/784,222 US8886366B2 (en) 2010-09-04 2013-03-04 Device and method to estimate the state of a moving vehicle

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT000024A ITCS20110024A1 (en) 2011-09-02 2011-09-02 DEVICE AND METHOD FOR THE ESTIMATE OF THE STATE OF A VEHICLE IN NAVIGATION

Publications (1)

Publication Number Publication Date
ITCS20110024A1 true ITCS20110024A1 (en) 2013-03-03

Family

ID=44872469

Family Applications (1)

Application Number Title Priority Date Filing Date
IT000024A ITCS20110024A1 (en) 2010-09-04 2011-09-02 DEVICE AND METHOD FOR THE ESTIMATE OF THE STATE OF A VEHICLE IN NAVIGATION

Country Status (1)

Country Link
IT (1) ITCS20110024A1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008024772A1 (en) * 2006-08-21 2008-02-28 University Of Florida Research Foundation, Inc. Image-based system and method for vehicle guidance and navigation

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008024772A1 (en) * 2006-08-21 2008-02-28 University Of Florida Research Foundation, Inc. Image-based system and method for vehicle guidance and navigation

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
LI ET AL: "Vision-aided inertial navigation for pinpoint planetary landing", AEROSPACE SCIENCE AND TECHNOLOGY, ELSEVIER MASSON, FR, vol. 11, no. 6, 19 July 2007 (2007-07-19), pages 499 - 506, XP022158291, ISSN: 1270-9638, DOI: 10.1016/J.AST.2007.04.006 *

Similar Documents

Publication Publication Date Title
EP2612111B1 (en) Device and method to estimate the state of a moving vehicle
Tao et al. A multi-sensor fusion positioning strategy for intelligent vehicles using global pose graph optimization
US8494225B2 (en) Navigation method and aparatus
CN114018274A (en) Vehicle positioning method and device and electronic equipment
Indelman et al. Factor graph based incremental smoothing in inertial navigation systems
Lambert et al. Field testing of visual odometry aided by a sun sensor and inclinometer
Mostafa et al. A novel GPS/RAVO/MEMS-INS smartphone-sensor-integrated method to enhance USV navigation systems during GPS outages
US10565715B2 (en) Method of estimating the motion of a carrier with respect to an environment and calculation device for navigation system
RU2762143C2 (en) System for determining course and angular spatial position made with the possibility of functioning in polar region
Caruso et al. An inverse square root filter for robust indoor/outdoor magneto-visual-inertial odometry
Nguyen et al. Developing a cubature multi-state constraint Kalman filter for visual-inertial navigation system
Sanyal Optimal attitude estimation and filtering without using local coordinates part i: Uncontrolled and deterministic attitude dynamics
CN110779514A (en) Hierarchical Kalman fusion method and device for auxiliary attitude determination of bionic polarization navigation
Chauchat et al. Invariant Smoothing with low process noise
US20150073707A1 (en) Systems and methods for comparing range data with evidence grids
ITCS20110024A1 (en) DEVICE AND METHOD FOR THE ESTIMATE OF THE STATE OF A VEHICLE IN NAVIGATION
Hasan et al. Comparative study on wavelet filter and thresholding selection for GPS/INS data fusion
Zivan et al. Dual quaternion Kalman filters for spacecraft relative navigation
Yuan et al. Dynamic initial alignment of the MEMS-based low-cost SINS for AUV based on unscented Kalman filter
RU2634082C1 (en) Method of complexing strapdown inertial navigation systems
CN116819510A (en) Multi-source fusion self-adaptive filter structure construction method based on observability
Bayat et al. An augmented strapdown inertial navigation system using jerk and jounce of motion for a flying robot
Neusypin et al. Correction of autonomous navigation systems using the Kalman filter
Segal et al. Stereoscopic vision-based spacecraft relative state estimation
Do et al. An Adaptive Approach based on Multi-State Constraint Kalman Filter for UAVs