<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xml:lang="en" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="nlm-ta">Sensors</journal-id>
<journal-title>Sensors</journal-title>
<issn pub-type="epub">1424-8220</issn>
<publisher>
<publisher-name>Molecular Diversity Preservation International (MDPI)</publisher-name></publisher></journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3390/s120202219</article-id>
<article-id pub-id-type="publisher-id">sensors-12-02219</article-id>
<article-categories>
<subj-group>
<subject>Article</subject></subj-group></article-categories>
<title-group>
<article-title>Improving Planetary Rover Attitude Estimation via MEMS Sensor Characterization</article-title></title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Hidalgo</surname><given-names>Javier</given-names></name><xref ref-type="aff" rid="af1-sensors-12-02219"><sup>1</sup></xref><xref ref-type="corresp" rid="c1-sensors-12-02219"><sup>★</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Poulakis</surname><given-names>Pantelis</given-names></name><xref ref-type="aff" rid="af2-sensors-12-02219"><sup>2</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Köhler</surname><given-names>Johan</given-names></name><xref ref-type="aff" rid="af2-sensors-12-02219"><sup>2</sup></xref><xref ref-type="fn" rid="fn1-sensors-12-02219"><sup>†</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Del-Cerro</surname><given-names>Jaime</given-names></name><xref ref-type="aff" rid="af1-sensors-12-02219"><sup>1</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Barrientos</surname><given-names>Antonio</given-names></name><xref ref-type="aff" rid="af1-sensors-12-02219"><sup>1</sup></xref></contrib></contrib-group>
<aff id="af1-sensors-12-02219">
<label>1</label> Centro de Automática y Robótica, UPM-CSIC, José Gutiérrez Abascal 2, Madrid 28006, Spain; E-Mails: <email>j.cerro@upm.es</email> (J.D.-C.) <email>antonio.barrientos@upm.es</email> (A.B.)</aff>
<aff id="af2-sensors-12-02219">
<label>2</label> Automation and Robotics Section, ESA/ESTEC, Noordwijk 2200 AG, The Netherlands; E-Mail: <email>pantelis.poulakis@esa.int</email></aff>
<author-notes><fn id="fn1-sensors-12-02219">
<label>†</label>
<p>Current address: The Swedish National Space Board, Solna SE-171 04, Sweden; E-Mail: <email>johan.kohler@snsb.se</email>.</p></fn>
<corresp id="c1-sensors-12-02219">
<label>★</label>Author to whom correspondence should be addressed; E-Mail: <email>jhidalgo@etsii.upm.es</email>; Tel.: +34-617-537-060.</corresp></author-notes>
<pub-date pub-type="collection">
<year>2012</year></pub-date>
<pub-date pub-type="epub">
<day>15</day>
<month>2</month>
<year>2012</year></pub-date>
<volume>12</volume>
<issue>2</issue>
<fpage>2219</fpage>
<lpage>2235</lpage>
<history>
<date date-type="received">
<day>8</day>
<month>12</month>
<year>2011</year></date>
<date date-type="rev-recd">
<day>31</day>
<month>1</month>
<year>2012</year></date>
<date date-type="accepted">
<day>7</day>
<month>2</month>
<year>2012</year></date></history>
<permissions>
<copyright-statement>© 2012 by the authors; licensee MDPI, Basel, Switzerland</copyright-statement>
<copyright-year>2012</copyright-year>
<license>
<p>This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution license (<ext-link xlink:href="http://creativecommons.org/licenses/by/3.0/" ext-link-type="uri">http://creativecommons.org/licenses/by/3.0/</ext-link>).</p></license></permissions>
<abstract>
<p>Micro Electro-Mechanical Systems (MEMS) are currently being considered in the space sector due to its suitable level of performance for spacecrafts in terms of mechanical robustness with low power consumption, small mass and size, and significant advantage in system design and accommodation. However, there is still a lack of understanding regarding the performance and testing of these new sensors, especially in planetary robotics. This paper presents what is missing in the field: a complete methodology regarding the characterization and modeling of MEMS sensors with direct application. A reproducible and complete approach including all the intermediate steps, tools and laboratory equipment is described. The process of sensor error characterization and modeling through to the final integration in the sensor fusion scheme is explained with detail. Although the concept of fusion is relatively easy to comprehend, carefully characterizing and filtering sensor information is not an easy task and is essential for good performance. The strength of the approach has been verified with representative tests of novel high-grade MEMS inertia sensors and exemplary planetary rover platforms with promising results.</p></abstract>
<kwd-group>
<kwd>micro-electro-mechanical systems (MEMS)</kwd>
<kwd>inertial measurement unit (IMU)</kwd>
<kwd>inertial navigation system (INS)</kwd>
<kwd>sensor characterization</kwd>
<kwd>sensor fusion</kwd>
<kwd>attitude estimation</kwd>
<kwd>planetary rover</kwd></kwd-group></article-meta></front>
<body>
<sec sec-type="intro">
<label>1.</label>
<title>Introduction</title>
<p>Inertial sensors play a prominent role in the navigation of a wide range of vehicles, aiming at improving the onboard attitude estimation and enhancing the overall onboard localization capabilities. In particular for the case of planetary rovers, robust attitude estimation is critical for numerous operations, such as pointing the antenna for direct-to-earth or orbiter communications, controlling the body posture for maximum power generation by the solar panels and precision placement of instruments on scientific targets.</p>
<p>There are several areas on which the navigation and robotics research communities have focused their efforts over the years in order to integrate and improve the performance of an inertial measurements unit (IMU) onboard aerial/terrestrial/underwater vehicles. Methods for characterizing inertial sensor errors are discussed in [<xref ref-type="bibr" rid="b1-sensors-12-02219">1</xref>–<xref ref-type="bibr" rid="b3-sensors-12-02219">3</xref>]. Specifically, in [<xref ref-type="bibr" rid="b2-sensors-12-02219">2</xref>], El-Sheimy <italic>et al</italic>. provided a thorough methodology of using the Allan Variance method to characterize the noise terms of inertial sensor data and established a relationship between the Allan Variance and the noise Power Spectral Density (PSD). However, a direct application is not given. Several approaches have also been proposed for modelling inertial sensors and their error behaviour. More specifically, the work in [<xref ref-type="bibr" rid="b4-sensors-12-02219">4</xref>] introduces a procedure for modeling low-cost sensors and in [<xref ref-type="bibr" rid="b5-sensors-12-02219">5</xref>] a detailed Allan variance analysis is provided. In addition to this, recent works in sensor fusion such as [<xref ref-type="bibr" rid="b6-sensors-12-02219">6</xref>,<xref ref-type="bibr" rid="b7-sensors-12-02219">7</xref>] build upon the idea that correctly incorporated inertial data in an intelligence and precise manner is still a challenge in the data fusion domain.</p>
<p>This paper presents elements that are considered to be missing in the literature on the topic, which is a systematic End-to-End (E2E) approach for incorporating an inertial sensor in the localization scheme of a mobile robot. All the steps of utilizing an inertial sensor for attitude estimation are addressed in a unified methodology, starting from the characterization of the dominant sensor errors, then deriving a suitable sensor error model, subsequently designing an adequate Kalman filter and finally implementing an onboard sensor fusion scheme. The complete chain of the steps and performance of the algorithms is verified by implementation onboard planetary rover breadboards developed by the European Space Agency (ESA) and tested in the Planetary Utilization Testbed (PUTB) of the European Space Research and Technology Centre (ESTEC). The presented E2E approach offers a sufficiently generic methodology to be applied to any inertial sensor, addressing for the first time in a systematic way all the steps involved from choosing an inertial sensor up to designing an onboard sensor fusion scheme, while proposing a high performance attitude reference system for planetary rovers fully based on tactical grade MEMS IMU.</p>
<p>A schematic overview of the proposed E2E methodology can be seen in <xref ref-type="fig" rid="f1-sensors-12-02219">Figure 1</xref>. In this paper every block of <xref ref-type="fig" rid="f1-sensors-12-02219">Figure 1</xref> is presented in a separate section. In the beginning of each section the applicability of each block is critically discussed and the respective theory is elaborated upon. In the first two sections on sensor error characterization and modelling the theory is directly applied to a modern prototype IMU based on MEMS components, the Imego IMT30.</p>
<p>Section 2 discusses the sensor error characterization method based on the Allan Variance technique and analyzes the results of this method on the IMT30 prototype IMU. Section 3 presents the proposed sensor error modeling approach and derives the model of IMT30. The filtering technique based on Unscented Kalman Filter as well as the rover’s attitude kinematics and the state vector are analyzed in Section 4. The proposed architecture for the rover’s attitude estimation scheme is explained in Section 5. Subsequently, Section 6 describes the experimental testing and results of the presented E2E approach onboard a rover platform. Finally, the paper concludes with a discussion on the results.</p></sec>
<sec>
<label>2.</label>
<title>Sensor Error Characterization</title>
<p>Characterizing the inertial sensor errors can be a intensive process due to the number of tests and the statistical analysis required. The output of inertial sensors are influenced by a wide range of error sources. They can be classified as deterministic and stochastic errors. Deterministic errors are disturbances in which no randomness is involved and are likely to be temperature dependent in MEMS technology. Stochastic errors are disturbances in the signal introduced by random processes which are the counterpart to deterministic processes. There is some indeterminacy in its future evolution affecting the signal by noise in the sensor itself or in other electronic equipment (transducer). Moreover dedicated testing facilities are desirable, such as a seismic block and a rate table, which are not widely available in laboratories and the access to them can complicate the process. In most of the cases sensors manufacturers do not provide reliable sensor error analysis in order to be included in the filter design and thus the characterization process is often mandatory, especially considering new MEMS sensors development as that one tested in this activity.</p>
<p>The correlation-function approach and its corresponding transform in the frequency-domain, the Power Spectral Density (PSD), represent the basics of characterization and modeling of stochastic errors, having advantages and limitations. The Allan variance has gained importance due to the computational simplicity and quick adaptation to noise characterization of a variety of sensors. There are also few limitations in the mapping from the Allan variance to the spectrum however the analysis remains useful. This work applies the Allan variance to identify and characterize the type and magnitudes of the most dominant random errors.</p>
<sec>
<label>2.1.</label>
<title>Allan Variance Technique</title>
<p>The Allan variance <italic>σ</italic><sup>2</sup>(<italic>τ</italic>) provides direct information on the type and magnitude of various noise terms by splitting static measurement values into clusters. A statistical variance is computed among clusters of same size by taking collected values. The Allan variance of a cluster time of length <italic>τ</italic> is estimated as:
<disp-formula id="FD1">
<label>(1)</label>
<mml:math id="M1" display="block">
<mml:mrow>
<mml:msup>
<mml:mi>σ</mml:mi>
<mml:mn>2</mml:mn></mml:msup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>τ</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>N</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi>n</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mfrac>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi>n</mml:mi></mml:mrow></mml:munderover>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>Ω</mml:mi>
<mml:mo>¯</mml:mo></mml:mover>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mo>Ω</mml:mo>
<mml:mo>¯</mml:mo></mml:mover>
<mml:mi>k</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">]</mml:mo></mml:mrow>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mstyle></mml:mrow></mml:math></disp-formula>where <italic>N</italic> is the total amount of sensor values and Ω̄(<italic>t</italic>) represents the cluster average value of the output for a cluster which starts from the <italic>k<sup>th</sup></italic> data point and contains <italic>n</italic> data points depending on the length of <italic>τ</italic>. The Allan variance is plotted in a log-log graph as the standard deviation <italic>versus</italic> the cluster time <italic>τ</italic> in order to characterize the different noise terms (see <xref ref-type="fig" rid="f2-sensors-12-02219">Figure 2</xref>). Modeling of stochastic errors requires identifying its PSD function. There is a unique relationship between the Allan variance (time domain) and the PSD (frequency domain) of the random process defined by:
<disp-formula id="FD2">
<label>(2)</label>
<mml:math id="M2" display="block">
<mml:mrow>
<mml:msup>
<mml:mi>σ</mml:mi>
<mml:mn>2</mml:mn></mml:msup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>τ</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mn>4</mml:mn>
<mml:mrow>
<mml:msubsup>
<mml:mo>∫</mml:mo>
<mml:mn>0</mml:mn>
<mml:mi>∞</mml:mi></mml:msubsup>
<mml:mrow>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mo>Ω</mml:mo></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>f</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>sin</mml:mi></mml:mrow>
<mml:mn>4</mml:mn></mml:msup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>π</mml:mi>
<mml:mi>f</mml:mi>
<mml:mi>τ</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>π</mml:mi>
<mml:mi>f</mml:mi>
<mml:mi>τ</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mrow></mml:mrow>
<mml:mi mathvariant="italic">df</mml:mi></mml:mrow></mml:math></disp-formula>where <italic>S</italic><sub>Ω</sub>(<italic>f</italic>) is the PSD of the random process. The different random processes are characterized at various frequencies varying <italic>τ</italic> by using fitting methods. Further explanation of typical error presented in inertial sensors can be found in [<xref ref-type="bibr" rid="b8-sensors-12-02219">8</xref>]. The application of the technique using the prototype of an IMU is shown in the following.</p></sec>
<sec>
<label>2.2.</label>
<title>IMT30 Characterization</title>
<p>The Automation &amp; Robotics Section of ESA procured the prototype IMT30 IMU from the Imego [<xref ref-type="bibr" rid="b9-sensors-12-02219">9</xref>] Institute of Micro and Nanotechnology in order to assess its performance for planetary rover attitude estimation. The IMT30, though not space qualified, is a solid state six degrees of freedom IMU prototype based on MEMS components with small size and weight. Inside the case, the IMU is comprised of 3 accelerometers and 3 gyroscopes with electronics, temperature sensors and a Field-programmable Gate Array (FPGA) onboard.</p>
<p>As mentioned before, MEMS inertial sensor are likely influenced by the temperature. Temperature variation directly affects sensor bias and therefore will influence in the final analysis. Thermal drift needs to be identified and compensated in order to precisely characterize the stochastic errors underlying the sensor signal. Thermal drift for the gyroscope of the IMT30 was performed and analyzed, and is presented in <xref ref-type="table" rid="t1-sensors-12-02219">Table 1</xref> and shown in <xref ref-type="fig" rid="f3-sensors-12-02219">Figure 3</xref>. A simple linear regression perfectly fits the thermal drift.</p>
<sec>
<title>Test Setup</title>
<p>Five tests were conducted at the Metrology Laboratory of ESTEC, which is a semi-clean room equipped with an anti-vibration table (seismic block) in order to perform accurate static measurements (see <xref ref-type="fig" rid="f4-sensors-12-02219">Figure 4</xref>). Four hours of static data were collected per test on the seismic block by an external PC, with 16 bits resolution. According to Papoulis in [<xref ref-type="bibr" rid="b10-sensors-12-02219">10</xref>], to characterize a signal the sampling frequency should be at least six times the bandwidth of the sensor. The IMT30 gyros have a bandwidth of 100 Hz and the acquisition frequency was set to 976 Hz by the manufacturer. The data were subsequently analyzed using the Allan variance technique [<xref ref-type="bibr" rid="b8-sensors-12-02219">8</xref>].</p></sec>
<sec sec-type="results">
<title>Allan Variance Results</title>
<p>The results of applying the Allan variance to the recorded data is depicted in the plot of <xref ref-type="fig" rid="f5-sensors-12-02219">Figure 5</xref>. The graph shows that the angle random walk is the dominant error for short cluster times, where the curve fits a straight line of slope <italic>−</italic>(1/2). The numerical value of angle random walk <italic>N</italic> (see <xref ref-type="table" rid="t2-sensors-12-02219">Table 2</xref>) can be obtained by reading the slope line at <italic>τ</italic> = 1 and working out the <italic>N</italic> value from the angle random walk equation in the Allan variance (see <xref ref-type="table" rid="t3-sensors-12-02219">Table 3</xref>). Also a straight line of slope +(1/2) fits for the long cluster times part of the plot. The magnitude <italic>K</italic> (see <xref ref-type="table" rid="t4-sensors-12-02219">Table 4</xref>) can be obtained by reading the slope line at <italic>τ</italic> = 3 and obtaining the <italic>K</italic> coefficient from the corresponding equation in <xref ref-type="table" rid="t3-sensors-12-02219">Table 3</xref>. The center of the curve shows a small flat part identified by a zero slope. It characterizes a bias instability <italic>B</italic>, which represents the best stability of the run. The conventional unit for the bias instability is <italic><sup>°</sup>/h</italic> [<xref ref-type="bibr" rid="b11-sensors-12-02219">11</xref>] and gives the sensor grade being categorized as <italic>tactical-grade</italic> (see <xref ref-type="table" rid="t5-sensors-12-02219">Table 5</xref>). Further information about inertial sensor categories can be found in [<xref ref-type="bibr" rid="b12-sensors-12-02219">12</xref>].</p></sec></sec></sec>
<sec>
<label>3.</label>
<title>Sensor Modeling</title>
<sec>
<label>3.1.</label>
<title>General</title>
<p>Inertial Navigation Systems (INS) performance can be significantly enhanced by the incorporation of a sensor error model in the state estimation process of a Kalman filter. Here a sensor model is proposed that is balanced between accuracy and complexity and composed of deterministic and stochastic sensor errors. Some deterministic errors, like the thermal drift, are directly compensated after the sensor read-out, others, like the scale factor and the misalignment, are included in the model. It should also be noted that the proposed sensor model covers the commonly encountered errors in inertial sensors but does not include g-sensitive drift, scale factor asymmetry or other errors which depend on the design of a particular sensor. The sensor model is given by:
<disp-formula id="FD3">
<label>(3)</label>
<mml:math id="M3" display="block">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>ω</mml:mi>
<mml:mo>˜</mml:mo></mml:mover>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>I</mml:mi>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>3</mml:mn></mml:mrow></mml:msub>
<mml:mo>+</mml:mo>
<mml:mi>M</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">SF</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="italic">MA</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo>
<mml:mi>ω</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">n</mml:mi>
<mml:mi>s</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></disp-formula>where <bold><italic>ω̃</italic></bold>(<italic>t</italic>) is the 3 × 1 continuous time measured sensor value (<italic>i.e.</italic>, [<italic>p, q, r</italic>]<italic><sup>T</sup></italic> coming from gyros), <italic>M</italic> is the deterministic errors matrix corresponding to the misalignment (<italic>MA</italic>) and scale factor (<italic>SF</italic>) assumed to be temperature independent and <bold><italic>n</italic></bold><italic><sub>s</sub></italic>(<italic>t</italic>) is the stochastic noise process.</p>
<p>Modeling a stochastic error requires identifying its PSD function in order to incorporate it in <bold><italic>n</italic></bold><italic><sub>s</sub></italic>(<italic>t</italic>). Stochastic errors are modeled as a linear time invariant system, by having the knowledge of the PSD function of the output and assuming unit white noise input. The associated PSD function is used to shape a stationary input into a given spectral function. It is known as the shaping filter approach [<xref ref-type="bibr" rid="b13-sensors-12-02219">13</xref>] and the spectral function is unique for each stochastic noise type. The emphasis of the unified model is to combine the equations for the different types of noise described in <xref ref-type="table" rid="t3-sensors-12-02219">Table 3</xref>. Depending on the kind of noise presented, there are certain limitations in the definition of the linear equations of the shaping filter. It is referred to as the quantization noise because Kalman Filter theory only performs on differential equations driven by white noise, and thus quantization noise will have a noise source which is the derivative of the white noise. Under this situation different consideration should be taken using acceptable approximations, like those ones detailed in [<xref ref-type="bibr" rid="b14-sensors-12-02219">14</xref>,<xref ref-type="bibr" rid="b15-sensors-12-02219">15</xref>]. Although this limitation affects the model design, common stochastic errors presented in inertial sensor can be directly incorporated in the model.</p></sec>
<sec>
<label>3.2.</label>
<title>IMT30 Gyroscope Model</title>
<p>The IMT30 error characterization depicts the angle random walk and the rate angle random walk as the dominant stochastic errors for gyros. The first error is affected by white noise while the second one affects the bias instability, or gyros drift. The PSD of the random walk is defined by <italic>N</italic><sup>2</sup> (see <xref ref-type="table" rid="t3-sensors-12-02219">Table 3</xref>) and it can be directly incorporated into the model. The PSD of the rate angle random walk is defined by <italic>K</italic><sup>2</sup><italic>/s</italic><sup>2</sup> and it is incorporated in the model by <italic>K/s</italic>, replacing <italic>jω</italic> by <italic>s</italic> in Laplace domain. Consequently, the derived gyros model is:
<disp-formula id="FD4a">
<label>(4a)</label>
<mml:math id="M4" display="block">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>ω</mml:mi>
<mml:mo>˜</mml:mo></mml:mover>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>I</mml:mi>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>3</mml:mn></mml:mrow></mml:msub>
<mml:mo>+</mml:mo>
<mml:mi>M</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">SF</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="italic">MA</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo>
<mml:mi>ω</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>β</mml:mi>
<mml:mi>ω</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">n</mml:mi>
<mml:mrow>
<mml:mi mathvariant="italic">rw</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></disp-formula>
<disp-formula id="FD4b">
<label>(4b)</label>
<mml:math id="M5" display="block">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>β</mml:mi>
<mml:mo>˙</mml:mo></mml:mover>
<mml:mi>ω</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">n</mml:mi>
<mml:mrow>
<mml:mi mathvariant="italic">rrw</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></disp-formula>where <bold><italic>ω̃</italic></bold>(<italic>t</italic>) is the sensor readout, <bold><italic>ω</italic></bold>(<italic>t</italic>) is the ideal value, <bold><italic>β</italic></bold><italic><sub>ω</sub></italic>(<italic>t</italic>) is the bias and <bold><italic>n</italic></bold><italic><sub>rω</sub></italic>(<italic>t</italic>) and <bold><italic>n</italic></bold><italic><sub>rrω</sub></italic>(<italic>t</italic>) are independent zero-mean Gaussian white noise of the characterized stochastic processes defined with
<disp-formula id="FD5a">
<label>(5a)</label>
<mml:math id="M6" display="block">
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo stretchy="false">{</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">n</mml:mi>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi>ω</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">n</mml:mi>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi>ω</mml:mi></mml:mrow>
<mml:mi>T</mml:mi></mml:msubsup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>τ</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">}</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>I</mml:mi>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>3</mml:mn></mml:mrow></mml:msub>
<mml:msup>
<mml:mi>N</mml:mi>
<mml:mn>2</mml:mn></mml:msup>
<mml:mi>δ</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi>τ</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></disp-formula>
<disp-formula id="FD5b">
<label>(5b)</label>
<mml:math id="M7" display="block">
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo stretchy="false">{</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">n</mml:mi>
<mml:mrow>
<mml:mi mathvariant="italic">rr</mml:mi>
<mml:mi>ω</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">n</mml:mi>
<mml:mrow>
<mml:mi mathvariant="italic">rr</mml:mi>
<mml:mi>ω</mml:mi></mml:mrow>
<mml:mi>T</mml:mi></mml:msubsup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>τ</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">}</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>I</mml:mi>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>3</mml:mn></mml:mrow></mml:msub>
<mml:msup>
<mml:mi>K</mml:mi>
<mml:mn>2</mml:mn></mml:msup>
<mml:mi>δ</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi>τ</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></disp-formula>where <italic>E</italic> denotes expectation, <italic>δ</italic> (<italic>t − τ</italic>) is the Dirac delta function, <italic>N</italic> and <italic>K</italic> are the angle random walk and rate random walk coefficients of <xref ref-type="table" rid="t2-sensors-12-02219">Tables 2</xref> and <xref ref-type="table" rid="t4-sensors-12-02219">4</xref> in 
<inline-formula>
<mml:math id="M8">
<mml:mrow>
<mml:mi mathvariant="italic">rad</mml:mi>
<mml:mo>/</mml:mo>
<mml:msqrt>
<mml:mi>s</mml:mi></mml:msqrt></mml:mrow></mml:math></inline-formula> and 
<inline-formula>
<mml:math id="M9">
<mml:mrow>
<mml:mi mathvariant="italic">rad</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>/</mml:mo>
<mml:msqrt>
<mml:mi>s</mml:mi></mml:msqrt></mml:mrow></mml:math></inline-formula> respectively.</p></sec></sec>
<sec>
<label>4.</label>
<title>Unscented Filtering</title>
<p>Filtering is the next essential step and aims at the estimation of the defined state from noise and error affected sensor readings. In the frame of the presented methodology for rover attitude estimation, the authors propose the use of the Unscented Kalman Filter (UKF) due to the clear advantages in propagating the state estimation of the system over the Extended Kalman Filter (EKF). In the UKF, given a <italic>n × n</italic> covariance matrix <italic>P</italic>, a set of 2<italic>n</italic> sigma points are generated from the columns of the matrices 
<inline-formula>
<mml:math id="M10">
<mml:mrow>
<mml:mo>±</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:mi>n</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi>λ</mml:mi>
<mml:mo stretchy="false">]</mml:mo>
<mml:mi>P</mml:mi></mml:mrow></mml:msqrt></mml:mrow></mml:math></inline-formula>, where λ ≥ 0. The sigma points completely capture the true mean and covariance of the prior state estimation and when propagated through the nonlinear system, the UKF captures the posterior mean and covariance more accurately than the conventional EKF [<xref ref-type="bibr" rid="b7-sensors-12-02219">7</xref>,<xref ref-type="bibr" rid="b16-sensors-12-02219">16</xref>,<xref ref-type="bibr" rid="b17-sensors-12-02219">17</xref>].</p>
<sec>
<label>4.1.</label>
<title>Rover Attitude Kinematics</title>
<p>It is proposed that the rover attitude is expressed by a quaternion as a four parameters representation of a transformation matrix. Quaternions do not involve transcendental functions, and thus, kinematics are bilinear and free of singularities. The quaternion is defined by:
<disp-formula id="FD6">
<label>(6)</label>
<mml:math id="M11" display="block">
<mml:mrow>
<mml:mi mathvariant="bold-italic">q</mml:mi>
<mml:mo>≡</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold-italic">ϱ</mml:mi>
<mml:mi>T</mml:mi></mml:msup>
<mml:msub>
<mml:mi>q</mml:mi>
<mml:mn>4</mml:mn></mml:msub>
<mml:mo stretchy="false">]</mml:mo></mml:mrow>
<mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:math></disp-formula>with <bold><italic>ϱ</italic></bold> = [<italic>q</italic><sub>1</sub>, <italic>q</italic><sub>2</sub>, <italic>q</italic><sub>3</sub>]<italic><sup>T</sup></italic> = <italic>ê</italic> sin(<italic>ϑ/</italic>2) and <italic>q</italic><sub>4</sub> = cos(<italic>ϑ/</italic>2) where <italic>ê</italic> is the axis of rotation and <italic>ϑ</italic> the angle of rotation. The attitude kinematics equation is given in the continuous time domain by:
<disp-formula id="FD7">
<label>(7)</label>
<mml:math id="M12" display="block">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">q</mml:mi>
<mml:mo>˙</mml:mo></mml:mover>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>2</mml:mn></mml:mfrac>
<mml:mo>Ξ</mml:mo>
<mml:mo stretchy="false">[</mml:mo>
<mml:mi mathvariant="bold-italic">q</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">]</mml:mo>
<mml:mi mathvariant="bold-italic">ω</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></disp-formula>where <bold><italic>ω</italic></bold>(<italic>t</italic>) is the 3 × 1 angular rate vector and
<disp-formula id="FD8">
<label>(8)</label>
<mml:math id="M13" display="block">
<mml:mrow>
<mml:mo>Ξ</mml:mo>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>q</mml:mi>
<mml:mn>4</mml:mn></mml:msub>
<mml:msub>
<mml:mi>I</mml:mi>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>3</mml:mn></mml:mrow></mml:msub>
<mml:mo>+</mml:mo>
<mml:mo stretchy="false">[</mml:mo>
<mml:mi mathvariant="bold-italic">ϱ</mml:mi>
<mml:mo>×</mml:mo>
<mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold-italic">ϱ</mml:mi>
<mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow></mml:mrow></mml:math></disp-formula></p>
<p>The delta quaternion is usually denoted in the literature by <bold><italic>δ</italic></bold><italic>q ≡</italic> [<bold><italic>δϱ</italic></bold><italic><sup>T</sup> δq</italic><sub>4</sub>]<italic><sup>T</sup></italic> which will be used later in the propagation. The delta quaternion represents small variation of rovers attitude in each filter iteration and it can be expressed as Modified Rodrigues Parameters (MRP) since it will never reach the singularity in practice (at 360° for MRP). The relation between Modified Rodrigues Parameters and delta quaternion is given by:
<disp-formula id="FD9">
<label>(9)</label>
<mml:math id="M14" display="block">
<mml:mrow>
<mml:mi mathvariant="bold-italic">δ</mml:mi>
<mml:mi mathvariant="bold-italic">p</mml:mi>
<mml:mo>≡</mml:mo>
<mml:mi>f</mml:mi>
<mml:mo stretchy="false">[</mml:mo>
<mml:mi mathvariant="bold-italic">δ</mml:mi>
<mml:mi mathvariant="bold-italic">ϱ</mml:mi>
<mml:mo>/</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>a</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi>δ</mml:mi>
<mml:msub>
<mml:mi>q</mml:mi>
<mml:mn>4</mml:mn></mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:math></disp-formula>where <italic>a</italic> is a parameter between 0 and 1 and <italic>f</italic> is a scale factor. When <italic>f</italic> = <italic>a</italic> = 1 the formula gives the standard three component representation for the MRP [<xref ref-type="bibr" rid="b16-sensors-12-02219">16</xref>]. It should also be noted here that MRP provide a very compact notation and a multiplicative approach, to avoid quaternion renormalization, deals with successive multiplication of delta quaternion updates after propagating through the system.</p></sec>
<sec>
<label>4.2.</label>
<title>State Vector</title>
<p>The equations in this section refer to the discrete time domain. The tilde (<italic>ã</italic>) notation indicates magnitude measurement, the hat (<italic>â</italic>) refers to magnitude estimation and the plus (<sup>+</sup>) and minus (<italic>−</italic>) superscripts indicate post- and pre-updates respectively. Using Kalman formulation, we define the state-vector of the system in <xref ref-type="disp-formula" rid="FD10">Equation (10)</xref> by using the MRP and by incorporating the derived sensor model.
<disp-formula id="FD10">
<label>(10)</label>
<mml:math id="M15" display="block">
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mi mathvariant="bold-italic">δ</mml:mi>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">p</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo></mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>β</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo></mml:msubsup></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow></mml:mrow>
<mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:math></disp-formula>
<inline-formula>
<mml:math id="M16">
<mml:mrow>
<mml:mi mathvariant="bold-italic">δ</mml:mi>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">p</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> represents the delta quaternion using the MRP and 
<inline-formula>
<mml:math id="M17">
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>β</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> is the estimate gyros bias of the model. Given a estimate 
<inline-formula>
<mml:math id="M18">
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>β</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> of the gyros model, the post update angular velocity and propagated gyros bias follows:
<disp-formula id="FD11a">
<label>(11a)</label>
<mml:math id="M19" display="block">
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>ω</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>ω</mml:mi>
<mml:mo>˜</mml:mo></mml:mover>
<mml:mi>k</mml:mi></mml:msub>
<mml:mo>−</mml:mo>
<mml:mi>M</mml:mi>
<mml:msub>
<mml:mover accent="true">
<mml:mi>ω</mml:mi>
<mml:mo>˜</mml:mo></mml:mover>
<mml:mi>k</mml:mi></mml:msub>
<mml:mo>−</mml:mo>
<mml:msubsup>
<mml:mi>C</mml:mi>
<mml:mi>g</mml:mi>
<mml:mi>b</mml:mi></mml:msubsup>
<mml:msubsup>
<mml:mi>ω</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>e</mml:mi></mml:mrow>
<mml:mi>g</mml:mi></mml:msubsup>
<mml:mo>−</mml:mo>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>β</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo></mml:msubsup></mml:mrow></mml:math></disp-formula>
<disp-formula id="FD11b">
<label>(11b)</label>
<mml:math id="M20" display="block">
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>β</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mo>−</mml:mo></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>β</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo></mml:msubsup></mml:mrow></mml:math></disp-formula>where 
<inline-formula>
<mml:math id="M21">
<mml:mrow>
<mml:msubsup>
<mml:mi>C</mml:mi>
<mml:mi>g</mml:mi>
<mml:mi>b</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> is the transformation attitude matrix from geographic frame to body frame, 
<inline-formula>
<mml:math id="M22">
<mml:mrow>
<mml:msubsup>
<mml:mi>ω</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>e</mml:mi></mml:mrow>
<mml:mi>g</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> is the angular earth rotation vector in the geographic frame and it is expressed as
<disp-formula id="FD12">
<label>(12)</label>
<mml:math id="M23" display="block">
<mml:mrow>
<mml:msubsup>
<mml:mi>ω</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>e</mml:mi></mml:mrow>
<mml:mi>g</mml:mi></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:msub>
<mml:mi>ω</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>e</mml:mi></mml:mrow></mml:msub>
<mml:mo> </mml:mo>
<mml:mi>cos</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mo>Φ</mml:mo>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>ω</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>e</mml:mi></mml:mrow></mml:msub>
<mml:mo> </mml:mo>
<mml:mi>sin</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mo>Φ</mml:mo>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">]</mml:mo></mml:mrow>
<mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:math></disp-formula>where <italic>ω<sub>i/e</sub></italic> is the Earth angular velocity equal to 7.292115 × 10<italic><sup>−</sup></italic><sup>5</sup><italic>rad/s</italic> according to the WGS-84 Earth reference model and Φ the latitude [<xref ref-type="bibr" rid="b18-sensors-12-02219">18</xref>].</p>
<p>The propagated quaternion can be described by the discrete time attitude kinematics <xref ref-type="disp-formula" rid="FD7">Equation (7)</xref> as a function of the post-update estimate rover angular velocity 
<inline-formula>
<mml:math id="M24">
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>ω</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> and the quaternion 
<inline-formula>
<mml:math id="M25">
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>q</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula>,
<disp-formula id="FD13">
<label>(13)</label>
<mml:math id="M26" display="block">
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">q</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mo>−</mml:mo></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mo>Ω</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>ω</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo></mml:msubsup>
<mml:mo stretchy="false">)</mml:mo>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">q</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo></mml:msubsup></mml:mrow></mml:math></disp-formula>with
<disp-formula>
<mml:math id="M27" display="block">
<mml:mrow>
<mml:mo>Ω</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>ω</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo></mml:msubsup></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>ψ</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo></mml:msubsup></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>ψ</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo></mml:msubsup></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mtext>cos</mml:mtext>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>0.5</mml:mn>
<mml:mrow>
<mml:mo stretchy="false">‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>ω</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo></mml:msubsup></mml:mrow>
<mml:mo stretchy="false">‖</mml:mo></mml:mrow>
<mml:mo>Δ</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow></mml:mrow></mml:math></disp-formula>where 
<inline-formula>
<mml:math id="M28">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>k</mml:mi></mml:msub>
<mml:mo>≡</mml:mo>
<mml:mtext>cos</mml:mtext>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>0.5</mml:mn>
<mml:mrow>
<mml:mo stretchy="false">‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>ω</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo></mml:msubsup></mml:mrow>
<mml:mo stretchy="false">‖</mml:mo></mml:mrow>
<mml:mo>Δ</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:msub>
<mml:mi>I</mml:mi>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>3</mml:mn></mml:mrow></mml:msub>
<mml:mo>−</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>ψ</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo></mml:msubsup>
<mml:mo>×</mml:mo></mml:mrow>
<mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula>, 
<inline-formula>
<mml:math id="M29">
<mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>ψ</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo></mml:msubsup>
<mml:mo>≡</mml:mo>
<mml:mi>sin</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>0.5</mml:mn>
<mml:mrow>
<mml:mo stretchy="false">‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>ω</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo></mml:msubsup></mml:mrow>
<mml:mo stretchy="false">‖</mml:mo></mml:mrow>
<mml:mo>Δ</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>ω</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo></mml:msubsup></mml:mrow>
<mml:mo>/</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>ω</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo></mml:msubsup></mml:mrow>
<mml:mo stretchy="false">‖</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:mrow></mml:math></inline-formula> and Δ<italic>t</italic> is the sampling interval of the gyro. The discrete process noise covariance matrix is given [<xref ref-type="bibr" rid="b16-sensors-12-02219">16</xref>] by
<disp-formula id="FD14">
<label>(14)</label>
<mml:math id="M30" display="block">
<mml:mrow>
<mml:msub>
<mml:mi>Q</mml:mi>
<mml:mi>k</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msup>
<mml:mi>N</mml:mi>
<mml:mn>2</mml:mn></mml:msup>
<mml:mo>Δ</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>+</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>3</mml:mn></mml:mfrac>
<mml:msup>
<mml:mi>K</mml:mi>
<mml:mn>2</mml:mn></mml:msup>
<mml:mo>Δ</mml:mo>
<mml:msup>
<mml:mi>t</mml:mi>
<mml:mn>3</mml:mn></mml:msup>
<mml:mo stretchy="false">)</mml:mo>
<mml:msub>
<mml:mi>I</mml:mi>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>2</mml:mn></mml:mfrac>
<mml:msup>
<mml:mi>K</mml:mi>
<mml:mn>2</mml:mn></mml:msup>
<mml:mo>Δ</mml:mo>
<mml:msup>
<mml:mi>t</mml:mi>
<mml:mn>2</mml:mn></mml:msup></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:msub>
<mml:mi>I</mml:mi>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>2</mml:mn></mml:mfrac>
<mml:msup>
<mml:mi>K</mml:mi>
<mml:mn>2</mml:mn></mml:msup>
<mml:mo>Δ</mml:mo>
<mml:msup>
<mml:mi>t</mml:mi>
<mml:mn>2</mml:mn></mml:msup></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:msub>
<mml:mi>I</mml:mi>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msup>
<mml:mi>K</mml:mi>
<mml:mn>2</mml:mn></mml:msup>
<mml:mo>Δ</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:msub>
<mml:mi>I</mml:mi>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>]</mml:mo></mml:mrow></mml:mrow></mml:math></disp-formula></p></sec></sec>
<sec>
<label>5.</label>
<title>Sensor Fusion Scheme</title>
<p>In the case of robots and vehicles, the sensor fusion scheme design is highly dependent on the type and amount of sensors, on the type of vehicle (aerial, terrestrial, underwater, <italic>etc</italic>.) and the operational conditions (e.g., high/low dynamics). In this section a scheme is presented for attitude estimation based only on an inertial sensor with a planetary rover as the target platform. Though planetary rovers have low dynamics, the principles of the design can be applicable to other robotic vehicles as well.</p>
<p>The architecture of the proposed sensor fusion scheme can be seen in <xref ref-type="fig" rid="f6-sensors-12-02219">Figure 6</xref>, where both the accelerometers and the gyros of the IMU are utilized and separate Kalman filters are implemented. The Unscented Attitude Filter (UAF) uses a quaternion based on <xref ref-type="disp-formula" rid="FD10">Equation (10)</xref> and a system model based on <xref ref-type="disp-formula" rid="FD13">Equation (13)</xref> for the estimation of the rover’s pitch, roll and yaw angles. It utilizes the accelerometers as inclinometers to correct the pitch and roll estimations in the correction step of the filter. A Quasi-static Regime Estimator (QR) similar to implementations in [<xref ref-type="bibr" rid="b6-sensors-12-02219">6</xref>,<xref ref-type="bibr" rid="b19-sensors-12-02219">19</xref>] is incorporated in the scheme. It estimates the dynamic/static regime of the rover by matching the measured gravity vector to the one already pre-programmed in the algorithm (theoretical value based on rover location) and thus gives an indication as to whether the accelerometer readings are reliable for the UAF correction step. QR system model is defined to estimate the instantaneous gravity magnitude as:
<disp-formula id="FD15">
<label>(15)</label>
<mml:math id="M31" display="block">
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mi mathvariant="italic">gk</mml:mi>
<mml:mo>+</mml:mo></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mi mathvariant="italic">gk</mml:mi>
<mml:mo>−</mml:mo></mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:mi mathvariant="italic">gk</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">[</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mi mathvariant="italic">gk</mml:mi></mml:mrow></mml:msub>
<mml:mo>−</mml:mo>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mi mathvariant="italic">gk</mml:mi>
<mml:mo>−</mml:mo></mml:msubsup>
<mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:math></disp-formula>where <italic>x̂</italic><sub><italic>gk</italic></sub> is the gravity estimation, <italic>K</italic><sub><italic>gk</italic></sub> the filter gain and 
<inline-formula>
<mml:math id="M32">
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mi mathvariant="italic">gk</mml:mi></mml:mrow></mml:msub>
<mml:mo>=</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>¨</mml:mo></mml:mover>
<mml:mi>k</mml:mi></mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo>¨</mml:mo></mml:mover>
<mml:mi>k</mml:mi></mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>z</mml:mi>
<mml:mo>¨</mml:mo></mml:mover>
<mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:msqrt></mml:mrow></mml:math></inline-formula>. The accelerometer values are considered as three independent Gaussian random variables. The boolean variable γ<sub><italic>gk</italic>+1</sub> of the QR informs to the UAF how to combine both signals in a dynamic mode, by connecting/disconnecting accelerometers data in the correction step of the UAF filter. Therefore, when high accelerations are sensed on rover platform the QR informs to the UAF (via the γ<sub><italic>gk</italic>+1</sub> boolean value) of not including the pitch and roll estimation from the gravity vector.</p></sec>
<sec sec-type="results">
<label>6.</label>
<title>Experimental Testing and Results</title>
<sec>
<label>6.1.</label>
<title>Experimental Test Setup</title>
<p>The tests were carried out at the ESTEC PUTB, a 9 m × 9 m testbed that resembles a planetary surface (see <xref ref-type="fig" rid="f7-sensors-12-02219">Figure 7</xref>). Around the PUTB a set of eight infrared emitting and sensing cameras are mounted to the walls, which sense reflective markers mounted on rover platform. These cameras are part of the Vicon [<xref ref-type="bibr" rid="b20-sensors-12-02219">20</xref>] system which can deduct and track position and orientation of objects equipped with such reflective markers. The precision in the attitude measurement precision of the Vicon system in the PUTB setup is in the order of 0.1°–0.2°. A planetary rover breadboard, the Lunar Rover Model (LRM) developed by ESA for engineering investigations of locomotion capabilities, was used as a representative platform to mount the IMT30 IMU for the tests (see <xref ref-type="fig" rid="f8-sensors-12-02219">Figure 8</xref>).</p>
<p>The software onboard the rover is in charge of obtaining raw values directly from the IMU. Afterwards, those values are calibrated and compensated using temperature values. Since planetary rovers do not have high dynamics the values are low-pass filtered at 10 Hz. Finally, the sensor fusion scheme runs in the last stage of the process, filtering and combining inertial information. Four test trajectories were implemented:
<list list-type="bullet">
<list-item>
<p>Straight line trajectory of 5 m, on flat ground. Rover speed at 1 cm/s.</p></list-item>
<list-item>
<p>Straight line trajectory of 5 m with obstacle negotiation at the same speed as previous one.</p></list-item>
<list-item>
<p>Ackerman steering of 180°, with radius 1.25 m. Rover linear speed at 1 cm/s.</p></list-item>
<list-item>
<p>Turn-on-spot between 0° to 180° and <italic>−</italic>180° to 0° at 0.02 rad/s angular velocity.</p></list-item></list></p></sec>
<sec sec-type="results">
<label>6.2.</label>
<title>Experimental Results</title>
<p>Results from the four test trajectories can be seen in <xref ref-type="fig" rid="f9-sensors-12-02219">Figures 9</xref> and <xref ref-type="fig" rid="f10-sensors-12-02219">10</xref>, where results of the Vicon system, the sensor fusion scheme and integration of gyros are compared. Integration of gyros are dominated by the drift. <xref ref-type="table" rid="t6-sensors-12-02219">Table 6</xref> also summarizes the maximum error between the Vicon reference measurement and the output of the scheme developed with the presented methodology (brown <italic>versus</italic> blue lines in figures). <xref ref-type="fig" rid="f9-sensors-12-02219">Figures 9(a)</xref> and <xref ref-type="fig" rid="f9-sensors-12-02219">9(b)</xref> show that gyros bias instability is the main error for straight maneuvers as it was expected. <xref ref-type="fig" rid="f9-sensors-12-02219">Figures 9(c)</xref> and <xref ref-type="fig" rid="f9-sensors-12-02219">9(d)</xref> depict good results for pitch and roll from the fusion of accelerometers and gyros using the QR estimator. <xref ref-type="fig" rid="f9-sensors-12-02219">Figure 9(a)</xref> and <xref ref-type="fig" rid="f10-sensors-12-02219">10(a)</xref> show that results in the heading are better for the straight path than for the Ackerman steering. This is due to the fact that the scale factor error influences the measurement when measuring rate rotation. The scale factor error of the gyros was not possible to properly characterize since a rate-table was not available at the time of the error characterization tests. The results depicted in <xref ref-type="fig" rid="f10-sensors-12-02219">Figure 10(b)</xref> confirm this, indicating that the scale factor is the dominant gyro error for the sensor fusion scheme when the rover performs turning maneuvers (see <xref ref-type="table" rid="t6-sensors-12-02219">Table 6</xref>).</p></sec></sec>
<sec sec-type="discussion">
<label>7.</label>
<title>Discussion and Future Work</title>
<p>An E2E methodology for increasing the performance of inertial sensors within a localization framework, with application to planetary rovers, has been presented. The approach has been validated with good test results of a new MEMS sensors on a representative space robotic platform. The applicability of the Allan Variance as a straightforward error characterization method and the importance of incorporating the characterization results in a sensor error model was demonstrated. In this line, an open source software package in R [<xref ref-type="bibr" rid="b21-sensors-12-02219">21</xref>] has been developed in order to allow new tests in the future. The experimental tests onboard the LRM clearly showed that inertial sensor dominant errors are motion or trajectory dependent. In the case of the IMT30 it has been proved through experimental testing that the scale factor is one of the dominant errors in turning manoeuvres of the rover. This result highlights the importance of performing as complete error characterization as possible. Additionally it was observed that when the scale factor is not dominant, the reference measurement system error is in the order of magnitude of the sensor fusion scheme error (see <xref ref-type="table" rid="t6-sensors-12-02219">Table 6</xref>). The Vicon system accuracy could be improved for future measurements by using more than the available eight cameras, but already the achieved accuracy is acceptable. On the positive side, the comparative magnitude of the Vicon measurement error to the sensor scheme error also demonstrates good performance of the presented methodology and the developed algorithms.</p>
<p>In the context of planetary rovers, the proper question would be whether this kind of lighter MEMS IMUs would be considered for future mission programmes. It is essential to understand how it will affect to the whole INS subsystem and consequently to mission operation. Exploration rovers in Mars set a baseline of error in heading and attitude angle within a range of two degrees after one sol (Martian day—24.6 h). Around 2–4 h traveling are typically considered depending on power availability and scientific interests. The distance traveled by current rover concepts is about 100 m per sol. Taking the values of the straight line test and supposing the Vicon system as a perfect truth, the pose error will be 3 cm after 5 m traveling. The error after 100 m would be less that one percent, which is in the range of the best performance for visual algorithms. Therefore, the accuracy of such inertial sensors tested on this work represents a precision enough to travel several meters without external correction using <italic>tactical-grade</italic> inertial sensors. Small correction would also be necessary from other localization techniques like visual odometry or a sun sensor, but the fact that the error from MEMS inertial sensors shows encouraging results may allow to design for visual corrections on the rover pose at low frequency rate. This is an advantage because the computational power is very limited in space avionics.</p>
<p>Attitude propagation of Mars Exploration Rovers (MER) [<xref ref-type="bibr" rid="b22-sensors-12-02219">22</xref>] is computed by the Navigation/Attitude Estimator (NATE) [<xref ref-type="bibr" rid="b23-sensors-12-02219">23</xref>] considering only gyros integration since the quality of the optic gyroscopes are good enough (≈1°<italic>/h</italic> drift was observed [<xref ref-type="bibr" rid="b23-sensors-12-02219">23</xref>]), keeping the software simple. However, such <italic>navigation-grade</italic> IMU with more accurate sensors based on optic fiber technology are heavier, challenging the mass allocation and power consumption. The work presented in this manuscript demonstrates that nowadays good results can also be achieved with <italic>tactical-grade</italic> lighter MEMS inertial sensors properly characterizing and modeling the sensor noises and incorporating them in the sensor fusion design.</p>
<p>Future research will address the incorporation of a sun sensor to the sensor fusion scheme ending in a complete filter structure for the three angles with heading correction. The rover stops every few meters for path planning and obstacle mapping from navigation and hazards cameras, re-localization algorithm will be possible to implement in future developments when traveling longer distances. In addition, computational cost improvements of the presented approach will investigate the potential advantages of the Squared-Root Unscented Kalman Filter [<xref ref-type="bibr" rid="b24-sensors-12-02219">24</xref>].</p></sec></body>
<back>
<ack>
<p>The research described in this paper was performed in the Automation and Robotics laboratory of the European Space Research and Technology Center (ESTEC) of the European Space Agency (ESA). It was partly founded by the National Graduate Program (ES-2006-0089) and the project ROTOS: Multi-Robot system for outdoor infrastructures protection (DPI2010-17998) of the Spain Ministry of Science and Innovation and ROBOCITY 2030 project (S-0505/DPI/00023) of the Community of Madrid.</p></ack>
<ref-list>
<title>References</title>
<ref id="b1-sensors-12-02219"><label>1.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Aggarwal</surname><given-names>P.</given-names></name><name><surname>Syed</surname><given-names>Z.</given-names></name><name><surname>Niu</surname><given-names>X.</given-names></name><name><surname>El-Sheimy</surname><given-names>N.</given-names></name></person-group><article-title>A standard testing and calibration procedure for low cost MEMS inertial sensors and units</article-title><source>J. Navigat</source><year>2008</year><volume>61</volume><fpage>323</fpage><lpage>336</lpage></citation></ref>
<ref id="b2-sensors-12-02219"><label>2.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>El-Sheimy</surname><given-names>N.</given-names></name><name><surname>Hou</surname><given-names>H.</given-names></name><name><surname>Niu</surname><given-names>X.</given-names></name></person-group><article-title>Analysis and modeling of inertial sensors using allan variance</article-title><source>IEEE Trans. Instrum. Meas</source><year>2008</year><volume>57</volume><fpage>140</fpage><lpage>149</lpage><pub-id pub-id-type="doi">10.1109/TIM.2007.908635</pub-id></citation></ref>
<ref id="b3-sensors-12-02219"><label>3.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Xiyuan</surname><given-names>C.</given-names></name></person-group><article-title>Modeling Random Gyro Drift by Time Series Neural Networks and By Traditional Method</article-title><conf-name>Proceedings of the International Conference on Neural Networks and Signal Processing</conf-name><conf-loc>Nanjing, China</conf-loc><conf-date>14–17 December 2003</conf-date><volume>1</volume><fpage>810</fpage><lpage>813</lpage></citation></ref>
<ref id="b4-sensors-12-02219"><label>4.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Xing</surname><given-names>Z.</given-names></name><name><surname>Gebre-Egziabher</surname><given-names>D.</given-names></name></person-group><article-title>Modeling and Bounding Low Cost Inertial Sensor Errors</article-title><conf-name>Proceedings of the Position, Location and Navigation Symposium</conf-name><conf-loc>Monterey, CA, USA</conf-loc><conf-date>5–8 May 2008</conf-date><fpage>1122</fpage><lpage>1132</lpage></citation></ref>
<ref id="b5-sensors-12-02219"><label>5.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Zhang</surname><given-names>X.</given-names></name><name><surname>Li</surname><given-names>Y.</given-names></name><name><surname>Mumford</surname><given-names>P.</given-names></name><name><surname>Rizos</surname><given-names>C.</given-names></name></person-group><article-title>Allan Variance Analysis on Error Characters of MEMS Inertial Sensors for an FPGA-Based GPS/INS System</article-title><conf-name>Proceedings of the International Symposium on GPS/GNSS</conf-name><conf-loc>Tokyo, Japan</conf-loc><conf-date>11–14 November 2008</conf-date><fpage>127</fpage><lpage>133</lpage></citation></ref>
<ref id="b6-sensors-12-02219"><label>6.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Suh</surname><given-names>Y.S.</given-names></name></person-group><article-title>Orientation estimation using a quaternion-based indirect Kalman filter with adaptive estimation of external acceleration</article-title><source>IEEE Trans. Instrum. Meas</source><year>2010</year><volume>59</volume><fpage>3296</fpage><lpage>3305</lpage><pub-id pub-id-type="doi">10.1109/TIM.2010.2047157</pub-id></citation></ref>
<ref id="b7-sensors-12-02219"><label>7.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Merwe</surname><given-names>R.V.D.</given-names></name><name><surname>Wan</surname><given-names>E.A.</given-names></name><name><surname>Julier</surname><given-names>S.</given-names></name></person-group><article-title>Sigma-Point Kalman Filters for Nonlinear Estimation and Sensor-Fusion: Applications to Integrated Navigation</article-title><conf-name>Proceedings of the AIAA Guidance, Navigation &amp; Control Conference</conf-name><conf-loc>Providence, RI, USA</conf-loc><conf-date>August 2004</conf-date><fpage>2004</fpage><lpage>5120</lpage></citation></ref>
<ref id="b8-sensors-12-02219"><label>8.</label><citation citation-type="book"><person-group person-group-type="author"><collab>IEEE</collab></person-group><source>Specification Format Guide and Test Procedure for Singe-Axis Interferometric Fiber Optic Gyros</source><comment>IEEE Std. 952-1997</comment><publisher-name>IEEE</publisher-name><publisher-loc>New York, NY, USA</publisher-loc><year>1998</year></citation></ref>
<ref id="b9-sensors-12-02219"><label>9.</label><citation citation-type="web"><person-group person-group-type="author"><collab>Imego Institute of Micro and Nanotechnology</collab></person-group><comment>Available online: <ext-link xlink:href="http://www.imego.com" ext-link-type="uri">http://www.imego.com</ext-link> (accessed on 3 February 2012).</comment></citation></ref>
<ref id="b10-sensors-12-02219"><label>10.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Papoulis</surname><given-names>A.</given-names></name><name><surname>Pillai</surname><given-names>S.U.</given-names></name><name><surname>Unnikrishna</surname><given-names>S.</given-names></name></person-group><source>Probability, Random Variables, and Stochastic Processes</source><publisher-name>McGraw-Hill</publisher-name><publisher-loc>New York, NY, USA</publisher-loc><year>2002</year></citation></ref>
<ref id="b11-sensors-12-02219"><label>11.</label><citation citation-type="book"><person-group person-group-type="author"><collab>IEEE</collab></person-group><source>Inertial Sensor Terminology</source><comment>IEEE Std. 1559-2009;</comment><publisher-name>IEEE</publisher-name><publisher-loc>New York, NY, USA</publisher-loc><year>2009</year></citation></ref>
<ref id="b12-sensors-12-02219"><label>12.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Titterton</surname><given-names>D.H.</given-names></name><name><surname>Weston</surname><given-names>J.L.</given-names></name></person-group><source>Strapdown Inertial Navigation Technology</source><edition>2nd ed</edition><publisher-name>American Institute of Aeronautics &amp; Astronautics</publisher-name><publisher-loc>Reston, VA, USA</publisher-loc><year>2005</year></citation></ref>
<ref id="b13-sensors-12-02219"><label>13.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Brown</surname><given-names>R.G.</given-names></name><name><surname>Hwang</surname><given-names>P.Y.C.</given-names></name></person-group><source>Introduction to Random Signals and Applied Kalman Filtering</source><edition>3rd ed</edition><publisher-name>John Wiley &amp; Sons, Inc</publisher-name><publisher-loc>Hoboken, NJ, USA</publisher-loc><year>1996</year></citation></ref>
<ref id="b14-sensors-12-02219"><label>14.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Savage</surname><given-names>P.G.</given-names></name></person-group><article-title>Analytical modeling of sensor quantization in strapdown inertial navigation error equations</article-title><source>J. Guid Control Dyn</source><year>2002</year><volume>25</volume><fpage>833</fpage><lpage>842</lpage><pub-id pub-id-type="doi">10.2514/2.4963</pub-id></citation></ref>
<ref id="b15-sensors-12-02219"><label>15.</label><citation citation-type="thesis"><person-group person-group-type="author"><name><surname>Nassar</surname><given-names>S.</given-names></name></person-group><article-title>Improving the Inertial Navigation System (INS) Error Model for INS and INS/DGPS Applications</article-title><comment>Ph.D. Thesis,</comment><publisher-name>Geomatics Engineering, University of Calgary</publisher-name><publisher-loc>Calgary, Canada</publisher-loc><year>2003</year></citation></ref>
<ref id="b16-sensors-12-02219"><label>16.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Crassidis</surname><given-names>J.L.</given-names></name><name><surname>Markley</surname><given-names>F.L.</given-names></name></person-group><article-title>Unscented filtering for spacecraft attitude estimation</article-title><source>J. Guid Control Dyn</source><year>2003</year><volume>26</volume><fpage>536</fpage><lpage>542</lpage><pub-id pub-id-type="doi">10.2514/2.5102</pub-id></citation></ref>
<ref id="b17-sensors-12-02219"><label>17.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Julier</surname><given-names>S.J.</given-names></name><name><surname>Uhlmann</surname><given-names>J.K.</given-names></name><name><surname>Durrant-Whyte</surname><given-names>H.F.</given-names></name></person-group><article-title>A New Approach for Filtering Nonlinear Systems</article-title><conf-name>Proceedings of the American Control Conference</conf-name><conf-loc>Seattle, WA, USA</conf-loc><conf-date>21–23 June 1995</conf-date><volume>3</volume><fpage>1628</fpage><lpage>1632</lpage></citation></ref>
<ref id="b18-sensors-12-02219"><label>18.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Rogers</surname><given-names>R.M.</given-names></name></person-group><source>Applied Mathematics in Integrated Navigation Systems</source><edition>2nd ed</edition><publisher-name>American Institute of Aeronautics &amp; Astronautics</publisher-name><publisher-loc>Reston, VA, USA</publisher-loc><year>2003</year></citation></ref>
<ref id="b19-sensors-12-02219"><label>19.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Caballero</surname><given-names>R.</given-names></name><name><surname>Armada</surname><given-names>M.</given-names></name></person-group><article-title>Adaptive Filtering for Biped Robots Sensorial Systems</article-title><conf-name>Proceedings of the 12th International Conference on Climbing and Walking Robots and the Support Technologies for Mobile Machines</conf-name><conf-loc>Istanbul, Turkey</conf-loc><conf-date>9–11 September 2009</conf-date></citation></ref>
<ref id="b20-sensors-12-02219"><label>20.</label><citation citation-type="web"><person-group person-group-type="author"><collab>Motion Capture Systems from Vicon</collab></person-group><comment>Available online: <ext-link xlink:href="http://www.vicon.com" ext-link-type="uri">http://www.vicon.com</ext-link> (accessed on 3 February 2012).</comment></citation></ref>
<ref id="b21-sensors-12-02219"><label>21.</label><citation citation-type="web"><person-group person-group-type="author"><name><surname>Hidalgo</surname><given-names>J. Allanvar</given-names></name></person-group><article-title>Allan Variance Analysis Package</article-title><comment>R: A Language and Environment for Statistical Computing, 2010. Available online: <ext-link xlink:href="http://cran.r-project.org/web/packages/allanvar/index.html" ext-link-type="uri">http://cran.r-project.org/web/packages/allanvar/index.html</ext-link> (accessed on 14 February 2012).</comment></citation></ref>
<ref id="b22-sensors-12-02219"><label>22.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Biesiadecki</surname><given-names>J.</given-names></name><name><surname>Baumgartner</surname><given-names>E.</given-names></name><name><surname>Bonitz</surname><given-names>R.</given-names></name><name><surname>Cooper</surname><given-names>B.</given-names></name><name><surname>Hartman</surname><given-names>F.</given-names></name><name><surname>Leger</surname><given-names>P.</given-names></name><name><surname>Maimone</surname><given-names>M.</given-names></name><name><surname>Maxwell</surname><given-names>S.</given-names></name><name><surname>Trebi-Ollennu</surname><given-names>A.</given-names></name><name><surname>Tunstel</surname><given-names>E.</given-names></name><name><surname>Wright</surname><given-names>J.</given-names></name></person-group><article-title>Mars exploration rover surface operations: Driving opportunity at Meridiani Planum</article-title><source>IEEE Robot. Autom. Mag</source><year>2006</year><volume>13</volume><fpage>63</fpage><lpage>71</lpage></citation></ref>
<ref id="b23-sensors-12-02219"><label>23.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Ali</surname><given-names>K.S.</given-names></name><name><surname>Vanelli</surname><given-names>C.A.</given-names></name><name><surname>Biesiadecki</surname><given-names>J.J.</given-names></name><name><surname>Maimone</surname><given-names>M.W.</given-names></name><name><surname>Cheng</surname><given-names>Y.</given-names></name><name><surname>Martin</surname><given-names>A.M.S.</given-names></name><name><surname>Alexander</surname><given-names>J.W.</given-names></name></person-group><article-title>Attitude and Position Estimation on the Mars Exploration Rovers</article-title><conf-name>Proceedings of the IEEE International Conference on Systems, Man and Cybernetics</conf-name><conf-loc>Kona, HI, USA</conf-loc><conf-date>10–12 October 2005</conf-date><volume>1</volume><fpage>20</fpage><lpage>27</lpage></citation></ref>
<ref id="b24-sensors-12-02219"><label>24.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Merwe</surname><given-names>R.V.D.</given-names></name><name><surname>Wan</surname><given-names>E.A.</given-names></name></person-group><article-title>The Square-Root Unscented Kalman Filter for State and Parameter-Estimation</article-title><conf-name>Proceedings of the International Conference on Acoustics, Speech and Signal Processing</conf-name><conf-loc>Salt Lake City, UT, USA</conf-loc><conf-date>7–11 May 2001</conf-date><volume>6</volume><fpage>3461</fpage><lpage>3464</lpage></citation></ref></ref-list>
<sec sec-type="display-objects">
<title>Figures and Tables</title>
<fig id="f1-sensors-12-02219" position="float">
<label>Figure 1.</label>
<caption>
<p>Schematic representation of the End-to-End Approach.</p></caption>
<graphic xlink:href="sensors-12-02219f1.gif"/></fig>
<fig id="f2-sensors-12-02219" position="float">
<label>Figure 2.</label>
<caption>
<p>Allan variance plot from the IEEE Std 952–1997 for typical data analysis [<xref ref-type="bibr" rid="b8-sensors-12-02219">8</xref>]. The cluster time of length <italic>τ</italic> could take different units in time (e.g., microseconds, seconds, minutes or hours) as well as <italic>σ</italic>(<italic>τ</italic>), <italic>i.e.</italic>, angular velocity (e.g., <italic>rad/s</italic> or <italic>°/h</italic>) for gyros or acceleration (e.g., <italic>g</italic> or <italic>m/s</italic><sup>2</sup>) in case of accelerometers, depending on sensor type.</p></caption>
<graphic xlink:href="sensors-12-02219f2.gif"/></fig>
<fig id="f3-sensors-12-02219" position="float">
<label>Figure 3.</label>
<caption>
<p>Thermal drift regression for Z gyros axis. <bold>(a)</bold> Temperature correlated bias and linear regression curve; <bold>(b)</bold> Residual information of the fitted curve.</p></caption>
<graphic xlink:href="sensors-12-02219f3.gif"/></fig>
<fig id="f4-sensors-12-02219" position="float">
<label>Figure 4.</label>
<caption>
<p>Metrology laboratory at ESA/ ESTEC. <bold>(a)</bold> General view with the seismic block in the foreground; <bold>(b)</bold> IMT30 on the seismic block while testing.</p></caption>
<graphic xlink:href="sensors-12-02219f4.gif"/></fig>
<fig id="f5-sensors-12-02219" position="float">
<label>Figure 5.</label>
<caption>
<p>Allan variance analysis for IMT30 gyroscopes.</p></caption>
<graphic xlink:href="sensors-12-02219f5.gif"/></fig>
<fig id="f6-sensors-12-02219" position="float">
<label>Figure 6.</label>
<caption>
<p>Sensor Fusion scheme on board the rover.</p></caption>
<graphic xlink:href="sensors-12-02219f6.gif"/></fig>
<fig id="f7-sensors-12-02219" position="float">
<label>Figure 7.</label>
<caption>
<p>Coordinate frames and Vicon cameras deployment for the experimental setup in the PUTB.</p></caption>
<graphic xlink:href="sensors-12-02219f7.gif"/></fig>
<fig id="f8-sensors-12-02219" position="float">
<label>Figure 8.</label>
<caption>
<p>Lunar Rover Model (LRM) rover of ESA while performing a test in the PUTB.</p></caption>
<graphic xlink:href="sensors-12-02219f8.gif"/></fig>
<fig id="f9-sensors-12-02219" position="float">
<label>Figure 9.</label>
<caption>
<p>Results of the proposed approach for straight line tests. <bold>(a)</bold> Heading for straight path test; <bold>(b)</bold> Heading for straight path test with boulder negotiation; <bold>(c)</bold> Pitch for straight path test with boulder negotiation; <bold>(d)</bold> Roll for straight path test with boulder negotiation.</p></caption>
<graphic xlink:href="sensors-12-02219f9.gif"/></fig>
<fig id="f10-sensors-12-02219" position="float">
<label>Figure 10.</label>
<caption>
<p>Results of the proposed approach for turning maneuvers as Ackerman and Turn-on-Spot. <bold>(a)</bold> Heading for Ackerman steering trajectory; <bold>(b)</bold> Heading for Turn-on-Spot test.</p></caption>
<graphic xlink:href="sensors-12-02219f10.gif"/></fig>
<table-wrap id="t1-sensors-12-02219" position="float">
<label>Table 1.</label>
<caption>
<p>Gyroscope Thermal Drift.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" valign="middle"><bold>Coefficient</bold></th>
<th align="center" valign="middle"><bold>Gyro X</bold></th>
<th align="center" valign="middle"><bold>Gyro Y</bold></th>
<th align="center" valign="middle"><bold>Gyro Z</bold></th></tr></thead>
<tbody>
<tr>
<td align="left" valign="middle">Thermal drift [<italic><sup>°</sup>/s/<sup>°</sup>C</italic>]</td>
<td align="center" valign="middle">0.02</td>
<td align="center" valign="middle">0.056</td>
<td align="center" valign="middle">0.050</td></tr></tbody></table></table-wrap>
<table-wrap id="t2-sensors-12-02219" position="float">
<label>Table 2.</label>
<caption>
<p>Angle random walk noise coefficients for IMT30 gyros. Mean value of five tests.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" valign="middle"><bold>Coef.</bold></th>
<th align="center" valign="middle"><bold>Gyro X</bold></th>
<th align="center" valign="middle"><bold>Gyro Y</bold></th>
<th align="center" valign="middle"><bold>Gyro Z</bold></th></tr></thead>
<tbody>
<tr>
<td align="left" valign="middle">N</td>
<td align="left" valign="top">
<inline-formula>
<mml:math id="M33">
<mml:mrow>
<mml:mn>0.20764</mml:mn>
<mml:mo>°</mml:mo>
<mml:mo>/</mml:mo>
<mml:msqrt>
<mml:mi>h</mml:mi></mml:msqrt></mml:mrow></mml:math></inline-formula></td>
<td align="left" valign="top">
<inline-formula>
<mml:math id="M34">
<mml:mrow>
<mml:mn>0.23858</mml:mn>
<mml:mo>°</mml:mo>
<mml:mo>/</mml:mo>
<mml:msqrt>
<mml:mi>h</mml:mi></mml:msqrt></mml:mrow></mml:math></inline-formula></td>
<td align="left" valign="top">
<inline-formula>
<mml:math id="M35">
<mml:mrow>
<mml:mn>0.20489</mml:mn>
<mml:mo>°</mml:mo>
<mml:mo>/</mml:mo>
<mml:msqrt>
<mml:mi>h</mml:mi></mml:msqrt></mml:mrow></mml:math></inline-formula></td></tr></tbody></table></table-wrap>
<table-wrap id="t3-sensors-12-02219" position="float">
<label>Table 3.</label>
<caption>
<p>Dominant stochastic errors in inertial sensors.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" valign="middle"><bold>Noise type</bold></th>
<th align="center" valign="middle"><bold>Allan variance</bold> <italic>σ</italic><sup>2</sup>(<italic>τ</italic>)</th>
<th align="center" valign="middle"><bold>Coef.</bold></th>
<th align="center" valign="middle"><bold>PSD</bold></th></tr></thead>
<tbody>
<tr>
<td align="left" valign="middle">Quantization noise</td>
<td align="center" valign="middle">
<inline-formula>
<mml:math id="M36">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:msup>
<mml:mi>Q</mml:mi>
<mml:mn>2</mml:mn></mml:msup></mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mi>τ</mml:mi>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mrow></mml:math></inline-formula></td>
<td align="center" valign="middle"><italic>Q</italic>[<sup>°</sup>]</td>
<td align="center" valign="middle">(2<italic>πf</italic>)<sup>2</sup><italic>Q</italic><sup>2</sup><italic>τ</italic></td></tr>
<tr>
<td align="left" valign="middle">Angle random walk</td>
<td align="center" valign="middle">
<inline-formula>
<mml:math id="M37">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mi>N</mml:mi>
<mml:mn>2</mml:mn></mml:msup></mml:mrow>
<mml:mi>τ</mml:mi></mml:mfrac></mml:mrow></mml:math></inline-formula></td>
<td align="center" valign="middle">
<inline-formula>
<mml:math id="M38">
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo stretchy="false">[</mml:mo>
<mml:mo>°</mml:mo>
<mml:mo>/</mml:mo>
<mml:msqrt>
<mml:mi>h</mml:mi></mml:msqrt>
<mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:math></inline-formula></td>
<td align="center" valign="middle"><italic>N</italic><sup>2</sup></td></tr>
<tr>
<td align="left" valign="middle">Bias instability</td>
<td align="center" valign="middle">
<inline-formula>
<mml:math id="M39">
<mml:mrow>
<mml:mo>≈</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:msup>
<mml:mi>B</mml:mi>
<mml:mn>2</mml:mn></mml:msup>
<mml:mtext>ln</mml:mtext>
<mml:mn>2</mml:mn></mml:mrow>
<mml:mi>π</mml:mi></mml:mfrac></mml:mrow></mml:math></inline-formula></td>
<td align="center" valign="middle"><italic>B</italic>[°/<italic>h</italic>]</td>
<td align="center" valign="middle">
<inline-formula>
<mml:math id="M40">
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mi>B</mml:mi>
<mml:mn>2</mml:mn></mml:msup></mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>π</mml:mi></mml:mrow></mml:mfrac>
<mml:mo stretchy="false">)</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mi>f</mml:mi></mml:mfrac></mml:mrow></mml:math></inline-formula></td></tr>
<tr>
<td align="left" valign="middle">Rate random walk</td>
<td align="center" valign="middle">
<inline-formula>
<mml:math id="M41">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mi>K</mml:mi>
<mml:mn>2</mml:mn></mml:msup>
<mml:mi>τ</mml:mi></mml:mrow>
<mml:mn>3</mml:mn></mml:mfrac></mml:mrow></mml:math></inline-formula></td>
<td align="center" valign="middle">
<inline-formula>
<mml:math id="M42">
<mml:mrow>
<mml:mi>K</mml:mi>
<mml:mo stretchy="false">[</mml:mo>
<mml:mo>°</mml:mo>
<mml:mo>/</mml:mo>
<mml:mi>h</mml:mi>
<mml:mo>/</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:msqrt></mml:mrow></mml:math></inline-formula></td>
<td align="center" valign="middle">
<inline-formula>
<mml:math id="M43">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mfrac>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>π</mml:mi></mml:mrow></mml:mfrac>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mn>2</mml:mn></mml:msup>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:msup>
<mml:mi>f</mml:mi>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mrow></mml:math></inline-formula></td></tr>
<tr>
<td align="left" valign="middle">Rate ramp</td>
<td align="center" valign="middle">
<inline-formula>
<mml:math id="M44">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mi>R</mml:mi>
<mml:mn>2</mml:mn></mml:msup>
<mml:msup>
<mml:mi>τ</mml:mi>
<mml:mn>2</mml:mn></mml:msup></mml:mrow>
<mml:mn>2</mml:mn></mml:mfrac></mml:mrow></mml:math></inline-formula></td>
<td align="center" valign="middle"><italic>R</italic>[°/<italic>h</italic><sup>2</sup>]</td>
<td align="center" valign="middle">
<inline-formula>
<mml:math id="M45">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mi>R</mml:mi>
<mml:mn>2</mml:mn></mml:msup></mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi>π</mml:mi>
<mml:mi>f</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mn>3</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mrow></mml:math></inline-formula></td></tr></tbody></table></table-wrap>
<table-wrap id="t4-sensors-12-02219" position="float">
<label>Table 4.</label>
<caption>
<p>Rate random walk noise coefficients for IMT30 gyros. Mean value of five tests.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" valign="middle"><bold>Coef.</bold></th>
<th align="center" valign="middle"><bold>Gyro X</bold></th>
<th align="center" valign="middle"><bold>Gyro Y</bold></th>
<th align="center" valign="middle"><bold>Gyro Z</bold></th></tr></thead>
<tbody>
<tr>
<td align="left" valign="middle">K</td>
<td align="left" valign="top">
<inline-formula>
<mml:math id="M46">
<mml:mrow>
<mml:mn>32.8</mml:mn>
<mml:mo>°</mml:mo>
<mml:mo>/</mml:mo>
<mml:mi>h</mml:mi>
<mml:mo>/</mml:mo>
<mml:msqrt>
<mml:mi>h</mml:mi></mml:msqrt></mml:mrow></mml:math></inline-formula></td>
<td align="left" valign="top">
<inline-formula>
<mml:math id="M47">
<mml:mrow>
<mml:mn>49.6</mml:mn>
<mml:mo>°</mml:mo>
<mml:mo>/</mml:mo>
<mml:mi>h</mml:mi>
<mml:mo>/</mml:mo>
<mml:msqrt>
<mml:mi>h</mml:mi></mml:msqrt></mml:mrow></mml:math></inline-formula></td>
<td align="left" valign="top">
<inline-formula>
<mml:math id="M48">
<mml:mrow>
<mml:mn>64.2</mml:mn>
<mml:mo>°</mml:mo>
<mml:mo>/</mml:mo>
<mml:mi>h</mml:mi>
<mml:mo>/</mml:mo>
<mml:msqrt>
<mml:mi>h</mml:mi></mml:msqrt></mml:mrow></mml:math></inline-formula></td></tr></tbody></table></table-wrap>
<table-wrap id="t5-sensors-12-02219" position="float">
<label>Table 5.</label>
<caption>
<p>Bias instability coefficients for IMT30 gyros. Mean value of five tests.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" valign="middle"><bold>Coef.</bold></th>
<th align="center" valign="middle"><bold>Gyro X</bold></th>
<th align="center" valign="middle"><bold>Gyro Y</bold></th>
<th align="center" valign="middle"><bold>Gyro Z</bold></th></tr></thead>
<tbody>
<tr>
<td align="left" valign="middle">B</td>
<td align="center" valign="top">3.8<italic>°/h</italic></td>
<td align="center" valign="top">5.9<italic>°/h</italic></td>
<td align="center" valign="top">5.3<italic>°/h</italic></td></tr></tbody></table></table-wrap>
<table-wrap id="t6-sensors-12-02219" position="float">
<label>Table 6.</label>
<caption>
<p>Maximum attitude errors for the proposed fusion scheme during tests on the PUTB.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th colspan="3" align="center" valign="middle"><bold>Straight line</bold>
<hr/></th>
<th colspan="3" align="center" valign="middle"><bold>Ackerman steering</bold>
<hr/></th>
<th colspan="3" align="center" valign="middle"><bold>Turn on Spot</bold>
<hr/></th></tr>
<tr>
<th align="center" valign="middle"><bold>Pitch</bold></th>
<th align="center" valign="middle"><bold>Roll</bold></th>
<th align="center" valign="middle"><bold>Yaw</bold></th>
<th align="center" valign="middle"><bold>Pitch</bold></th>
<th align="center" valign="middle"><bold>Roll</bold></th>
<th align="center" valign="middle"><bold>Yaw</bold></th>
<th align="center" valign="middle"><bold>Pitch</bold></th>
<th align="center" valign="middle"><bold>Roll</bold></th>
<th align="center" valign="middle"><bold>Yaw</bold></th></tr></thead>
<tbody>
<tr>
<td align="center" valign="middle">0.2<sup>°</sup></td>
<td align="center" valign="middle">0.1<sup>°</sup></td>
<td align="center" valign="middle">0.35<sup>°</sup></td>
<td align="center" valign="middle">0.3<sup>°</sup></td>
<td align="center" valign="middle">0.3<sup>°</sup></td>
<td align="center" valign="middle">1.4<sup>°</sup></td>
<td align="center" valign="middle">0.2<sup>°</sup></td>
<td align="center" valign="middle">0.4<sup>°</sup></td>
<td align="center" valign="middle">6.5<sup>°</sup></td></tr></tbody></table></table-wrap></sec></back></article>
