Definition of an Enhanced Map-Matching Algorithm for Urban Environments with Poor GNSS Signal Quality
Identifieur interne : 000078 ( Pmc/Corpus ); précédent : 000077; suivant : 000079Definition of an Enhanced Map-Matching Algorithm for Urban Environments with Poor GNSS Signal Quality
Auteurs : Felipe Jiménez ; Sergio Monz N ; Jose Eugenio NaranjoSource :
- Sensors (Basel, Switzerland) [ 1424-8220 ] ; 2016.
Abstract
Vehicle positioning is a key factor for numerous information and assistance applications that are included in vehicles and for which satellite positioning is mainly used. However, this positioning process can result in errors and lead to measurement uncertainties. These errors come mainly from two sources: errors and simplifications of digital maps and errors in locating the vehicle. From that inaccurate data, the task of assigning the vehicle’s location to a link on the digital map at every instant is carried out by map-matching algorithms. These algorithms have been developed to fulfil that need and attempt to amend these errors to offer the user a suitable positioning. In this research; an algorithm is developed that attempts to solve the errors in positioning when the Global Navigation Satellite System (GNSS) signal reception is frequently lost. The algorithm has been tested with satisfactory results in a complex urban environment of narrow streets and tall buildings where errors and signal reception losses of the GPS receiver are frequent.
Url:
DOI: 10.3390/s16020193
PubMed: 26861320
PubMed Central: 4801570
Links to Exploration step
PMC:4801570Le document en format XML
<record><TEI><teiHeader><fileDesc><titleStmt><title xml:lang="en">Definition of an Enhanced Map-Matching Algorithm for Urban Environments with Poor GNSS Signal Quality</title>
<author><name sortKey="Jimenez, Felipe" sort="Jimenez, Felipe" uniqKey="Jimenez F" first="Felipe" last="Jiménez">Felipe Jiménez</name>
</author>
<author><name sortKey="Monz N, Sergio" sort="Monz N, Sergio" uniqKey="Monz N S" first="Sergio" last="Monz N">Sergio Monz N</name>
</author>
<author><name sortKey="Naranjo, Jose Eugenio" sort="Naranjo, Jose Eugenio" uniqKey="Naranjo J" first="Jose Eugenio" last="Naranjo">Jose Eugenio Naranjo</name>
</author>
</titleStmt>
<publicationStmt><idno type="wicri:source">PMC</idno>
<idno type="pmid">26861320</idno>
<idno type="pmc">4801570</idno>
<idno type="url">http://www.ncbi.nlm.nih.gov/pmc/articles/PMC4801570</idno>
<idno type="RBID">PMC:4801570</idno>
<idno type="doi">10.3390/s16020193</idno>
<date when="2016">2016</date>
<idno type="wicri:Area/Pmc/Corpus">000078</idno>
<idno type="wicri:explorRef" wicri:stream="Pmc" wicri:step="Corpus" wicri:corpus="PMC">000078</idno>
</publicationStmt>
<sourceDesc><biblStruct><analytic><title xml:lang="en" level="a" type="main">Definition of an Enhanced Map-Matching Algorithm for Urban Environments with Poor GNSS Signal Quality</title>
<author><name sortKey="Jimenez, Felipe" sort="Jimenez, Felipe" uniqKey="Jimenez F" first="Felipe" last="Jiménez">Felipe Jiménez</name>
</author>
<author><name sortKey="Monz N, Sergio" sort="Monz N, Sergio" uniqKey="Monz N S" first="Sergio" last="Monz N">Sergio Monz N</name>
</author>
<author><name sortKey="Naranjo, Jose Eugenio" sort="Naranjo, Jose Eugenio" uniqKey="Naranjo J" first="Jose Eugenio" last="Naranjo">Jose Eugenio Naranjo</name>
</author>
</analytic>
<series><title level="j">Sensors (Basel, Switzerland)</title>
<idno type="eISSN">1424-8220</idno>
<imprint><date when="2016">2016</date>
</imprint>
</series>
</biblStruct>
</sourceDesc>
</fileDesc>
<profileDesc><textClass></textClass>
</profileDesc>
</teiHeader>
<front><div type="abstract" xml:lang="en"><p>Vehicle positioning is a key factor for numerous information and assistance applications that are included in vehicles and for which satellite positioning is mainly used. However, this positioning process can result in errors and lead to measurement uncertainties. These errors come mainly from two sources: errors and simplifications of digital maps and errors in locating the vehicle. From that inaccurate data, the task of assigning the vehicle’s location to a link on the digital map at every instant is carried out by map-matching algorithms. These algorithms have been developed to fulfil that need and attempt to amend these errors to offer the user a suitable positioning. In this research; an algorithm is developed that attempts to solve the errors in positioning when the Global Navigation Satellite System (GNSS) signal reception is frequently lost. The algorithm has been tested with satisfactory results in a complex urban environment of narrow streets and tall buildings where errors and signal reception losses of the GPS receiver are frequent.</p>
</div>
</front>
<back><div1 type="bibliography"><listBibl><biblStruct><analytic><author><name sortKey="Jimenez, F" uniqKey="Jimenez F">F. Jiménez</name>
</author>
<author><name sortKey="Naranjo, J E" uniqKey="Naranjo J">J.E. Naranjo</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Jimenez, F" uniqKey="Jimenez F">F. Jiménez</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Naranjo, J E" uniqKey="Naranjo J">J.E. Naranjo</name>
</author>
<author><name sortKey="Jimenez, F" uniqKey="Jimenez F">F. Jiménez</name>
</author>
<author><name sortKey="Aparicio, F" uniqKey="Aparicio F">F. Aparicio</name>
</author>
<author><name sortKey="Zato, J" uniqKey="Zato J">J. Zato</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Jimenez, F" uniqKey="Jimenez F">F. Jiménez</name>
</author>
<author><name sortKey="Naranjo, J E" uniqKey="Naranjo J">J.E. Naranjo</name>
</author>
<author><name sortKey="Garcia, F" uniqKey="Garcia F">F. García</name>
</author>
<author><name sortKey="Armingol, J M" uniqKey="Armingol J">J.M. Armingol</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Chao, J" uniqKey="Chao J">J. Chao</name>
</author>
<author><name sortKey="Chen, Y Q" uniqKey="Chen Y">Y.Q. Chen</name>
</author>
<author><name sortKey="Chen, W" uniqKey="Chen W">W. Chen</name>
</author>
<author><name sortKey="Ding, X" uniqKey="Ding X">X. Ding</name>
</author>
<author><name sortKey="Li, Z" uniqKey="Li Z">Z. Li</name>
</author>
<author><name sortKey="Wang, N" uniqKey="Wang N">N. Wang</name>
</author>
<author><name sortKey="Yu, M" uniqKey="Yu M">M. Yu</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Groves, P D" uniqKey="Groves P">P.D. Groves</name>
</author>
<author><name sortKey="Jiang, Z" uniqKey="Jiang Z">Z. Jiang</name>
</author>
<author><name sortKey="Wang, L" uniqKey="Wang L">L. Wang</name>
</author>
<author><name sortKey="Ziebart, M K" uniqKey="Ziebart M">M.K. Ziebart</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Groves, P D" uniqKey="Groves P">P.D. Groves</name>
</author>
<author><name sortKey="Jiang, Z" uniqKey="Jiang Z">Z. Jiang</name>
</author>
<author><name sortKey="Wang, L" uniqKey="Wang L">L. Wang</name>
</author>
<author><name sortKey="Ziebart, M K" uniqKey="Ziebart M">M.K. Ziebart</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Bendafi, H" uniqKey="Bendafi H">H. Bendafi</name>
</author>
<author><name sortKey="Hummelsheim, K" uniqKey="Hummelsheim K">K. Hummelsheim</name>
</author>
<author><name sortKey="Sabel, H" uniqKey="Sabel H">H. Sabel</name>
</author>
<author><name sortKey="Van De Ven, S" uniqKey="Van De Ven S">S. Van de Ven</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Miles, J C" uniqKey="Miles J">J.C. Miles</name>
</author>
<author><name sortKey="Chen, K" uniqKey="Chen K">K. Chen</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Yerpez, J" uniqKey="Yerpez J">J. Yerpez</name>
</author>
<author><name sortKey="Ferrandez, F" uniqKey="Ferrandez F">F. Ferrandez</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Jimenez, F" uniqKey="Jimenez F">F. Jiménez</name>
</author>
<author><name sortKey="Aparicio, F" uniqKey="Aparicio F">F. Aparicio</name>
</author>
<author><name sortKey="Estrada, G" uniqKey="Estrada G">G. Estrada</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Hashemi, M" uniqKey="Hashemi M">M. Hashemi</name>
</author>
<author><name sortKey="Karimi, H A" uniqKey="Karimi H">H.A. Karimi</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Blazquez, C A" uniqKey="Blazquez C">C.A. Blazquez</name>
</author>
<author><name sortKey="Miranda, P A" uniqKey="Miranda P">P.A. Miranda</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Wolf, J" uniqKey="Wolf J">J. Wolf</name>
</author>
<author><name sortKey="Bachman, W" uniqKey="Bachman W">W. Bachman</name>
</author>
<author><name sortKey="Oliveira, M S" uniqKey="Oliveira M">M.S. Oliveira</name>
</author>
<author><name sortKey="Auld, J" uniqKey="Auld J">J. Auld</name>
</author>
<author><name sortKey="Mohammadian, A" uniqKey="Mohammadian A">A. Mohammadian</name>
</author>
<author><name sortKey="Vovsha, P" uniqKey="Vovsha P">P. Vovsha</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Syed, S" uniqKey="Syed S">S. Syed</name>
</author>
<author><name sortKey="Cannon, M E" uniqKey="Cannon M">M.E. Cannon</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Quddus, M A" uniqKey="Quddus M">M.A. Quddus</name>
</author>
<author><name sortKey="Ochieng, W Y" uniqKey="Ochieng W">W.Y. Ochieng</name>
</author>
<author><name sortKey="Noland, R B" uniqKey="Noland R">R.B. Noland</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Kim, J S" uniqKey="Kim J">J.S. Kim</name>
</author>
<author><name sortKey="Lee, J H" uniqKey="Lee J">J.H. Lee</name>
</author>
<author><name sortKey="Kang, T H" uniqKey="Kang T">T.H. Kang</name>
</author>
<author><name sortKey="Lee, W Y" uniqKey="Lee W">W.Y. Lee</name>
</author>
<author><name sortKey="Kim, Y G" uniqKey="Kim Y">Y.G. Kim</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Bernstein, D" uniqKey="Bernstein D">D. Bernstein</name>
</author>
<author><name sortKey="Kornhauser, A" uniqKey="Kornhauser A">A. Kornhauser</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="White, C E" uniqKey="White C">C.E. White</name>
</author>
<author><name sortKey="Bernstein, D" uniqKey="Bernstein D">D. Bernstein</name>
</author>
<author><name sortKey="Kornhauser, A L" uniqKey="Kornhauser A">A.L. Kornhauser</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Phuyal, B" uniqKey="Phuyal B">B. Phuyal</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Greenfeld, J S" uniqKey="Greenfeld J">J.S. Greenfeld</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Chen, W" uniqKey="Chen W">W. Chen</name>
</author>
<author><name sortKey="Yu, M" uniqKey="Yu M">M. Yu</name>
</author>
<author><name sortKey="Li, Z" uniqKey="Li Z">Z. Li</name>
</author>
<author><name sortKey="Chen, Y Q" uniqKey="Chen Y">Y.Q. Chen</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Quddus, M A" uniqKey="Quddus M">M.A. Quddus</name>
</author>
<author><name sortKey="Ochieng, W Y" uniqKey="Ochieng W">W.Y. Ochieng</name>
</author>
<author><name sortKey="Zhao, L" uniqKey="Zhao L">L. Zhao</name>
</author>
<author><name sortKey="Noland, R B" uniqKey="Noland R">R.B. Noland</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Blazquez, C A" uniqKey="Blazquez C">C.A. Blazquez</name>
</author>
<author><name sortKey="Vonderohe, A P" uniqKey="Vonderohe A">A.P. Vonderohe</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Honey, S K" uniqKey="Honey S">S.K. Honey</name>
</author>
<author><name sortKey="Zavoli, W B" uniqKey="Zavoli W">W.B. Zavoli</name>
</author>
<author><name sortKey="Milnes, K A" uniqKey="Milnes K">K.A. Milnes</name>
</author>
<author><name sortKey="Phillips, A C" uniqKey="Phillips A">A.C. Phillips</name>
</author>
<author><name sortKey="White, M S" uniqKey="White M">M.S. White</name>
</author>
<author><name sortKey="Loughmiller, G E" uniqKey="Loughmiller G">G.E. Loughmiller</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Ochieng, W Y" uniqKey="Ochieng W">W.Y. Ochieng</name>
</author>
<author><name sortKey="Quddus, M A" uniqKey="Quddus M">M.A. Quddus</name>
</author>
<author><name sortKey="Noland, R B" uniqKey="Noland R">R.B. Noland</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Zhao, L" uniqKey="Zhao L">L. Zhao</name>
</author>
<author><name sortKey="Ochieng, W Y" uniqKey="Ochieng W">W.Y. Ochieng</name>
</author>
<author><name sortKey="Quddus, M A" uniqKey="Quddus M">M.A. Quddus</name>
</author>
<author><name sortKey="Noland, R B" uniqKey="Noland R">R.B. Noland</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Kim, W" uniqKey="Kim W">W. Kim</name>
</author>
<author><name sortKey="Jee, G" uniqKey="Jee G">G. Jee</name>
</author>
<author><name sortKey="Lee, J" uniqKey="Lee J">J. Lee</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Gustafsson, F" uniqKey="Gustafsson F">F. Gustafsson</name>
</author>
<author><name sortKey="Gunnarsson, F" uniqKey="Gunnarsson F">F. Gunnarsson</name>
</author>
<author><name sortKey="Bergman, N" uniqKey="Bergman N">N. Bergman</name>
</author>
<author><name sortKey="Forssell, U" uniqKey="Forssell U">U. Forssell</name>
</author>
<author><name sortKey="Jansson, J" uniqKey="Jansson J">J. Jansson</name>
</author>
<author><name sortKey="Karlsson, R" uniqKey="Karlsson R">R. Karlsson</name>
</author>
<author><name sortKey="Nordlund, P" uniqKey="Nordlund P">P. Nordlund</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Quddus, M A" uniqKey="Quddus M">M.A. Quddus</name>
</author>
<author><name sortKey="Noland, R B" uniqKey="Noland R">R.B. Noland</name>
</author>
<author><name sortKey="Ochieng, W Y" uniqKey="Ochieng W">W.Y. Ochieng</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Velaga, N R" uniqKey="Velaga N">N.R. Velaga</name>
</author>
<author><name sortKey="Quddus, M A" uniqKey="Quddus M">M.A. Quddus</name>
</author>
<author><name sortKey="Bristow, A L" uniqKey="Bristow A">A.L. Bristow</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Li, L" uniqKey="Li L">L. Li</name>
</author>
<author><name sortKey="Quddus, M" uniqKey="Quddus M">M. Quddus</name>
</author>
<author><name sortKey="Zhao, L" uniqKey="Zhao L">L. Zhao</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Quddus, M A" uniqKey="Quddus M">M.A. Quddus</name>
</author>
<author><name sortKey="Ochieng, W Y" uniqKey="Ochieng W">W.Y. Ochieng</name>
</author>
<author><name sortKey="Noland, R B" uniqKey="Noland R">R.B. Noland</name>
</author>
</analytic>
</biblStruct>
</listBibl>
</div1>
</back>
</TEI>
<pmc article-type="research-article"><pmc-dir>properties open_access</pmc-dir>
<front><journal-meta><journal-id journal-id-type="nlm-ta">Sensors (Basel)</journal-id>
<journal-id journal-id-type="iso-abbrev">Sensors (Basel)</journal-id>
<journal-id journal-id-type="publisher-id">sensors</journal-id>
<journal-title-group><journal-title>Sensors (Basel, Switzerland)</journal-title>
</journal-title-group>
<issn pub-type="epub">1424-8220</issn>
<publisher><publisher-name>MDPI</publisher-name>
</publisher>
</journal-meta>
<article-meta><article-id pub-id-type="pmid">26861320</article-id>
<article-id pub-id-type="pmc">4801570</article-id>
<article-id pub-id-type="doi">10.3390/s16020193</article-id>
<article-id pub-id-type="publisher-id">sensors-16-00193</article-id>
<article-categories><subj-group subj-group-type="heading"><subject>Article</subject>
</subj-group>
</article-categories>
<title-group><article-title>Definition of an Enhanced Map-Matching Algorithm for Urban Environments with Poor GNSS Signal Quality</article-title>
</title-group>
<contrib-group><contrib contrib-type="author"><name><surname>Jiménez</surname>
<given-names>Felipe</given-names>
</name>
</contrib>
<contrib contrib-type="author"><name><surname>Monzón</surname>
<given-names>Sergio</given-names>
</name>
</contrib>
<contrib contrib-type="author"><name><surname>Naranjo</surname>
<given-names>Jose Eugenio</given-names>
</name>
<xref rid="c1-sensors-16-00193" ref-type="corresp">*</xref>
</contrib>
</contrib-group>
<contrib-group><contrib contrib-type="editor"><name><surname>Melesse</surname>
<given-names>Assefa M.</given-names>
</name>
<role>Academic Editor</role>
</contrib>
</contrib-group>
<aff id="af1-sensors-16-00193">University Institute for Automobile Research (INSIA), Ctra. Valencia, Km. 7, Madrid 28031, Spain;<email>felipe.jimenez@upm.es</email>
(F.J.),<email>sergio.monzon3@gmail.com</email>
(S.M.)</aff>
<author-notes><corresp id="c1-sensors-16-00193"><label>*</label>
Correspondence: <email>joseeugenio.naranjo@upm.es</email>
; Tel.: +34-91-336-52-87; Fax: +34-91-336-53-02</corresp>
</author-notes>
<pub-date pub-type="epub"><day>04</day>
<month>2</month>
<year>2016</year>
</pub-date>
<pub-date pub-type="collection"><month>2</month>
<year>2016</year>
</pub-date>
<volume>16</volume>
<issue>2</issue>
<elocation-id>193</elocation-id>
<history><date date-type="received"><day>23</day>
<month>12</month>
<year>2015</year>
</date>
<date date-type="accepted"><day>29</day>
<month>1</month>
<year>2016</year>
</date>
</history>
<permissions><copyright-statement>© 2016 by the authors; licensee MDPI, Basel, Switzerland.</copyright-statement>
<copyright-year>2016</copyright-year>
<license><license-p><pmc-comment>CREATIVE COMMONS</pmc-comment>
This article is an open access article distributed under the terms and conditions of the Creative Commons by Attribution (CC-BY) license (<ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/licenses/by/4.0/">http://creativecommons.org/licenses/by/4.0/</ext-link>
).</license-p>
</license>
</permissions>
<abstract><p>Vehicle positioning is a key factor for numerous information and assistance applications that are included in vehicles and for which satellite positioning is mainly used. However, this positioning process can result in errors and lead to measurement uncertainties. These errors come mainly from two sources: errors and simplifications of digital maps and errors in locating the vehicle. From that inaccurate data, the task of assigning the vehicle’s location to a link on the digital map at every instant is carried out by map-matching algorithms. These algorithms have been developed to fulfil that need and attempt to amend these errors to offer the user a suitable positioning. In this research; an algorithm is developed that attempts to solve the errors in positioning when the Global Navigation Satellite System (GNSS) signal reception is frequently lost. The algorithm has been tested with satisfactory results in a complex urban environment of narrow streets and tall buildings where errors and signal reception losses of the GPS receiver are frequent.</p>
</abstract>
<kwd-group><kwd>satellite positioning systems</kwd>
<kwd>Global Navigation Satellite System (GNSS)</kwd>
<kwd>navigation</kwd>
<kwd>information fusion</kwd>
<kwd>map matching.</kwd>
</kwd-group>
</article-meta>
</front>
<body><sec id="sec1-sensors-16-00193"><title>1. Introduction</title>
<p>Vehicle positioning is a key element in the performance of numerous driver assistance and safety systems [<xref rid="B1-sensors-16-00193" ref-type="bibr">1</xref>
]. Depending on the particular demands, higher or lower levels of accuracy are required when positioning the vehicle [<xref rid="B2-sensors-16-00193" ref-type="bibr">2</xref>
]. Thus, informative applications for navigation systems need not be especially accurate while other systems such as those focused on the improvement of traffic safety might need submetric precisions [<xref rid="B3-sensors-16-00193" ref-type="bibr">3</xref>
]. Generally speaking, the location of a vehicle is mainly accomplished by satellite positioning systems (e.g., GNSS). With the current satellite positioning technology that can be found in all vehicle positioning systems, that submetric precision is not usually available and there are many situations where the environment causes the GNSS signal to be frequently lost or damaged (e.g., driving among tall buildings or in areas with dense tree cover). Even in less demanding applications, such as navigation systems, there are situations where positioning errors are made when locating the vehicle into a link. These errors come mainly from two sources: errors and simplifications of digital maps and errors in locating the vehicle. From that inaccurate data, the task of assigning the location of the vehicle to a link on the digital map at every instant is carried out by map-matching algorithms whose performance depends on many factors. As of today, locating a vehicle in an urban environment with high street density cannot be achieved at every instant, due to GNSS signal reception losses. </p>
<p>However, there are several solutions for improving the accuracy of satellite positioning. Differential correction techniques could improve GPS accuracy from 10 to 15 m of error to 1 cm of error. If this differential correction is obtained using only GPS pseudo-range code, it is named Differential GPS (DGPS) and can achieve accuracies of around 1 to 5 m. On the contrary, if it is obtained using the GPS carrier phase information, it is named Real Time Kinematics (RTK). DGPS and its accuracy is around 1 to 10 cm. However, these solutions are not limitless. In [<xref rid="B3-sensors-16-00193" ref-type="bibr">3</xref>
], the authors pointed out that the previous solutions accumulate a high amount of time without GPS coverage and the high precision levels offered by type 4 or type 5 positioning are available less than 37% of the time in some situations. On the other hand, the solution of using our own base stations for the differential correction has a very limited range and it is only acceptable for obtaining high levels of accuracy near the base station, so it is not an acceptable solution for real traffic conditions. Moreover, the equipment cost must be taken into account, which in addition to the connections required to obtain the differential corrections, makes them an invalid solution for their global implementation at present. In all previous situations the signal reception losses are still occurring and so it is necessary to turn to methods that enable positioning even in those areas. To do so, inertial systems are usually employed, though these systems have a cumulative error [<xref rid="B3-sensors-16-00193" ref-type="bibr">3</xref>
] that makes their reliability decrease as the travelling distance increases [<xref rid="B2-sensors-16-00193" ref-type="bibr">2</xref>
]. In particular, [<xref rid="B4-sensors-16-00193" ref-type="bibr">4</xref>
] analyse the effect of using low-performance and low-cost sensors. In [<xref rid="B5-sensors-16-00193" ref-type="bibr">5</xref>
], the authors also show that the GPS coverage in central Hong Kong can be less than 20%, which makes it essential to use other systems to keep the user informed of their route.</p>
<p>In dense urban areas it is still difficult to obtain good positioning using a single technology. This problem has led to the introduction of combining multiple positioning techniques. Intelligent Urban Positioning (IUP) is based on combining positioning algorithms augmented with three dimensional mapping techniques for distinguishing between non-line-of-sight (NLOS) and line-of-sight (LOS) signals and multi-constellation GNSS, using signals from all visible satellites. This can be used to predict the blockage and reflection of signals [<xref rid="B6-sensors-16-00193" ref-type="bibr">6</xref>
]. For example, a method using a 3D city model to improve cross-street GNSS positioning accuracy is presented in [<xref rid="B7-sensors-16-00193" ref-type="bibr">7</xref>
].</p>
<p>Additionally, digital maps have improved their accuracy, mainly when their construction methods have changed from air pictures [<xref rid="B8-sensors-16-00193" ref-type="bibr">8</xref>
,<xref rid="B9-sensors-16-00193" ref-type="bibr">9</xref>
] to instrumented vehicles [<xref rid="B10-sensors-16-00193" ref-type="bibr">10</xref>
,<xref rid="B11-sensors-16-00193" ref-type="bibr">11</xref>
]. The use of instrumented vehicles usually includes satellite positioning systems and inertial systems and both measurements are combined [<xref rid="B2-sensors-16-00193" ref-type="bibr">2</xref>
]. Although both sources are combined, their own particular errors mean the final map is not perfectly accurate. Furthermore, it must be taken into account that optimized storage of spatial road network data involves simplifications that can be larger or smaller according to the kind of approximation employed [<xref rid="B11-sensors-16-00193" ref-type="bibr">11</xref>
]. </p>
<p>Finally, as stated in [<xref rid="B12-sensors-16-00193" ref-type="bibr">12</xref>
], “the process of continually estimating a user’s position on a road segment is known as map matching”. In this process, it has to be taken into account that both information sources (GNSS positioning and digital map data) have associated errors, and therefore the algorithm attempts to found the location of the vehicle on the link that most approaches its real position. </p>
<p>Efficient map-matching algorithms have many applications apart from the ones focused on the driver assistance systems that have been cited above. For example, for travel behaviour, it is required to unambiguously identify the correct road links followed by the traveller and all these identified links should form a meaningful travel route [<xref rid="B13-sensors-16-00193" ref-type="bibr">13</xref>
,<xref rid="B14-sensors-16-00193" ref-type="bibr">14</xref>
]. Depending on the final application, the requirements imposed on the map-matching algorithm could be diverse. In this sense, safety applications require high standards of accuracy and reliability that are not completely essential for personal navigation [<xref rid="B15-sensors-16-00193" ref-type="bibr">15</xref>
]. The previous systems require real time processing but traveller displacement studies allow offline processing. </p>
<p>Several map-matching algorithms have been developed up to the present [<xref rid="B12-sensors-16-00193" ref-type="bibr">12</xref>
,<xref rid="B16-sensors-16-00193" ref-type="bibr">16</xref>
]. The geometric algorithms are the simpler ones but they do not perform well at junctions, roundabouts and parallel roads [<xref rid="B17-sensors-16-00193" ref-type="bibr">17</xref>
,<xref rid="B18-sensors-16-00193" ref-type="bibr">18</xref>
,<xref rid="B19-sensors-16-00193" ref-type="bibr">19</xref>
,<xref rid="B20-sensors-16-00193" ref-type="bibr">20</xref>
]. There are three different approaches to geometric algorithms, <italic>i.e.</italic>
, point-to-point matching, point-to-curve matching and curve-to-curve matching. However, their simplicity means they do not usually perform well in complex situations. More complex methods are used in topological algorithms, which use the relationship between entities of the digital map such as adjacency, connectivity and containment [<xref rid="B21-sensors-16-00193" ref-type="bibr">21</xref>
,<xref rid="B22-sensors-16-00193" ref-type="bibr">22</xref>
,<xref rid="B23-sensors-16-00193" ref-type="bibr">23</xref>
,<xref rid="B24-sensors-16-00193" ref-type="bibr">24</xref>
] to select the correct link. Hence, they take into account the previous information of the route to locate the vehicle into a link and allow the algorithm to keep the continuity of the trajectory. Probabilistic algorithms generate a confidence region around a position fix obtained from a GPS receiver, and are used mostly in the decisions concerning junctions [<xref rid="B25-sensors-16-00193" ref-type="bibr">25</xref>
,<xref rid="B26-sensors-16-00193" ref-type="bibr">26</xref>
]. Finally, advanced algorithms use Kalman Filters (KF), Extended Kalman Filters (EKF), Fuzzy Logic models (FL), Dempster-Shafer’s mathematical theory of evidence, particle filters or Bayesian inference and outperform the other algorithms in terms of correct link identification and accuracy. Nevertheless, they require more input data and could be relatively slow and difficult to implement in real-time applications [<xref rid="B27-sensors-16-00193" ref-type="bibr">27</xref>
,<xref rid="B28-sensors-16-00193" ref-type="bibr">28</xref>
,<xref rid="B29-sensors-16-00193" ref-type="bibr">29</xref>
,<xref rid="B30-sensors-16-00193" ref-type="bibr">30</xref>
].</p>
<p>Due to the correlation between the different kinds of algorithms enumerated above, [<xref rid="B29-sensors-16-00193" ref-type="bibr">29</xref>
] proposed a distinction between simple method algorithms, weighted algorithms and advanced algorithms. The former include geometric and topological algorithms, such as probabilistic algorithms, as long as they do not use historic data of the route. The latter try to improve the map-matching results by applying weights when choosing the correct link in which the vehicle is located. These algorithms reach percentages of correct link identification of between 85% and 98.5%. Nonetheless, their performance is not enough to support some ITS applications. These kinds of algorithms are the ones developed by [<xref rid="B21-sensors-16-00193" ref-type="bibr">21</xref>
,<xref rid="B23-sensors-16-00193" ref-type="bibr">23</xref>
,<xref rid="B31-sensors-16-00193" ref-type="bibr">31</xref>
,<xref rid="B32-sensors-16-00193" ref-type="bibr">32</xref>
].</p>
<p>Though there are others, some algorithms that offer good performances are mentioned in the following lines. According to [<xref rid="B12-sensors-16-00193" ref-type="bibr">12</xref>
], the algorithm developed in [<xref rid="B30-sensors-16-00193" ref-type="bibr">30</xref>
] is one of the most accurate according to the correct number of segment identifications and the accuracy of the location of the vehicle in each link. This algorithm, which uses an integrated GPS/DR sensor identifies 98%–99% of links correctly. Another algorithm, developed in [<xref rid="B31-sensors-16-00193" ref-type="bibr">31</xref>
] reaches a percentage of around 96% of correct link identification. The complex algorithm developed in [<xref rid="B32-sensors-16-00193" ref-type="bibr">32</xref>
] ranges from 97% to 99.8%. This algorithm uses inputs generated by an integrated GNSS/DR and height data obtained from a Digital Elevation Model (DEM). </p>
<p>The difference between real-time algorithms and post-processing algorithms should be pointed out. The former, such as those focused on in-vehicle navigation systems should be simple and not computationally intense. The latter use all the position fixes generated by a GNSS along a route as an input, and compare them with the digital map data to produce the whole route travelled as an output. In this last scenario, rapid computer processing is not essential, so the algorithms can be more complex and, therefore, the results could outperform those executed in real-time. </p>
<p>Finally, due to the errors in GNSS position and digital maps, there can be a high degree of uncertainty associated with the map-matched locations and a quality indicator representing the level of confidence in map-matched locations could be necessary. An empirical method to derive the integrity of a map-matched location is proposed in [<xref rid="B33-sensors-16-00193" ref-type="bibr">33</xref>
].</p>
<p>In this research, a real-time map-matching algorithm is put forward. It is focused on environments that influence negatively on the GNSS signal reception (reception losses or accuracy degradation) and requires little information from the digital map. It can also work without using additional information from inertial systems, which allows it to be implemented in after-market navigators. The algorithm is tested in an urban environment where the GNSS coverage is poor and there are frequent signal reception losses. Likewise, the use of the speed information as a new input is tested, even without needing high accuracy in its measurement.</p>
</sec>
<sec id="sec2-sensors-16-00193"><title>2. Map Matching Algorithm Proposal</title>
<sec id="sec2dot1-sensors-16-00193"><title>2.1. Specifications </title>
<p>The map-matching algorithm developed in this research tries to simultaneously improve some of the limitations of other algorithms. Specifically, the following characteristics have been defined for it:
<list list-type="bullet"><list-item><p>The algorithm should be implemented in real time and with limited computational means. </p>
</list-item>
<list-item><p>The algorithm is based on satellite positioning and digital map data, without using inertial sensors because these will limit its implementation in after-market devices. </p>
</list-item>
<list-item><p>Optionally, it will include the possibility to use speed information, if it is available, to know when the vehicle is moving and when not. Using inertial sensors for speed and yaw angle could improve the final results but could increase the hardware cost if high performance sensors are integrated [<xref rid="B4-sensors-16-00193" ref-type="bibr">4</xref>
]. Furthermore, the aim is to develop an algorithm that could be implemented in any navigation device, and not all of them contain these sensors, even low performance ones. </p>
</list-item>
<list-item><p>The information contained in the digital map has to be as simple as possible. The necessary information includes <italic>x</italic>
-<italic>y</italic>
coordinates, the legal turns and the segments priority. </p>
</list-item>
<list-item><p>After making a change of segment, the algorithm should check for some time if it has been a good decision or if the vehicle needs to be relocated to another link.</p>
</list-item>
<list-item><p>The algorithm should recover the positioning of the vehicle quickly after long periods of time without GPS coverage. </p>
</list-item>
<list-item><p>In the event of an error in the positioning of the vehicle in a link, the algorithm should be able to detect the erroneous decision and correct it in a few seconds taking into account the previous correct location.</p>
</list-item>
<list-item><p>The algorithm should be capable of working even with degraded GNSS signals.</p>
</list-item>
</list>
</p>
</sec>
<sec id="sec2dot2-sensors-16-00193"><title>2.2. Description</title>
<p>The designed algorithm uses topological information from the digital map, as well as historical information of the route. Basically, the map is divided into segments (defined between crossings), formed by links or sub-segments (for all two consecutive points on the map a link is created). The algorithm could be divided into four main steps:
<list list-type="order"><list-item><p>Candidate segments and links definition</p>
</list-item>
<list-item><p>Preliminary segment selection:Topological and historical links parameters and final weight calculation of the segments</p>
</list-item>
<list-item><p>Definitive segment selection: (1) Correction of the belonging parameter impact; (2) Correction of inappropriate segment change</p>
</list-item>
<list-item><p>Vehicle positioning on the digital map</p>
</list-item>
</list>
</p>
<sec id="sec2dot2dot1-sensors-16-00193"><title>2.2.1. Step 1: Candidate Segments and Links Definition</title>
<p>For each GNSS positioning, the segments included in a confidence region (circumference of radius R) are identified as candidates. Each link contained in a candidate segment within the confidence region becomes a candidate link of that segment. </p>
</sec>
<sec id="sec2dot2dot2-sensors-16-00193"><title>2.2.2. Step 2: Preliminary Segment Selection</title>
<p>In order to select the segment in which the vehicle is located, some parameters are calculated according to the physical characteristics and the relationship with the GNSS-generated point. Taking into account previous approaches found in the literature review of geometric, topological and probabilistic algorithms [<xref rid="B17-sensors-16-00193" ref-type="bibr">17</xref>
,<xref rid="B18-sensors-16-00193" ref-type="bibr">18</xref>
,<xref rid="B19-sensors-16-00193" ref-type="bibr">19</xref>
,<xref rid="B20-sensors-16-00193" ref-type="bibr">20</xref>
,<xref rid="B21-sensors-16-00193" ref-type="bibr">21</xref>
,<xref rid="B22-sensors-16-00193" ref-type="bibr">22</xref>
,<xref rid="B23-sensors-16-00193" ref-type="bibr">23</xref>
,<xref rid="B24-sensors-16-00193" ref-type="bibr">24</xref>
,<xref rid="B25-sensors-16-00193" ref-type="bibr">25</xref>
,<xref rid="B26-sensors-16-00193" ref-type="bibr">26</xref>
] and tests that provide the relative relevance of each parameter on the final positioning results, the following have been chosen:
<list list-type="order"><list-item><p>Distance parameters:
<list list-type="bullet"><list-item><p>Point-to-point average distance parameter: It uses the average distance between the two extreme points of the candidate link and the location given by the GNSS receiver. This value is useful to improve situations where the perpendicular distance is small but the link is not actually near the GNSS location.</p>
</list-item>
<list-item><p>Perpendicular distance parameter: It uses the perpendicular distance between the GNSS positioning and the line that contains the candidate link. </p>
</list-item>
</list>
</p>
</list-item>
<list-item><p>Parameters depending on the movement history:
<list list-type="bullet"><list-item><p>Direction parameter: It compares the difference between the GNSS trajectory and the link trajectory by calculating the angle between them. To estimate the trajectory of the vehicle the last GPS positions are taken into account, instead of just using the last two. Should the GNSS reception losses be longer than 1 s, this parameter decreases its relevance linearly because its relevance is lower as the time without the GNSS signal increases.</p>
</list-item>
<list-item><p>Segment belonging parameter: It assigns values to the candidate links according to their priority in a hypothetical junction (stored in the digital map information) and penalizes those links that are not physically accessible or those that involve illegal turns. At a junction, those links that involve going straight (keeping in the same street that is, not doing any turns) are considered priority links and get a higher value than those legal turns not considered priority links. The illegal turns receive a negative value to penalize them and avoid their being taken as the vehicle location by the algorithm. However, if the user makes an illegal turn, the algorithm will locate the vehicle correctly after a few seconds. Finally, the links that belong to the segment where the vehicle was positioned before receive the highest value. Like the Direction parameter, should the GNSS reception losses be longer than 1 s, this parameter decreases its relevance linearly because its relevance is lower as the time without the GNSS signal increases.</p>
</list-item>
</list>
</p>
</list-item>
<list-item><p>Additional parameter for segments:
<list list-type="bullet"><list-item><p>Perpendicular parameter: An additional value is assigned to a candidate segment in case the perpendicular projection of the GNSS point on one of the lines defined by each candidate link is among the two points of the digital map that define the link. </p>
</list-item>
</list>
</p>
</list-item>
</list>
</p>
<p>The sum of the first four parameters referred to links gives the final weight for each candidate link, and the average value of all links contained in a candidate segment, adding the perpendicular parameter, gives the final segment weight. <xref ref-type="table" rid="sensors-16-00193-t001">Table 1</xref>
shows a summary of all the parameters and the final equation for the final segment weight. <xref ref-type="table" rid="sensors-16-00193-t002">Table 2</xref>
includes the nomenclature used in the equations. The algorithm obtains a preliminary decision in which the vehicle is located in the segment with the highest weight.</p>
<table-wrap id="sensors-16-00193-t001" position="float"><object-id pub-id-type="pii">sensors-16-00193-t001_Table 1</object-id>
<label>Table 1</label>
<caption><p>Parameters included in the map-matching algorithm.</p>
</caption>
<table frame="hsides" rules="groups"><thead><tr><th colspan="2" align="left" valign="middle" style="border-top:solid thin;border-bottom:solid thin" rowspan="1">Parameters</th>
<th align="left" valign="middle" style="border-top:solid thin;border-bottom:solid thin" rowspan="1" colspan="1"></th>
</tr>
</thead>
<tbody><tr><td align="left" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Point-to-point distance</td>
<td align="left" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1"><inline-formula><mml:math id="mm1"><mml:mrow><mml:msub><mml:mi>W</mml:mi>
<mml:mrow><mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub><mml:mi>K</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mrow><mml:mo>[</mml:mo>
<mml:mrow><mml:mn>1</mml:mn>
<mml:mo>−</mml:mo>
<mml:mfrac><mml:mrow><mml:mover accent="true"><mml:mi>d</mml:mi>
<mml:mo>¯</mml:mo>
</mml:mover>
<mml:mrow><mml:mo>(</mml:mo>
<mml:mrow><mml:mi>G</mml:mi>
<mml:mi>N</mml:mi>
<mml:mi>S</mml:mi>
<mml:mi>S</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>l</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>k</mml:mi>
<mml:mo> </mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi>R</mml:mi>
</mml:mfrac>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">(1)</td>
</tr>
<tr><td align="left" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Perpendicular distance</td>
<td align="left" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1"><inline-formula><mml:math id="mm2"><mml:mrow><mml:msub><mml:mi>W</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub><mml:mi>K</mml:mi>
<mml:mrow><mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mrow><mml:mo>[</mml:mo>
<mml:mrow><mml:mn>1</mml:mn>
<mml:mo>−</mml:mo>
<mml:mfrac><mml:mrow><mml:mi>d</mml:mi>
<mml:mrow><mml:mo>(</mml:mo>
<mml:mrow><mml:mi>G</mml:mi>
<mml:mi>N</mml:mi>
<mml:mi>S</mml:mi>
<mml:mi>S</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>l</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>k</mml:mi>
<mml:mo> </mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi>R</mml:mi>
</mml:mfrac>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">(2)</td>
</tr>
<tr><td align="left" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Direction</td>
<td align="left" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1"><inline-formula><mml:math id="mm3"><mml:mrow><mml:msub><mml:mi>W</mml:mi>
<mml:mi>a</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub><mml:mi>K</mml:mi>
<mml:mi>a</mml:mi>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mrow><mml:mo>|</mml:mo>
<mml:mrow><mml:mi>c</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>s</mml:mi>
<mml:mo> </mml:mo>
<mml:msub><mml:mo>∝</mml:mo>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>|</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">(3)</td>
</tr>
<tr><td align="left" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Belonging</td>
<td align="left" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1"><inline-formula><mml:math id="mm4"><mml:mrow><mml:msub><mml:mi>W</mml:mi>
<mml:mi>b</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub><mml:mi>K</mml:mi>
<mml:mi>b</mml:mi>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msub><mml:mi>β</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">(4)</td>
</tr>
<tr><td align="left" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Perpendicularity</td>
<td align="left" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1"><inline-formula><mml:math id="mm5"><mml:mrow><mml:msub><mml:mi>W</mml:mi>
<mml:mi>p</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:msub><mml:mi>K</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
<mml:mo> </mml:mo>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
<mml:mo> </mml:mo>
<mml:mi>t</mml:mi>
<mml:mi>h</mml:mi>
<mml:mi>e</mml:mi>
<mml:mo> </mml:mo>
<mml:mi>c</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>n</mml:mi>
<mml:mo> </mml:mo>
<mml:mi>i</mml:mi>
<mml:mi>s</mml:mi>
<mml:mo> </mml:mo>
<mml:mi>s</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>f</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr><mml:mtd><mml:mrow><mml:mn>0</mml:mn>
<mml:mo> </mml:mo>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
<mml:mo> </mml:mo>
<mml:mi>t</mml:mi>
<mml:mi>h</mml:mi>
<mml:mi>e</mml:mi>
<mml:mo> </mml:mo>
<mml:mi>c</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>n</mml:mi>
<mml:mo> </mml:mo>
<mml:mi>i</mml:mi>
<mml:mi>s</mml:mi>
<mml:mo> </mml:mo>
<mml:mi>n</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo> </mml:mo>
<mml:mi>s</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>f</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">(5)</td>
</tr>
<tr><td colspan="2" align="left" valign="middle" style="border-bottom:solid thin" rowspan="1"><bold>Segment <italic>s</italic>
Final Weight</bold>
</td>
<td align="left" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1"></td>
</tr>
<tr><td colspan="2" align="left" valign="middle" style="border-bottom:solid thin" rowspan="1"><inline-formula><mml:math id="mm6"><mml:mrow><mml:msub><mml:mi>W</mml:mi>
<mml:mrow><mml:mi>T</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac><mml:mrow><mml:msubsup><mml:mstyle mathsize="140%" displaystyle="true"><mml:mo>∑</mml:mo>
</mml:mstyle>
<mml:mrow><mml:mi>k</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow><mml:msub><mml:mi>n</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mrow><mml:mo>(</mml:mo>
<mml:mrow><mml:msub><mml:mi>W</mml:mi>
<mml:mrow><mml:mi>a</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub><mml:mi>W</mml:mi>
<mml:mrow><mml:mi>b</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub><mml:mi>W</mml:mi>
<mml:mrow><mml:mi>d</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub><mml:mi>W</mml:mi>
<mml:mrow><mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow><mml:msub><mml:mi>n</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>+</mml:mo>
<mml:msub><mml:mi>W</mml:mi>
<mml:mrow><mml:mi>p</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">(6)</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="sensors-16-00193-t002" position="float"><object-id pub-id-type="pii">sensors-16-00193-t002_Table 2</object-id>
<label>Table 2</label>
<caption><p>Nomenclature.</p>
</caption>
<table frame="hsides" rules="groups"><tbody><tr><td align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" rowspan="1" colspan="1"><inline-formula><mml:math id="mm7"><mml:mrow><mml:mi>d</mml:mi>
<mml:mrow><mml:mo>(</mml:mo>
<mml:mrow><mml:mi>G</mml:mi>
<mml:mi>N</mml:mi>
<mml:mi>S</mml:mi>
<mml:mi>S</mml:mi>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:mi>l</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>k</mml:mi>
<mml:mo> </mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left" valign="middle" style="border-top:solid thin;border-bottom:solid thin" rowspan="1" colspan="1">Distance between the GNSS point and link <italic>k</italic>
</td>
</tr>
<tr><td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1"><inline-formula><mml:math id="mm8"><mml:mrow><mml:msub><mml:mo>∝</mml:mo>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Angle between the GNSS trajectory and the link <italic>k</italic>
trajectory</td>
</tr>
<tr><td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1"><inline-formula><mml:math id="mm9"><mml:mrow><mml:msub><mml:mi>β</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Denotes link <italic>k</italic>
priority</td>
</tr>
<tr><td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1"><inline-formula><mml:math id="mm10"><mml:mrow><mml:msub><mml:mi>n</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Number of candidate links contained in segment <italic>s</italic>
</td>
</tr>
<tr><td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1"><inline-formula><mml:math id="mm11"><mml:mrow><mml:msub><mml:mi>K</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:msub><mml:mi>K</mml:mi>
<mml:mrow><mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:msub>
<mml:msub><mml:mi>K</mml:mi>
<mml:mi>a</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:msub><mml:mi>K</mml:mi>
<mml:mi>b</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:msub><mml:mi>K</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Parameter coefficients<break></break>
<inline-formula><mml:math id="mm12"><mml:mrow><mml:msub><mml:mi>K</mml:mi>
<mml:mi>a</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:msub><mml:mi>K</mml:mi>
<mml:mi>b</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:mi>N</mml:mi>
<mml:mi>V</mml:mi>
<mml:mo> </mml:mo>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
<mml:mo> </mml:mo>
<mml:msub><mml:mi>t</mml:mi>
<mml:mi>l</mml:mi>
</mml:msub>
<mml:mo>≤</mml:mo>
<mml:mn>1</mml:mn>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr><mml:mtd><mml:mrow><mml:mrow><mml:mo>(</mml:mo>
<mml:mrow><mml:mi>N</mml:mi>
<mml:mi>V</mml:mi>
<mml:mo>/</mml:mo>
<mml:mn>9</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mrow><mml:mo>(</mml:mo>
<mml:mrow><mml:msub><mml:mi>t</mml:mi>
<mml:mi>l</mml:mi>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:mn>10</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo> </mml:mo>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
<mml:mo> </mml:mo>
<mml:mn>1</mml:mn>
<mml:mi>s</mml:mi>
<mml:mo>≤</mml:mo>
<mml:msub><mml:mi>t</mml:mi>
<mml:mi>l</mml:mi>
</mml:msub>
<mml:mo>≤</mml:mo>
<mml:mn>10</mml:mn>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr><mml:mtd><mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mo> </mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr><mml:mtd><mml:mrow><mml:mn>0</mml:mn>
<mml:mo> </mml:mo>
<mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
<mml:mo> </mml:mo>
<mml:msub><mml:mi>t</mml:mi>
<mml:mi>l</mml:mi>
</mml:msub>
<mml:mo>≥</mml:mo>
<mml:mn>10</mml:mn>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
<break></break>
<inline-formula><mml:math id="mm13"><mml:mrow><mml:mi>N</mml:mi>
<mml:mi>V</mml:mi>
<mml:mo>≡</mml:mo>
<mml:mi>n</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>m</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>l</mml:mi>
<mml:mo> </mml:mo>
<mml:mi>v</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>
<break></break>
<inline-formula><mml:math id="mm14"><mml:mrow><mml:msub><mml:mi>t</mml:mi>
<mml:mi>l</mml:mi>
</mml:msub>
<mml:mo>≡</mml:mo>
<mml:mi>G</mml:mi>
<mml:mi>N</mml:mi>
<mml:mi>S</mml:mi>
<mml:mi>S</mml:mi>
<mml:mo> </mml:mo>
<mml:mi>s</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>l</mml:mi>
<mml:mo> </mml:mo>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>p</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>n</mml:mi>
<mml:mo> </mml:mo>
<mml:mi>l</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>s</mml:mi>
<mml:mo> </mml:mo>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>m</mml:mi>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="sec2dot2dot3-sensors-16-00193"><title>2.2.3. Step 3: Definitive Segment Selection:</title>
<p>In order to corroborate the current segment selection, some scenarios of possible previous incorrect segment selections are considered and corrections can be performed in a short period of time.</p>
<p>The fact that the belonging parameter has a high influence when calculating the average value of the segment can cause the algorithm to take a little more time than necessary to detect when the vehicle has turned at a junction, so the segment where the vehicle is located has changed. To solve this problem, the algorithm also calculates the weights of all candidate segments without considering the belonging parameter:
<disp-formula id="FD1-sensors-16-00193"><label>(7)</label>
<mml:math id="mm15"><mml:mrow><mml:msub><mml:mrow><mml:mi>W</mml:mi>
<mml:mo>′</mml:mo>
</mml:mrow>
<mml:mrow><mml:mi>T</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac><mml:mrow><mml:msubsup><mml:mstyle mathsize="140%" displaystyle="true"><mml:mo>∑</mml:mo>
</mml:mstyle>
<mml:mrow><mml:mi>k</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow><mml:msub><mml:mi>n</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mrow><mml:mo>(</mml:mo>
<mml:mrow><mml:msub><mml:mi>W</mml:mi>
<mml:mrow><mml:mi>a</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub><mml:mi>W</mml:mi>
<mml:mrow><mml:mi>d</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub><mml:mi>W</mml:mi>
<mml:mrow><mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow><mml:msub><mml:mi>n</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>+</mml:mo>
<mml:msub><mml:mi>W</mml:mi>
<mml:mrow><mml:mi>p</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</disp-formula>
where <italic>W'<sub>T,s</sub>
</italic>
is the weight of the segment <italic>s</italic>
without considering the belonging parameter.</p>
<p>This way, if this new total weight is higher for a different segment <italic>s<sub>’</sub>
</italic>
than for the one that has been chosen to locate the vehicle, the algorithm starts to store an uncertainty variable that adds to the first calculated weight of the segment (which considers the belonging parameter) to check if now the first weight plus the uncertainty variable are higher than the original weight assigned to the chosen segment. Then, the algorithm applies the following decisions:</p>
<p>If:
<disp-formula id="FD2-sensors-16-00193"><label>(8)</label>
<mml:math id="mm16"><mml:mrow><mml:msub><mml:mrow><mml:mi>W</mml:mi>
<mml:mo>′</mml:mo>
</mml:mrow>
<mml:mrow><mml:mi>T</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mo>></mml:mo>
<mml:msub><mml:mrow><mml:mi>W</mml:mi>
<mml:mo>′</mml:mo>
</mml:mrow>
<mml:mrow><mml:mi>T</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</disp-formula>
if:
<disp-formula id="FD3-sensors-16-00193"><label>(9)</label>
<mml:math id="mm17"><mml:mrow><mml:msub><mml:mi>W</mml:mi>
<mml:mrow><mml:mi>T</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub><mml:mi>U</mml:mi>
<mml:mrow><mml:mi>s</mml:mi>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mo>></mml:mo>
<mml:msub><mml:mi>W</mml:mi>
<mml:mrow><mml:mi>T</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo> </mml:mo>
<mml:mo>⇒</mml:mo>
<mml:mo> </mml:mo>
<mml:mi>C</mml:mi>
<mml:mi>h</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>g</mml:mi>
<mml:mi>e</mml:mi>
<mml:mo> </mml:mo>
<mml:mi>o</mml:mi>
<mml:mi>f</mml:mi>
<mml:mo> </mml:mo>
<mml:mi>s</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>g</mml:mi>
<mml:mi>m</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo> </mml:mo>
<mml:mi>f</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>m</mml:mi>
<mml:mo> </mml:mo>
<mml:mi>s</mml:mi>
<mml:mo> </mml:mo>
<mml:mi>t</mml:mi>
<mml:mi>o</mml:mi>
<mml:mo> </mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
where <italic>U<sub>s’</sub>
</italic>
is the uncertainty variable of segment <italic>s’</italic>
.</p>
<p>else:
<disp-formula id="FD4-sensors-16-00193"><label>(10)</label>
<mml:math id="mm18"><mml:mrow><mml:msub><mml:mi>U</mml:mi>
<mml:mrow><mml:mi>s</mml:mi>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub><mml:mi>U</mml:mi>
<mml:mrow><mml:mi>s</mml:mi>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mo>Δ</mml:mo>
<mml:msub><mml:mi>U</mml:mi>
<mml:mrow><mml:mi>s</mml:mi>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mo> </mml:mo>
<mml:mi>a</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>d</mml:mi>
<mml:mo> </mml:mo>
<mml:mi>t</mml:mi>
<mml:mi>h</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mo> </mml:mo>
<mml:mi>i</mml:mi>
<mml:mi>s</mml:mi>
<mml:mo> </mml:mo>
<mml:mi>n</mml:mi>
<mml:mi>o</mml:mi>
<mml:mo> </mml:mo>
<mml:mi>c</mml:mi>
<mml:mi>h</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>g</mml:mi>
<mml:mi>e</mml:mi>
<mml:mo> </mml:mo>
<mml:mi>o</mml:mi>
<mml:mi>f</mml:mi>
<mml:mo> </mml:mo>
<mml:mi>s</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>g</mml:mi>
<mml:mi>m</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:math>
</disp-formula>
else there is no change of segment and the vehicle is located in segment <italic>s</italic>
.</p>
<p>Thanks to the uncertainty, the change of segment will be done quickly. Moreover, to let the program restore any mismatching in a quick way, in the event it has made an incorrect change of segment, when a change of segment is made, and if Equation (8) is satisfied, the algorithm calculates, for each point generated by the GPS, the total weights of the candidate segments not only considering the new belonging parameter but also the belonging parameter that the candidate segments had before the change was made. Therefore, considering the following criteria, the algorithm is capable of restoring from its positioning errors quickly. If Equation (8) is satisfied the algorithm applies the following calculations and decisions:
<disp-formula id="FD5-sensors-16-00193"><label>(11)</label>
<mml:math id="mm19"><mml:mrow><mml:msub><mml:mrow><mml:mi>W</mml:mi>
<mml:mo>″</mml:mo>
</mml:mrow>
<mml:mrow><mml:mi>T</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac><mml:mrow><mml:msubsup><mml:mstyle mathsize="140%" displaystyle="true"><mml:mo>∑</mml:mo>
</mml:mstyle>
<mml:mrow><mml:mi>k</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow><mml:msub><mml:mi>n</mml:mi>
<mml:mrow><mml:mi>l</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mrow><mml:mo>(</mml:mo>
<mml:mrow><mml:msub><mml:mi>W</mml:mi>
<mml:mrow><mml:mi>a</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub><mml:mi>W</mml:mi>
<mml:mrow><mml:mi>b</mml:mi>
<mml:mo>′</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub><mml:mi>W</mml:mi>
<mml:mrow><mml:mi>d</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub><mml:mi>W</mml:mi>
<mml:mrow><mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow><mml:msub><mml:mi>n</mml:mi>
<mml:mrow><mml:mi>l</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>+</mml:mo>
<mml:msub><mml:mi>W</mml:mi>
<mml:mrow><mml:mi>p</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</disp-formula>
where <italic>W''<sub>T,s</sub>
</italic>
is the weight of the segment s considering the belonging parameter that this segment had before the change of segment was made (symbolized by <italic>W<sub>b',k</sub>
</italic>
):
<disp-formula id="FD6-sensors-16-00193"><label>(12)</label>
<mml:math id="mm20"><mml:mrow><mml:mi>i</mml:mi>
<mml:mi>f</mml:mi>
<mml:mo> </mml:mo>
<mml:msub><mml:mrow><mml:mi>W</mml:mi>
<mml:mo>″</mml:mo>
</mml:mrow>
<mml:mrow><mml:mi>T</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mo>></mml:mo>
<mml:msub><mml:mrow><mml:mi>W</mml:mi>
<mml:mo>″</mml:mo>
</mml:mrow>
<mml:mrow><mml:mi>T</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo> </mml:mo>
<mml:mo>⇒</mml:mo>
<mml:mo> </mml:mo>
<mml:mi>C</mml:mi>
<mml:mi>h</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>g</mml:mi>
<mml:mi>e</mml:mi>
<mml:mo> </mml:mo>
<mml:mi>o</mml:mi>
<mml:mi>f</mml:mi>
<mml:mo> </mml:mo>
<mml:mi>s</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>g</mml:mi>
<mml:mi>m</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo> </mml:mo>
<mml:mi>f</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>m</mml:mi>
<mml:mo> </mml:mo>
<mml:mi mathvariant="bold-italic">s</mml:mi>
<mml:mo> </mml:mo>
<mml:mi>t</mml:mi>
<mml:mi>o</mml:mi>
<mml:mo> </mml:mo>
<mml:mi mathvariant="bold-italic">s</mml:mi>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
else there is no change of segment and the vehicle is located in segment <bold><italic>s</italic>
</bold>
.</p>
<p><xref ref-type="fig" rid="sensors-16-00193-f001">Figure 1</xref>
shows a diagram that illustrates the decision algorithm that corroborates or changes the preliminary selection of segment <italic>s</italic>
.</p>
<fig id="sensors-16-00193-f001" position="float"><label>Figure 1</label>
<caption><p>Preliminary segment verification algorithm.</p>
</caption>
<graphic xlink:href="sensors-16-00193-g001"></graphic>
</fig>
</sec>
<sec id="sec2dot2dot4-sensors-16-00193"><title>2.2.4. Step 4: Vehicle Positioning on the Digital Map</title>
<p>Finally, once the preferred segment is selected, the positioning of the vehicle is carried out with the following criteria:
<list list-type="bullet"><list-item><p>If any of the candidate links of the chosen segment contain the perpendicular projection of the GNSS positioning between their two extremes, then this point is used to locate the vehicle. </p>
</list-item>
<list-item><p>If the condition above does not apply for any link, the nearest point of the digital map to the GNSS-generated point that belongs to the selected segment is assigned to locate the vehicle. </p>
</list-item>
</list>
</p>
</sec>
</sec>
</sec>
<sec id="sec3-sensors-16-00193"><title>3. Practical Application</title>
<sec id="sec3dot1-sensors-16-00193"><title>3.1. Urban Scenario and Digital Map</title>
<p>To test the algorithm’s performance, two areas of central Madrid (Spain) were selected where the GNSS coverage is poor, with frequent signal reception losses and signal damage because of the constant change of satellites detected caused by the narrow streets with tall buildings and dense tree cover (<xref ref-type="fig" rid="sensors-16-00193-f002">Figure 2</xref>
).</p>
<fig id="sensors-16-00193-f002" position="float"><label>Figure 2</label>
<caption><p>Test areas. (<bold>a</bold>
) Route 1; (<bold>b</bold>
) Route 2.</p>
</caption>
<graphic xlink:href="sensors-16-00193-g002"></graphic>
</fig>
<p>The digital map was generated using an instrumented vehicle with the following equipment:
<list list-type="order"><list-item><p>Inertial measurement system: (1) Correvit L-CE- non-contact speed sensor to measure speed and the distance travelled; (2) RMS FES 33 gyroscopic platform to provide measurement of the angles drawn about three axes.</p>
</list-item>
<list-item><p>Astech G12 GPS autonomous receiver with an update frequency of 10 Hz.</p>
</list-item>
</list>
</p>
<p>The GPS position fixes of the analysed zones have high uncertainties. Specifically, on route 1, the GPS coverage was active 46.8% of the time, and on route 2 it reached a 71.1% value. Nevertheless, if the wrong positioning received by the GPS receiver, that is, those positions that are too far from the actual location to be considered valid, are eliminated, the percentages of relatively good GPS position fixes decrease to 33.5% and 56.0%, respectively. In both cases, they are low values consistent with other studies [<xref rid="B5-sensors-16-00193" ref-type="bibr">5</xref>
]. For this reason, the digital map was generated as stated in [<xref rid="B2-sensors-16-00193" ref-type="bibr">2</xref>
,<xref rid="B11-sensors-16-00193" ref-type="bibr">11</xref>
]. Nonetheless, in order to reduce the cumulative error of this process, and because the results obtained by the inertial sensor need to be turned and translated [<xref rid="B2-sensors-16-00193" ref-type="bibr">2</xref>
], this turn is done by steps to minimise the deviations between the generated trajectory and the positioning points obtained by the satellite positioning navigator.</p>
<p>In <xref ref-type="fig" rid="sensors-16-00193-f003">Figure 3</xref>
, it can be seen that, for the adjustment that has been made, when the route passes more than once along a certain street, the different inertial sensor coordinates overlap one another quite exactly, and there are no deviations such as those where the different passes show different orientations, as usually occurs because of the cumulative error of the inertial systems [<xref rid="B4-sensors-16-00193" ref-type="bibr">4</xref>
].</p>
<fig id="sensors-16-00193-f003" position="float"><label>Figure 3</label>
<caption><p>Data adjustment using inertial measurement system and GPS receiver. (<bold>a</bold>
) Route 1; (<bold>b</bold>
) Route 2.</p>
</caption>
<graphic xlink:href="sensors-16-00193-g003"></graphic>
</fig>
<p>Finally, <xref ref-type="fig" rid="sensors-16-00193-f004">Figure 4</xref>
shows the points of the digital map stored with which the map-matching algorithm will be evaluated. In order to test the robustness of the algorithm, intersections in the digital map include some missing data so that poor information in these critical sections is consciously provided. On the other street stretches, points of the digital map are separated by 2 m. </p>
<fig id="sensors-16-00193-f004" position="float"><label>Figure 4</label>
<caption><p>Digital maps for the test areas. (<bold>a</bold>
) Route 1; (<bold>b</bold>
) Route 2.</p>
</caption>
<graphic xlink:href="sensors-16-00193-g004"></graphic>
</fig>
</sec>
<sec id="sec3dot2-sensors-16-00193"><title>3.2. Results of the Map Matching Algorithm</title>
<p>In order to analyse the performance of the developed algorithm, some tests were carried out in the previously mentioned areas, going along a different route from the one used to create the digital map, to avoid any correlation between them. Besides, the tests were carried out at different times and on different dates from those used to generate the map. The equipment used in the test was the same Astech G12 GPS receiver and additionally the speed of the vehicle was obtained from the vehicle internal communication bus, because its measurement did not need to be too accurate as it was only used to distinguish when the vehicle was moving and when not. The confidence region for this GPS receiver was fixed in a circumference whose radius is 12 m. This value was obtained after completing tests with the receiver in different static locations over a long period of time and analysing the dispersion of the positioning points. The static locations included obstacle-free areas and areas with some high obstacles in the nearby and densely covered areas. The defined circumference comprises more that 75% valid points. <xref ref-type="fig" rid="sensors-16-00193-f005">Figure 5</xref>
shows the results of one of the examples during a test of the position points obtained from the GPS receiver, along with the digital map points and the positioning of the vehicle on it using the map-matching algorithm.</p>
<p>Link identification is considered to be correct when the algorithm assigns a certain GPS positioning to its correct segment on the map. With this consideration it has been observed that the algorithm correct link identification percentage ranges from 98.1% to 99.3%, the higher value being achieved when the speed information is taken as an input. These results are quite satisfactory and are among the ones obtained by the map-matching algorithms developed in [<xref rid="B30-sensors-16-00193" ref-type="bibr">30</xref>
,<xref rid="B32-sensors-16-00193" ref-type="bibr">32</xref>
], among others. Unlike these other algorithms, no information is required from inertial sensors (the speed is only used to detect when the vehicle is not moving) and it is quick enough to be executed in real-time, and also, it is possible to have high control over its performance by changing the parameters and weights defined along the algorithm. Additionally, the causes of the different errors have been analysed.</p>
<fig id="sensors-16-00193-f005" position="float"><label>Figure 5</label>
<caption><p>Example of the map-matching algorithm performance.</p>
</caption>
<graphic xlink:href="sensors-16-00193-g005"></graphic>
</fig>
<p><xref ref-type="table" rid="sensors-16-00193-t002">Table 2</xref>
shows the results for tests on the two test areas and the kind of errors detected. The causes of the errors are quite specific and their frequency very low. Besides, the time needed to restore the correct positioning is quite short. The main errors that appear can be divided into three different types:
<list list-type="bullet"><list-item><p>Type I: The first error (<xref ref-type="fig" rid="sensors-16-00193-f006">Figure 6</xref>
) occurs when a junction is crossed and a legal turn is made instead of going straight. Since the priority link at this scenario is, in general, the one that involves going straight (hence, getting a higher belonging value) if the positioning generated by the GPS is not quite accurate, it could occur that for a few GPS points the algorithm locates the vehicle in an incorrect link (the one that goes straight). However, when the direction of the GPS points is parallel to the segment where the vehicle actually is, and when the vehicle moves away from the junction, the algorithm changes and locates the vehicle in the correct link. This error is quite unusual and the algorithm restores the correct positioning in a short period of time.</p>
</list-item>
<list-item><p>Type II: The second error (<xref ref-type="fig" rid="sensors-16-00193-f007">Figure 7</xref>
) occurs when the GPS coverage is lost for a period of time and gets back near a junction and the algorithm decides incorrectly which segment is the good one after the vehicle turn. In this case, the map-matching process is performed as if it were the initial point. In some cases, this causes a mismatching, although after a few seconds the algorithm corrects its mistake locating the vehicle in the correct link. After losing the GPS signal, if the vehicle is in another segment when the signal is recovered and the belonging value does not decrease its weight, this could make the algorithm mismatch the position of the vehicle. After GPS positioning is recovered, the algorithm locates the vehicle in the incorrect segment because it is a priority link (taking into account the segment where the vehicle was located before) and after a few points it changes to the other segment, which is obviously where the car is. This error is quite unusual and the algorithm restores the correct positioning in a short period of time.</p>
</list-item>
<list-item><p>Type III: The third error (<xref ref-type="fig" rid="sensors-16-00193-f008">Figure 8</xref>
) occurs when the vehicle is not moving. In these cases the GPS position fixes could appear scattered and if the vehicle is near a junction, they could get closer to another link than the one in which the vehicle is stopped, eventually changing its matching position. Also, if the stop takes a long time, when the vehicle starts to move again the algorithm is not yet considering the possibility of relocating the vehicle (this only happens for a few seconds after a change of segment is made) so it will take more time to relocate the vehicle correctly than in the other errors. It is important to point out that this kind of error can be solved by taking into account the speed information, even if it is not too accurate. It should also be pointed out that the 11.8 s error that appears in <xref ref-type="table" rid="sensors-16-00193-t003">Table 3</xref>
does not occur when the vehicle is moving but is solved when the vehicle starts moving, but it takes more time than in the other errors to relocate the vehicle (around 3 s). </p>
</list-item>
</list>
</p>
<table-wrap id="sensors-16-00193-t003" position="float"><object-id pub-id-type="pii">sensors-16-00193-t003_Table 3</object-id>
<label>Table 3</label>
<caption><p>Map-matching algorithm results.</p>
</caption>
<table frame="hsides" rules="groups"><thead><tr><th align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" rowspan="1" colspan="1"></th>
<th align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" rowspan="1" colspan="1">Test Area 1</th>
<th align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" rowspan="1" colspan="1">Test Area 2</th>
<th align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" rowspan="1" colspan="1"></th>
</tr>
</thead>
<tbody><tr><td align="center" valign="middle" rowspan="1" colspan="1">Test duration (s)</td>
<td align="center" valign="middle" rowspan="1" colspan="1">1060.0</td>
<td align="center" valign="middle" rowspan="1" colspan="1">1050.1</td>
<td align="center" valign="middle" rowspan="1" colspan="1"></td>
</tr>
<tr><td align="center" valign="middle" rowspan="1" colspan="1">GPS signal availability (%)</td>
<td align="center" valign="middle" rowspan="1" colspan="1">61.2%</td>
<td align="center" valign="middle" rowspan="1" colspan="1">61.1%</td>
<td align="center" valign="middle" rowspan="1" colspan="1"></td>
</tr>
<tr><td align="center" valign="middle" rowspan="1" colspan="1">--</td>
<td align="center" valign="middle" rowspan="1" colspan="1"># error appears (without speed information / with speed information)</td>
<td align="center" valign="middle" rowspan="1" colspan="1"># error appears (without speed information / with speed information)</td>
<td align="center" valign="middle" rowspan="1" colspan="1">longest duration (s)</td>
</tr>
<tr><td align="center" valign="middle" rowspan="1" colspan="1">Error type I </td>
<td align="center" valign="middle" rowspan="1" colspan="1">4 / 4</td>
<td align="center" valign="middle" rowspan="1" colspan="1">2 / 2</td>
<td align="center" valign="middle" rowspan="1" colspan="1">2.1 / 2.1</td>
</tr>
<tr><td align="center" valign="middle" rowspan="1" colspan="1">Error type II</td>
<td align="center" valign="middle" rowspan="1" colspan="1">3 / 3</td>
<td align="center" valign="middle" rowspan="1" colspan="1">2 / 2</td>
<td align="center" valign="middle" rowspan="1" colspan="1">1.6 / 1.6</td>
</tr>
<tr><td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Error type III</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">7 / 2</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">3 / 2</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">11.8 / 3.0</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="sensors-16-00193-f006" position="float"><label>Figure 6</label>
<caption><p>Type I error example.</p>
</caption>
<graphic xlink:href="sensors-16-00193-g006"></graphic>
</fig>
<fig id="sensors-16-00193-f007" position="float"><label>Figure 7</label>
<caption><p>Type II error examples. (<bold>a</bold>
) T-junction; (<bold>b</bold>
) V-junction.</p>
</caption>
<graphic xlink:href="sensors-16-00193-g007"></graphic>
</fig>
<fig id="sensors-16-00193-f008" position="float"><label>Figure 8</label>
<caption><p>Type III error example.</p>
</caption>
<graphic xlink:href="sensors-16-00193-g008"></graphic>
</fig>
<p>To conclude, some characteristics regarding the performance of the algorithm could be pointed out:
<list list-type="bullet"><list-item><p>The algorithm does not mismatch the vehicle’s position when the GPS inputs have large errors in positioning.</p>
</list-item>
<list-item><p>After a change of segment when locating the vehicle, the algorithm considers the possibility of being mistaken and analyses other solutions for a few points after the change is made. Therefore, this allows it to relocate the vehicle if necessary.</p>
</list-item>
<list-item><p>Knowing that the vehicle is stopped could significantly improve the results, even without knowing the speed of the vehicle with high accuracy. This allows the algorithm to eliminate the error that can be introduced by the spreading of the GPS signal, which in bad conditions of GPS coverage could be quite high. </p>
</list-item>
<list-item><p>The perpendicular distance value penalizes those digital maps with a high density of points, that is, with little distance between them, as in the map used in this research, improving the results if this distance is higher, which is more usual. However, the algorithm proved to be robust even in these unpromising circumstances.</p>
</list-item>
</list>
</p>
</sec>
</sec>
<sec id="sec4-sensors-16-00193"><title>4. Conclusions</title>
<p>A map-matching algorithm that does not require inertial sensors and performs well even in areas with low GNSS coverage is put forward in this research. It has been observed that the errors that appear have a repetitive pattern and that these errors are corrected in a few seconds, which means the user does not notice them. Also, it can solve a common problem that navigator systems have, in which once the system has decided to locate the vehicle in a link, it takes time for it to relocate the vehicle in the event of a mismatch. After a change of segment, this new algorithm considers the possible alternatives that existed before the change, relocating the vehicle if necessary, when the results of the weights seem more coherent for the vehicle to be located in another link. This makes the correction process quicker than with other algorithms.</p>
<p>The algorithm presents limitations in complex scenarios with Y-junctions and frequent signal reception losses that sometimes make it mismatch the vehicle position. Nevertheless, the results obtained are very satisfactory and the corrections, in the event of there being an error, are carried out quickly, thus, avoiding the need to use inertial sensors.</p>
<p>The map-matching algorithm is also valid for commercial digital maps. Considering the analysis of the most frequent errors detected, their main cause is the degradation of the GNSS signal while the digital map accuracy is responsible only for a reduced set of incorrect locations. Obviously, in the event that the map has worse accuracy, vehicle positioning could be negatively influenced but the structure of the algorithm could provide better results than other methods that work in real time.</p>
<p>Finally, it should be pointed out that in spite of being appropriate for informative functions, these algorithms are not useful for applications where safety is a critical element. In those kinds of applications more accuracy is needed, both in the digital map data and in positioning the vehicles into them. The map-matching algorithms, as conceived today, will not make sense in these scenarios because there will be more accurate maps and also more accurate satellite positioning, making locating the vehicle easier for the algorithm. Nonetheless, to achieve these values of accuracy in the automotive field is a different technological problem. Therefore, as of today, it is necessary to turn to these map-matching algorithms that try to absorb and minimize the limitations of positioning systems and digital maps.</p>
</sec>
</body>
<back><ack><title>Acknowledgments</title>
<p>This work has received the support of the Spanish Ministerio de Economía y Competitividad (TRA2013-48314-C3-2-R) and the Region of Madrid Excellence Network SEGVAUTO-TRIES.</p>
</ack>
<notes><title>Author Contributions</title>
<p>Felipe Jimenez is the project’s main researcher and proposed the system. Sergio Monzón implemented the map matching system algorithms. José E. Naranjo was in charge of coordinating the field tests.</p>
</notes>
<notes><title>Conflicts of Interest</title>
<p>The authors declare no conflict of interest.</p>
</notes>
<ref-list><title>References</title>
<ref id="B1-sensors-16-00193"><label>1.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Jiménez</surname>
<given-names>F.</given-names>
</name>
<name><surname>Naranjo</surname>
<given-names>J.E.</given-names>
</name>
</person-group>
<article-title>Nuevos requerimientos de precisión en el posicionamiento de vehículos para aplicaciones ADAS</article-title>
<source>Dyna</source>
<year>2009</year>
<volume>84</volume>
<fpage>245</fpage>
<lpage>250</lpage>
</element-citation>
</ref>
<ref id="B2-sensors-16-00193"><label>2.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Jiménez</surname>
<given-names>F.</given-names>
</name>
</person-group>
<article-title>Improvements in road geometry measurement using inertial measurement systems in datalog vehicles</article-title>
<source>Measurement</source>
<year>2011</year>
<volume>44</volume>
<fpage>102</fpage>
<lpage>112</lpage>
</element-citation>
</ref>
<ref id="B3-sensors-16-00193"><label>3.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Naranjo</surname>
<given-names>J.E.</given-names>
</name>
<name><surname>Jiménez</surname>
<given-names>F.</given-names>
</name>
<name><surname>Aparicio</surname>
<given-names>F.</given-names>
</name>
<name><surname>Zato</surname>
<given-names>J.</given-names>
</name>
</person-group>
<article-title>GPS and inertial systems for high precision positioning on motorways</article-title>
<source>J. Navig.</source>
<year>2009</year>
<volume>62</volume>
<fpage>351</fpage>
<lpage>363</lpage>
</element-citation>
</ref>
<ref id="B4-sensors-16-00193"><label>4.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Jiménez</surname>
<given-names>F.</given-names>
</name>
<name><surname>Naranjo</surname>
<given-names>J.E.</given-names>
</name>
<name><surname>García</surname>
<given-names>F.</given-names>
</name>
<name><surname>Armingol</surname>
<given-names>J.M.</given-names>
</name>
</person-group>
<article-title>Can low-cost road vehicles positioning systems fulfil accuracy specifications of new ADAS applications?</article-title>
<source>J. Navig.</source>
<year>2011</year>
<volume>64</volume>
<fpage>251</fpage>
<lpage>264</lpage>
<pub-id pub-id-type="doi">10.1017/S0373463310000470</pub-id>
</element-citation>
</ref>
<ref id="B5-sensors-16-00193"><label>5.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Chao</surname>
<given-names>J.</given-names>
</name>
<name><surname>Chen</surname>
<given-names>Y.Q.</given-names>
</name>
<name><surname>Chen</surname>
<given-names>W.</given-names>
</name>
<name><surname>Ding</surname>
<given-names>X.</given-names>
</name>
<name><surname>Li</surname>
<given-names>Z.</given-names>
</name>
<name><surname>Wang</surname>
<given-names>N.</given-names>
</name>
<name><surname>Yu</surname>
<given-names>M.</given-names>
</name>
</person-group>
<article-title>An experimental investigation into the performance of GPS based vehicle positioning in very dense urban areas</article-title>
<source>J. Geospatial Eng.</source>
<year>2001</year>
<volume>3</volume>
<fpage>59</fpage>
<lpage>66</lpage>
</element-citation>
</ref>
<ref id="B6-sensors-16-00193"><label>6.</label>
<element-citation publication-type="confproc"><person-group person-group-type="author"><name><surname>Groves</surname>
<given-names>P.D.</given-names>
</name>
<name><surname>Jiang</surname>
<given-names>Z.</given-names>
</name>
<name><surname>Wang</surname>
<given-names>L.</given-names>
</name>
<name><surname>Ziebart</surname>
<given-names>M.K.</given-names>
</name>
</person-group>
<article-title>Intelligent Urban Positioning using Multi Constellation GNSS with 3D Mapping and NLOS Signal Detection</article-title>
<source>Proceedings of the 25th International Technical Meeting of the Satellite Division of The Institute of Navigation</source>
<conf-loc>Nashville, TN, USA</conf-loc>
<conf-date>17–21 September 2012</conf-date>
</element-citation>
</ref>
<ref id="B7-sensors-16-00193"><label>7.</label>
<element-citation publication-type="confproc"><person-group person-group-type="author"><name><surname>Groves</surname>
<given-names>P.D.</given-names>
</name>
<name><surname>Jiang</surname>
<given-names>Z.</given-names>
</name>
<name><surname>Wang</surname>
<given-names>L.</given-names>
</name>
<name><surname>Ziebart</surname>
<given-names>M.K.</given-names>
</name>
</person-group>
<article-title>Intelligent urban positioning, shadow matching and non-line-of-sight signal detection</article-title>
<source>Proceedings of the 2012 6th ESA Workshop on Satellite Navigation Technologies and European Workshop on GNSS Signals and Signal Processing (NAVITEC)</source>
<conf-loc>Noordwijk, The Netherlands</conf-loc>
<conf-date>5–7 December 2012</conf-date>
</element-citation>
</ref>
<ref id="B8-sensors-16-00193"><label>8.</label>
<element-citation publication-type="book"><person-group person-group-type="author"><name><surname>Bendafi</surname>
<given-names>H.</given-names>
</name>
<name><surname>Hummelsheim</surname>
<given-names>K.</given-names>
</name>
<name><surname>Sabel</surname>
<given-names>H.</given-names>
</name>
<name><surname>Van de Ven</surname>
<given-names>S.</given-names>
</name>
</person-group>
<source>Classification of Data Capturing/Production Techniques. NextMap Project Deliverable D 3.1</source>
<publisher-name>NextMap Consortium</publisher-name>
<publisher-loc>Brussels, Belgium</publisher-loc>
<year>2000</year>
</element-citation>
</ref>
<ref id="B9-sensors-16-00193"><label>9.</label>
<element-citation publication-type="book"><person-group person-group-type="author"><name><surname>Miles</surname>
<given-names>J.C.</given-names>
</name>
<name><surname>Chen</surname>
<given-names>K.</given-names>
</name>
</person-group>
<source>ITS Handbook</source>
<edition>2nd ed.</edition>
<publisher-name>PIARC</publisher-name>
<publisher-loc>Paris, France</publisher-loc>
<year>2004</year>
</element-citation>
</ref>
<ref id="B10-sensors-16-00193"><label>10.</label>
<element-citation publication-type="book"><person-group person-group-type="author"><name><surname>Yerpez</surname>
<given-names>J.</given-names>
</name>
<name><surname>Ferrandez</surname>
<given-names>F.</given-names>
</name>
</person-group>
<source>Road Characteristics and Safety. Identification of the Part Played by Road Factors in Accident Generation</source>
<publisher-name>INRETS</publisher-name>
<publisher-loc>Arcueil, France</publisher-loc>
<year>1986</year>
</element-citation>
</ref>
<ref id="B11-sensors-16-00193"><label>11.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Jiménez</surname>
<given-names>F.</given-names>
</name>
<name><surname>Aparicio</surname>
<given-names>F.</given-names>
</name>
<name><surname>Estrada</surname>
<given-names>G.</given-names>
</name>
</person-group>
<article-title>Measurement uncertainty determination and curve fitting algorithms for development of accurate digital maps for Advanced Driver Assistance Systems</article-title>
<source>Transport. Res. C Emerg.</source>
<year>2009</year>
<volume>17</volume>
<fpage>225</fpage>
<lpage>239</lpage>
</element-citation>
</ref>
<ref id="B12-sensors-16-00193"><label>12.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Hashemi</surname>
<given-names>M.</given-names>
</name>
<name><surname>Karimi</surname>
<given-names>H.A.</given-names>
</name>
</person-group>
<article-title>A critical review of real-time map-matching algorithms: Current issues and future directions</article-title>
<source>Comput. Environ. Urban Syst.</source>
<year>2014</year>
<volume>48</volume>
<fpage>153</fpage>
<lpage>165</lpage>
</element-citation>
</ref>
<ref id="B13-sensors-16-00193"><label>13.</label>
<element-citation publication-type="book"><person-group person-group-type="author"><name><surname>Blazquez</surname>
<given-names>C.A.</given-names>
</name>
<name><surname>Miranda</surname>
<given-names>P.A.</given-names>
</name>
</person-group>
<article-title>A Real Time Topological Map Matching Methodology for GPS/GIS-Based Travel Behavior Studies</article-title>
<source>Mobile Technologies for Activity-Travel Data Collection and Analysis</source>
<person-group person-group-type="editor"><name><surname>Rasouli</surname>
<given-names>S.</given-names>
</name>
<name><surname>Timmermans</surname>
<given-names>H.</given-names>
</name>
</person-group>
<publisher-name>Information Science Reference</publisher-name>
<publisher-loc>Hershey, PA, USA</publisher-loc>
<year>2014</year>
<fpage>152</fpage>
<lpage>170</lpage>
</element-citation>
</ref>
<ref id="B14-sensors-16-00193"><label>14.</label>
<element-citation publication-type="book"><person-group person-group-type="author"><name><surname>Wolf</surname>
<given-names>J.</given-names>
</name>
<name><surname>Bachman</surname>
<given-names>W.</given-names>
</name>
<name><surname>Oliveira</surname>
<given-names>M.S.</given-names>
</name>
<name><surname>Auld</surname>
<given-names>J.</given-names>
</name>
<name><surname>Mohammadian</surname>
<given-names>A.</given-names>
</name>
<name><surname>Vovsha</surname>
<given-names>P.</given-names>
</name>
</person-group>
<source>Applying GPS Data to Understand Travel Behavior. Transportation Research Board</source>
<publisher-name>National Cooperative Highway Research Program, Report 775</publisher-name>
<publisher-loc>Washington, WA, USA</publisher-loc>
<year>2014</year>
</element-citation>
</ref>
<ref id="B15-sensors-16-00193"><label>15.</label>
<element-citation publication-type="confproc"><person-group person-group-type="author"><name><surname>Syed</surname>
<given-names>S.</given-names>
</name>
<name><surname>Cannon</surname>
<given-names>M.E.</given-names>
</name>
</person-group>
<article-title>Fuzzy logic based-map matching algorithms for vehicle navigation system in urban canyons</article-title>
<source>Proceedings of the ION National Technical Meeting</source>
<conf-loc>San Diego, CA, USA</conf-loc>
<conf-date>26–28 January 2004</conf-date>
</element-citation>
</ref>
<ref id="B16-sensors-16-00193"><label>16.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Quddus</surname>
<given-names>M.A.</given-names>
</name>
<name><surname>Ochieng</surname>
<given-names>W.Y.</given-names>
</name>
<name><surname>Noland</surname>
<given-names>R.B.</given-names>
</name>
</person-group>
<article-title>Current map-matching algorithms for transport applications: State-of-the art and future research directions</article-title>
<source>Transport. Res. C Emerg.</source>
<year>2007</year>
<volume>15</volume>
<fpage>312</fpage>
<lpage>328</lpage>
</element-citation>
</ref>
<ref id="B17-sensors-16-00193"><label>17.</label>
<element-citation publication-type="confproc"><person-group person-group-type="author"><name><surname>Kim</surname>
<given-names>J.S.</given-names>
</name>
<name><surname>Lee</surname>
<given-names>J.H.</given-names>
</name>
<name><surname>Kang</surname>
<given-names>T.H.</given-names>
</name>
<name><surname>Lee</surname>
<given-names>W.Y.</given-names>
</name>
<name><surname>Kim</surname>
<given-names>Y.G.</given-names>
</name>
</person-group>
<article-title>Node based map-matching algorithm for car navigation system</article-title>
<source>Proceedings of the 29th ISATA Symposium</source>
<conf-loc>Florence, Italy</conf-loc>
<conf-date>3–6 June 1996</conf-date>
</element-citation>
</ref>
<ref id="B18-sensors-16-00193"><label>18.</label>
<element-citation publication-type="book"><person-group person-group-type="author"><name><surname>Bernstein</surname>
<given-names>D.</given-names>
</name>
<name><surname>Kornhauser</surname>
<given-names>A.</given-names>
</name>
</person-group>
<source>An Introduction to Map-Matching For Personal Navigation Assistants</source>
<publisher-name>New Jersey TIDE Center</publisher-name>
<publisher-loc>Newark, NJ, USA</publisher-loc>
<year>1996</year>
</element-citation>
</ref>
<ref id="B19-sensors-16-00193"><label>19.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>White</surname>
<given-names>C.E.</given-names>
</name>
<name><surname>Bernstein</surname>
<given-names>D.</given-names>
</name>
<name><surname>Kornhauser</surname>
<given-names>A.L.</given-names>
</name>
</person-group>
<article-title>Some map-matching algorithms for personal navigation assistants</article-title>
<source>Transport. Res. C Emerg.</source>
<year>2000</year>
<volume>8</volume>
<fpage>91</fpage>
<lpage>108</lpage>
</element-citation>
</ref>
<ref id="B20-sensors-16-00193"><label>20.</label>
<element-citation publication-type="confproc"><person-group person-group-type="author"><name><surname>Phuyal</surname>
<given-names>B.</given-names>
</name>
</person-group>
<article-title>Method and use of aggregated dead reckoning sensor and GPS data for map-matching</article-title>
<source>Proceedings of the Institute of Navigation (ION) Annual Conference</source>
<conf-loc>Portland, OR, USA</conf-loc>
<conf-date>20–27 September 2002</conf-date>
</element-citation>
</ref>
<ref id="B21-sensors-16-00193"><label>21.</label>
<element-citation publication-type="confproc"><person-group person-group-type="author"><name><surname>Greenfeld</surname>
<given-names>J.S.</given-names>
</name>
</person-group>
<article-title>Matching GPS observations to locations on a digital map</article-title>
<source>Proceedings of the 81st Annual Meeting of the Transportation Research Board</source>
<conf-loc>Washington, WA, USA</conf-loc>
<conf-date>13–17 January 2002</conf-date>
</element-citation>
</ref>
<ref id="B22-sensors-16-00193"><label>22.</label>
<element-citation publication-type="confproc"><person-group person-group-type="author"><name><surname>Chen</surname>
<given-names>W.</given-names>
</name>
<name><surname>Yu</surname>
<given-names>M.</given-names>
</name>
<name><surname>Li</surname>
<given-names>Z.</given-names>
</name>
<name><surname>Chen</surname>
<given-names>Y.Q.</given-names>
</name>
</person-group>
<article-title>Integrated vehicle navigation system for urban applications</article-title>
<source>Proceedings of the 7th International Conference on Global Navigation Satellite Systems (GNSS)</source>
<conf-loc>Graz, Austria</conf-loc>
<conf-date>22–25 April 2003</conf-date>
</element-citation>
</ref>
<ref id="B23-sensors-16-00193"><label>23.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Quddus</surname>
<given-names>M.A.</given-names>
</name>
<name><surname>Ochieng</surname>
<given-names>W.Y.</given-names>
</name>
<name><surname>Zhao</surname>
<given-names>L.</given-names>
</name>
<name><surname>Noland</surname>
<given-names>R.B.</given-names>
</name>
</person-group>
<article-title>A general map-matching algorithm for transport telematics applications</article-title>
<source>GPS Solut.</source>
<year>2003</year>
<volume>7</volume>
<fpage>157</fpage>
<lpage>167</lpage>
</element-citation>
</ref>
<ref id="B24-sensors-16-00193"><label>24.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Blazquez</surname>
<given-names>C.A.</given-names>
</name>
<name><surname>Vonderohe</surname>
<given-names>A.P.</given-names>
</name>
</person-group>
<article-title>Simple map-matching algorithm applied to intelligent winter maintenance vehicle data</article-title>
<source>Transport. Res. Rec.</source>
<year>2005</year>
<volume>1935</volume>
<fpage>68</fpage>
<lpage>76</lpage>
<pub-id pub-id-type="doi">10.3141/1935-08</pub-id>
</element-citation>
</ref>
<ref id="B25-sensors-16-00193"><label>25.</label>
<element-citation publication-type="patent"><person-group person-group-type="author"><name><surname>Honey</surname>
<given-names>S.K.</given-names>
</name>
<name><surname>Zavoli</surname>
<given-names>W.B.</given-names>
</name>
<name><surname>Milnes</surname>
<given-names>K.A.</given-names>
</name>
<name><surname>Phillips</surname>
<given-names>A.C.</given-names>
</name>
<name><surname>White</surname>
<given-names>M.S.</given-names>
</name>
<name><surname>Loughmiller</surname>
<given-names>G.E.</given-names>
</name>
</person-group>
<article-title>Vehicle Navigational System and Method</article-title>
<source>U.S. Patent</source>
<patent>No. 4,796,191</patent>
<day>3</day>
<month>1</month>
<year>1989</year>
</element-citation>
</ref>
<ref id="B26-sensors-16-00193"><label>26.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Ochieng</surname>
<given-names>W.Y.</given-names>
</name>
<name><surname>Quddus</surname>
<given-names>M.A.</given-names>
</name>
<name><surname>Noland</surname>
<given-names>R.B.</given-names>
</name>
</person-group>
<article-title>Map-matching in complex urban road networks</article-title>
<source>Rev. Bras. Cartogr.</source>
<year>2004</year>
<volume>55</volume>
<fpage>1</fpage>
<lpage>18</lpage>
</element-citation>
</ref>
<ref id="B27-sensors-16-00193"><label>27.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Zhao</surname>
<given-names>L.</given-names>
</name>
<name><surname>Ochieng</surname>
<given-names>W.Y.</given-names>
</name>
<name><surname>Quddus</surname>
<given-names>M.A.</given-names>
</name>
<name><surname>Noland</surname>
<given-names>R.B.</given-names>
</name>
</person-group>
<article-title>An extended Kalman filter algorithm for integrating GPS and low-cost dead reckoning system data for vehicle performance and emissions monitoring</article-title>
<source>J. Navig.</source>
<year>2003</year>
<volume>56</volume>
<fpage>257</fpage>
<lpage>275</lpage>
</element-citation>
</ref>
<ref id="B28-sensors-16-00193"><label>28.</label>
<element-citation publication-type="confproc"><person-group person-group-type="author"><name><surname>Kim</surname>
<given-names>W.</given-names>
</name>
<name><surname>Jee</surname>
<given-names>G.</given-names>
</name>
<name><surname>Lee</surname>
<given-names>J.</given-names>
</name>
</person-group>
<article-title>Efficient use of digital road map in various positioning for ITS</article-title>
<source>Proceedings of the IEEE Symposium on Position Location and Navigation</source>
<conf-loc>San Diego, CA, USA</conf-loc>
<conf-date>13–16 March 2000</conf-date>
</element-citation>
</ref>
<ref id="B29-sensors-16-00193"><label>29.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Gustafsson</surname>
<given-names>F.</given-names>
</name>
<name><surname>Gunnarsson</surname>
<given-names>F.</given-names>
</name>
<name><surname>Bergman</surname>
<given-names>N.</given-names>
</name>
<name><surname>Forssell</surname>
<given-names>U.</given-names>
</name>
<name><surname>Jansson</surname>
<given-names>J.</given-names>
</name>
<name><surname>Karlsson</surname>
<given-names>R.</given-names>
</name>
<name><surname>Nordlund</surname>
<given-names>P.</given-names>
</name>
</person-group>
<article-title>Particle filters for positioning, navigation, and tracking</article-title>
<source>IEEE Trans. Signal Process.</source>
<year>2002</year>
<volume>50</volume>
<fpage>425</fpage>
<lpage>435</lpage>
</element-citation>
</ref>
<ref id="B30-sensors-16-00193"><label>30.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Quddus</surname>
<given-names>M.A.</given-names>
</name>
<name><surname>Noland</surname>
<given-names>R.B.</given-names>
</name>
<name><surname>Ochieng</surname>
<given-names>W.Y.</given-names>
</name>
</person-group>
<article-title>A high accuracy fuzzy logic-based map-matching algorithm for road transport</article-title>
<source>J. Intell. Transport. Syst.</source>
<year>2006</year>
<volume>10</volume>
<fpage>103</fpage>
<lpage>115</lpage>
</element-citation>
</ref>
<ref id="B31-sensors-16-00193"><label>31.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Velaga</surname>
<given-names>N.R.</given-names>
</name>
<name><surname>Quddus</surname>
<given-names>M.A.</given-names>
</name>
<name><surname>Bristow</surname>
<given-names>A.L.</given-names>
</name>
</person-group>
<article-title>Developing an enhanced weight-based topological map-matching algorithm for intelligent transport systems</article-title>
<source>Transport. Res. C Emerg.</source>
<year>2009</year>
<volume>17</volume>
<fpage>672</fpage>
<lpage>683</lpage>
</element-citation>
</ref>
<ref id="B32-sensors-16-00193"><label>32.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Li</surname>
<given-names>L.</given-names>
</name>
<name><surname>Quddus</surname>
<given-names>M.</given-names>
</name>
<name><surname>Zhao</surname>
<given-names>L.</given-names>
</name>
</person-group>
<article-title>High accuracy tightly-coupled integrity monitoring algorithm for map-matching</article-title>
<source>Transport. Res. C Emerg.</source>
<year>2013</year>
<volume>36</volume>
<fpage>13</fpage>
<lpage>26</lpage>
<pub-id pub-id-type="doi">10.1016/j.trc.2013.07.009</pub-id>
</element-citation>
</ref>
<ref id="B33-sensors-16-00193"><label>33.</label>
<element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Quddus</surname>
<given-names>M.A.</given-names>
</name>
<name><surname>Ochieng</surname>
<given-names>W.Y.</given-names>
</name>
<name><surname>Noland</surname>
<given-names>R.B.</given-names>
</name>
</person-group>
<article-title>Integrity of map-matching algorithms</article-title>
<source>Transport. Res. C Emerg.</source>
<year>2006</year>
<volume>14</volume>
<fpage>283</fpage>
<lpage>302</lpage>
<pub-id pub-id-type="doi">10.1016/j.trc.2006.08.004</pub-id>
</element-citation>
</ref>
</ref-list>
</back>
</pmc>
</record>
Pour manipuler ce document sous Unix (Dilib)
EXPLOR_STEP=$WICRI_ROOT/Ticri/CIDE/explor/TelematiV1/Data/Pmc/Corpus
HfdSelect -h $EXPLOR_STEP/biblio.hfd -nk 000078 | SxmlIndent | more
Ou
HfdSelect -h $EXPLOR_AREA/Data/Pmc/Corpus/biblio.hfd -nk 000078 | SxmlIndent | more
Pour mettre un lien sur cette page dans le réseau Wicri
{{Explor lien |wiki= Ticri/CIDE |area= TelematiV1 |flux= Pmc |étape= Corpus |type= RBID |clé= PMC:4801570 |texte= Definition of an Enhanced Map-Matching Algorithm for Urban Environments with Poor GNSS Signal Quality }}
Pour générer des pages wiki
HfdIndexSelect -h $EXPLOR_AREA/Data/Pmc/Corpus/RBID.i -Sk "pubmed:26861320" \ | HfdSelect -Kh $EXPLOR_AREA/Data/Pmc/Corpus/biblio.hfd \ | NlmPubMed2Wicri -a TelematiV1
![]() | This area was generated with Dilib version V0.6.31. | ![]() |