Next Article in Journal
Positivity and Stability of Fractional-Order Coupled Neural Network with Time-Varying Delays
Next Article in Special Issue
PIFall: A Pressure Insole-Based Fall Detection System for the Elderly Using ResNet3D
Previous Article in Journal
Genetic Algorithm for High-Dimensional Emotion Recognition from Speech Signals
Previous Article in Special Issue
VR Drumming Pedagogy: Action Observation, Virtual Co-Embodiment, and Development of Drumming “Halvatar”
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Towards Smarter Positioning through Analyzing Raw GNSS and Multi-Sensor Data from Android Devices: A Dataset and an Open-Source Application

Electrical Engineering Unit, Tampere University, 33720 Tampere, Finland
*
Author to whom correspondence should be addressed.
Electronics 2023, 12(23), 4781; https://doi.org/10.3390/electronics12234781
Submission received: 6 November 2023 / Revised: 20 November 2023 / Accepted: 22 November 2023 / Published: 25 November 2023
(This article belongs to the Special Issue Wearable Sensing Devices and Technology)

Abstract

:
The state-of-the-art Android environment, available on a major market share of smartphones, provides an open playground for sensor data gathering. Moreover, the rise in new types of devices (e.g., wearables/smartwatches) is further extending the market opportunities with a variety of new sensor types. The existing implementations of biometric/medical sensors can allow the general public to directly access their health measurements, such as Electrocardiogram (ECG) or Oxygen Saturation (SpO2). This access greatly increases the possible applications of these devices with the combination of all the onboard sensors that are broadly in use nowadays. In this study, we look beyond the current state of the art into the positioning capacities of Android smart devices and wearables, with a focus on raw Global Navigation Satellite Systems (GNSS) measurements that are still mostly lacking in the research world. We develop a novel open-source Android application working in both smartphone and smartwatch environments for multi-sensor measurement data logging that also includes GNSS, an Inertial Navigation System (INS) magnetometer, and a barometer. Four smartphones and one smartwatch are used to perform surveys in different scenarios. The extraction of GNSS raw data from a wearable device has not been reported yet in the literature and no open-source app has existed so far for extracting GNSS data from wearables. Not only the developed app but also the results of these measurement surveys are provided as an open-access dataset. We start by defining our methodology and the acquisition protocol, and we dive into the structure of the dataset files. We also propose a first analysis of the data logged and evaluate the data according to several performance metrics. A discussion reviewing the capacities of smart devices for advanced positioning is proposed, as well as the current open challenges.

1. Introduction

Interest in using smartphones for sensor logging has been part of the research community for the last decade. Smartphones provide a very interesting environment for data gathering, as they include a variety of sensors (e.g., accelerometers, gyroscopes, camera, Wireless Fidelity (WiFi), Bluetooth Low Energy (BLE)) embedded inside a low-cost platform. The Application Programming Interface (API) centralizes access to all the sensor measurements for Android devices, greatly simplifying the developments. Moreover, synchronization of all data is ensured by a common platform, making it useful for sensor fusion studies [1,2].
More recently, the development of “wearables” provides similar but new data-gathering platforms. On top of providing ultra-compact designs for the same sensors available on smartphones, smartwatches propose new kinds of sensors more related to health monitoring, such as ECG, photoplethysmogram (PPG), Galvanic Sensor Response (GSR), and/or SpO2. The different sensors in Android smart devices are displayed in Figure 1, showing the potential of smartwatches. While some manufacturers still propose their ecosystem (e.g., “ConnectIQ” for Garmin [3], Fitbit OS for Fitbit [4]), many manufacturers (e.g., Samsung, Google) are aligning on a common Android-based operating system with the possibility of common development of Android application on both the wearable and the smartphone platforms. This research will refer to them under the terms “smart devices”.
In the context of satellite positioning, all smart devices today include a GNSS receiver, yet the collection of measurements used to be limited to the device coordinates only. In 2016, Google enabled access to the “raw GNSS measurements” directly through the Android API. By “raw GNSS measurements”, we understand the measurements made by a receiver to compute a position, such as pseudoranges, carrier phases, Doppler shifts and Signal-to-Noise Ratio (SNR). Since the raw GNSS measurements were made available for smartphone manufacturers, the GNSS research community has been highly interested in the potential of enabling advanced high-precision positioning techniques on such devices, and many research works have been published to assess the receivers’ quality for positioning (see Section 2). We note that, as of today, Apple still needs to open access to the raw GNSS measurements in their OS, preventing similar comparisons on Apple devices. Thus, in this paper, we focus only on Android devices.
In the early years of Android GNSS measurements, only a certain number of Android models would provide access to raw data. Since Android 10 (API 29), Google made it mandatory for any Android device to support access to raw GNSS measurements. Discrepancies between device measurements are still present, but access to raw measurements is now open to potentially any Android devices and not only smartphones, including smartwatches.
The main contributions of this paper are as follows:
  • Developing a novel open-source sensor logging app called “Mimir”, designed for both smartphone and smartwatch environments;
  • Providing an open-source multi-sensor dataset acquired on various Android smart devices (four smartphones and one smartwatch), along with a geodesic-grade reference receiver;
  • Comparing the data quality and positioning accuracy of the Android smart devices in the context of positioning applications.
To the best of the authors’ knowledge, raw GNSS measurements acquisition comparison for smartwatch devices is conducted for the first time in the literature.
This research is performed in the context of the EU-funded projects APROPOS [5] and LEDSOL [6] that aim, among others, to also review low-power/low-cost devices, such as Android smart devices, for navigation purposes. The data acquired consist of four surveys, one static and three pedestrian/dynamic cases, and it was acquired in open-sky and urban areas. The complete dataset is released as an open source under a Creative Commons license CC-BY-4.0 on a Zenodo repository [7].

2. Related Research

2.1. Usage of Android GNSS Measurements

The development of Android GNSS measurements was highly impacted by the release in 2018 of the Xiaomi Mi8, the first device to embed a dual-frequency GNSS chip from Broadcom (BCM4775) [8]. Reception of multiple GNSS frequencies, such as L1 and L5, can enable advanced positioning techniques [9]. Consequently, many publications over the last five years have demonstrated diverse application topics for the usage of Android GNSS measurements: measurement quality [10,11,12,13], high-precision positioning [10,14,15,16], atmospheric error estimation [17,18], sustainable water access through standalone positioning aiding [19,20], spoofing/jamming mitigation [21,22], etc.
While the use of the Android GNSS measurements appears very fruitful and has high potential, acquiring the raw data is not trivial and requires specific apps and access to the device’s developer options. In [11], a comprehensive review of the available Android apps for GNSS data acquisition is performed. The paper analyzes the raw measurements available in Android devices and mentions some of the problems associated with the processing. One of the issues pointed out is the measurement quality and unknown hardware characteristics, which prevent more precise positioning as of today. Similarly, as the receiver is greatly influenced by its environment, a lack of details about the acquisition protocol and lack of dataset diversity (e.g., harsh environments) are also highlighted as a limitation with currently available open data.

2.2. Access to Public Datasets

Today, a few public datasets provide access to Android GNSS measurements. The review from [11] was based on a dataset published by Google, in the context of the Google Smartphone Decimeter Challenge (GSDC) that happened in both 2021 and 2022. The data used for the competition is still accessible online and can be downloaded upon acceptance of the competition rules [23,24]. The data from 2021 are composed of dynamic tracks acquired in a car scenario and performed with different Android device models. Additional details can be found in [25].
Other interesting datasets were published by the EUSPA (former GSA) as part of the “GNSS Raw Measurements Task Force” [26]. The data are accessible through a Google Doc, summarizing the campaigns. As of today, two campaigns are accessible through the document. One campaign from 2020 focuses on different wearables devices but provides access only to positions and not to raw GNSS measurements. Another campaign from 2021 contains data acquired in different scenarios (i.e., static, dynamic pedestrian/bike/car) and environments (i.e., open-sky, forest, suburban, urban, highway) from six Android devices. The accessibility and diversity of the data make the EUSPA dataset very interesting for research purposes. However, we did not use this dataset in this research, as we wanted to focus on a newer generation of Android devices including smartwatches, and assess the potential improvements in the GNSS measurement quality.
To summarise, access to raw GNSS measurements in open datasets is still scarce and limited to a few providers. Indeed, all the studies mentioned before that compared several devices have shown the large discrepancies that can exist in terms of measurement quality. Thus, to mitigate the impact of the data over the proposed methods, it is necessary to compare it on a variety of datasets and devices. Given the amount of new Android devices released every year, keeping up with new datasets for every device might seem vain. Yet, crowd-sourcing and publication of the datasets used in studies could enable more device comparison without the need for each research team to purchase a specific device.

2.3. Wearables and Next GNSS Chip Generation

Wearables have the potential to expand the usage of data gathered in smart devices, bringing the health-related sensor dimension. Android smartwatches are based on a slightly different operating system (OS) than smartphones, called WearOS (formerly Android Wear). This OS is based on the same Android API levels, which allows for the common development of Android applications in both smartphones and smartwatches. WearOS 3.0 (Android 11) is the first version based on a higher version than Android 9, which should provide access to raw GNSS measurements. However, to the best of the authors’ knowledge, no paper until today has yet investigated the GNSS measurement quality of any Android smartwatch. Nevertheless, medical-oriented studies have shown the potential of wearables for medical research [27,28], as well as Android devices for contact tracing [29]. More specifically, in [30], the usage of indoor/outdoor positioning to retrieve the mobility patterns showed interesting results in recovering mental health assessment for patients. Thus, more accurate positioning and motion estimation could enable further medical research, especially if combined with the health sensors of smartwatches.
In 2019, Broadcom announced the chipset’s second generation (BCM4776), a follow-up chipset to the previously mentioned BCM4775 included in the Xiaomi Mi8. According to Broadcom, the new chipset comes with potentially 60% additional L5 signals with the reception of BeiDou-L5 signals [31]. Since 2021, new Android devices have integrated this chipset into their design, such as the Google Pixel 6 and 7, and even the recently released Google Pixel Watch. The release of the new Broadcom chipset could potentially mark the beginning of the second generation of GNSS measurements in Android smart devices.

2.4. Paper Structure

We start by presenting the methodology used for the creation of the dataset. In Section 3, we review the motivation for the device selection, the developed software, and the survey (or measurement) protocol. In Section 4, we provide a deep review of the dataset contents, including the type of sensor logged, the list of the performed surveys, and a description of the scenario and environments. In Section 6, we propose a first analysis of the data, with a comparison of the capacities between the devices. Finally, Section 7 concludes the paper with future development plans for our logging app and perspective research using this dataset.

3. Methodology

In this section, we present the methodology for filtering the different Android devices, in order to select only a subset fitting our research. We proceed with detailing the different software used and developed to acquire and analyze the data, and we finish by presenting our survey protocol.
First, we recall some terminology used in this paper:
  • By “survey”, we mean the act of surveying and gathering data using a measurement device, as defined in land surveying topics.
  • In Differential GNSS (DGNSS), the “base” refer to the static receiver and “rover” refer to the moving receiver.
  • In GNSS, an “epoch” is defined a measure of time when a new GNSS measurement is received. A 1 Hz sampling rate would be equivalent to 1 epoch per second.

3.1. Device Selection

Research in Android GNSS measurements have shown that the measurement’s quality is not equal among all devices, even under identical measurement scenarios, as the manufacturers can embed different GNSS receivers in each new model [12]. Even access to specific GNSS observables (e.g., carrier phase, navigation message) cannot be ensured for each device. While the impact of these discrepancies can be minimal or unseen by the general user, it can prevent some of the research potential. Therefore, we performed the surveys over multiple Android devices for better assessment of their capacities in this study.
As the number of existing Android smartphones is enormous, the selection of the best devices can prove challenging. Thanks to the research community, a comprehensive list of Android devices with their GNSS capacities has been created through crowdsourcing and it is available online [32]. While it may contain multiple entries and some contradictory information, it still offers a first filter to select the devices with the required GNSS capacities. We note, however, that no smartwatch has been reported in this list so far.
To maximize the potential of each evaluated device and the quality of the dataset, we have decided to select devices under four constraints: (1) support of dual-frequency reception; (2) available carrier-phase measurements; (3) available navigation message; (4) GNSS chipset diversity. Point (3) was the most constraining, as many devices do not retrieve the satellite’s ephemeris from the navigation message anymore. Using the aforementioned list, we came down to only 22 devices checking all four requirements. More than half of them used a Broadcom BCM4775 or BCM4776 chip. The BCM4775 has been extensively reviewed in research before given that it was implemented in the Xiaomi Mi8 [10,14,17]; we have decided to focus on evaluating only the new generation BCM4776 instead. The rest of the receivers were chosen based on prices and in order to maximize GNSS chipset and manufacturer diversity. As one smartphone (Samsung A52) was already present in our lab for previous research purposes, we decided to also include it in these surveys for comparison purposes, even though it did not fit the requirements mentioned before. In total, four smartphones were selected and are summarized in Table 1. Note that while the Xiaomi 11T was said to have the navigation message enabled in the online list, we did not receive any during our experiments, and reported it accordingly in the table.
As no previous studies have looked into GNSS measurements in smartwatches, we decided to review the recently released Google Pixel Watch (October 2022) [33]. The watch also embeds a BCM4776 GNSS chip, similar to the one in the Pixel 7, enabling the measurement comparisons between both platforms. For example, while the BCM4776 is supposed to be dual-frequency-enabled, only L1 frequencies were received during the survey. The most logical hypothesis is that the dual-frequency reception was disabled in order to save energy, as it was proven to have a large impact on the energy budget of Android devices [34]. This shows that even when the GNSS chipset model is similar in two devices, large differences in the measurements can still be present.
In the following sections, devices will be referred to by the acronym listed in Table 1 for simplicity.

3.2. Logging Application Developments

In order to log the measurements inside the Android device, an app is used to interact with the Android API. Several apps exist today to log GNSS or sensor data, as reviewed in [11]. The most common one is GNSS logger [35], maintained by Google. It can log GNSS data in multiple formats (e.g., CSV, RINEX, NMEA). Logging other motion sensors is also possible, such as accelerometers, gyroscopes and magnetometers. However, several limitations of the existing applications were found during the first stages of our research. Firstly, only a partial version of the GNSSLogger source code is available on GitHub (old versions of the app), which prevents easy forking to the current version. Secondly, the logging is limited to GNSS and motion sensors logging only (no barometer data), with no possibility of controlling the sampling frequency. Thirdly, GNSSLogger does not exist for smartwatches, and, to the best of the authors’ knowledge, there is currently no app available for logging GNSS data from smartwatches.
Consequently, we decided to develop our own Android app called “Mimir”, a name based on the God of Knowledge in Nordic mythology (see https://www.britannica.com/topic/Mimir (accessed on 21 November 2023)). Mimir was developed with the goal of enabling the logging of any sensors present in an Android device. The code is released as open-source, under the Apache 2.0 license and is available on Github [36]. As mentioned earlier, while the Android smartwatch implements different flavors of the WearOS, they are based on a common Android API. Thus, the development of smartwatch apps is similar to smartphones, except for the UI design of the app. It allows the development of a common Android library for sensor logging, implemented in two different apps, for smartphones and smartwatches, respectively. Currently, the app allows logging of GNSS, motion and environment sensors, as defined in the Android developer documentation. The raw data are logged in a Comma Separated Value (CSV) format, similar to GNSSLogger logging format. For compatibility with the former processing software, all measurements related to GNSS have kept the same columns as in GNSSLogger. Other sensors are logged using our own defined format (see Appendix A). Furthermore, the app also allows the logging of health data on the smartwatch version. However, the recording of health data has been tested with the Google Pixel Watch only and is not recorded in the dataset provided for ethical reasons. Future developments planned are discussed in Section 7.
Note that similarly to GNSSLogger, no processing of the sensor is performed in the app. It is only used for sensor data gathering, logging the measurements exactly as provided by the Android API. Any post-processing is left to the computer processing software.

3.3. Analysis Software Developments

Once the data have been logged, it needs to be processed in order to analyze and use the sensor’s measurements for specific target applications; in our case, the target applications are based on accurate and/or robust positioning. The aforementioned GNSSLogger app is widely used by the research community because of its companion processing software called “GNSS Analysis App” [35], allowing plotting of the logged data. It is developed in Matlab and the source code can be found on GitHub. During the processing of the data, multiple unknown errors arose that prevented its usage for our analysis goals. Thus, similarly to how we developed the Mimir app [36], we have decided to build our own software to process the measurements.
For processing the data, we developed a Python library called “MimirAnalyzer”, with its code also available in open source on Github [37]. The library allows parsing of the CSV data into a Pandas DataFrame format, to be later analyzed. For a quick review of the measurement quality, we also created a local web dashboard. It allows visualization of the trajectory, comparison with a reference and review of the measurements logged into the file. For a deeper analysis, we have created also some Jupyter Notebook templates that allow for visuals and statistical analysis. More details about the performance metrics are provided in Section 5.

3.4. Survey Protocol

Based on the sections above, we can derive the survey protocol used for the acquisition and analysis of the devices, which is summarized in Figure 2.
For a proper comparison of the devices’ capacities, we define our reference/baseline to compare the measurements. During the process of evaluating the positioning capacities of the receivers, the most obvious benchmarking method is to find the reference coordinates of the surveyed locations. For static surveys, this can be easily defined after or before the survey by surveying the static location with a high-grade GNSS receiver. To minimize device disturbances, we used a tripod as represented in Figure 3a. For dynamic surveys, we used a backpack with an antenna mount on top as represented in Figure 3b. The used receiver was a Novatel PwrPak7 receiver connected to a Novatel GNSS-850 antenna. For the trajectory computations, we opted for Differential GNSS (DGNSS) computations, using the backpack a rover and our local GNSS station located on the university rooftop (Novatel GPS-703-GGG antenna, Septentrio PolaRx5 receiver) as a base. The total baseline between the devices ranges from a few hundred meters to a few kilometres, depending on the scenario. The DGNSS computations were performed using the open-source software RTKLib [38]; as these computations were needed only for the reference dynamic tracks, the DGNSS algorithms are not a part of our MimirAnalyzer software at present.

4. Dataset Description

In this section, we provide details on the dataset. We refer to it as a single “dataset” since it is provided at a single Zenodo link [7] but it is to be remembered that it contains several scenarios, both under static and dynamic conditions, and several Android devices. We start by detailing the logged sensors, then the survey scenarios will be presented and we provide a list of the performed surveys. Finally, we review the file structure of the dataset.

4.1. Scenarios and Environments

For our research purposes, we focused on pedestrian scenarios that are highly relevant in a variety of location-based applications such as studying mobility and migration patterns of workers or accessing various fundamental resources such as potable water (see LEDSOL project [6,19]), helping city planners to offer optimized services based on user location, or promoting more sustainable ways of transportation through optimized access to bikes, green lanes, or parks [39].
The university campus area and Hervanta center (a district in Tampere, Finland) offer an interesting and diverse environment for challenging positioning (i.e., open-sky, light forest, lake, suburban). While there are not many high buildings that could represent very harsh urban canyoning conditions, it is possible to recreate a partial blockage within the campus due to campus buildings (having between 3 and 10 floors). We have divided the surveys into three scenarios, all pedestrians with the conditions summarized in Table 2.
Defining the way the device is held or carried is also part of the scenario definition and crucial for future post-processing. Several studies [40,41] have shown how these carry modes determine the positioning models to use [40]. In [41], several carrying modes were assessed (e.g., texting, swinging, jacket pocket) and their effect on the inertial measurements, and consequently on the positioning solution, were reviewed.
In our study, two carry modes were reviewed in the dataset: (1) texting, where the device was held face up in front of the user; (2) backpack pocket, where the device was put in a stood-up orientation. These modes were chosen for their practical aspects, but also to understand how positioning might be affected by partial body blockage, as highlighted in [42]. Note that the smartwatch was placed on the left wrist (except S1). A representation of the scenario’s trajectories is displayed in Figure 4.

4.1.1. Static Scenario (S1)

The first scenario is a long static acquisition (45 min), performed in a near-perfect open-sky environment. We took a small light post as a visible landmark to perform the acquisition with each device separately. The devices were placed on a stable tripod as represented in Figure 3a, allowing long acquisition with minimal disturbances. The tripod landmark was surveyed using our reference receiver to obtain its precise location. While the light post is relatively wide, this setup was assessed to be suitable for the purpose of the survey, given the positioning accuracy of the devices. Moreover, the positioning of the antenna phase centre is unknown for all Android devices, so a highly precise benchmark is not required.
The receiver taken as reference for the visibility analysis in this scenario is a base station located on top of the nearest building, about 100 m northeast. Figures and statistics of the survey are provided in Appendix B.

4.1.2. Short Dynamic Scenario with Urban-Canyoning (S2)

The second scenario is a short dynamic pedestrian acquisition (10 min), performed in heavy urban canyoning. The scenario starts and ends with a short (30 s) static acquisition over the landmark previously described in S1. This was performed to allow the convergence of the position and to ensure that every available signal was correctly tracked before the dynamic part started. The trajectory went from south to north. The southern part has relatively good visibility, with only some overpass bridges between the buildings. The northern part presents a very narrow alley between the buildings, with only a quazi-zenital sky view. The data were acquired separately, device by device, and the device was always placed in the right hand of the surveyor. The GPW was placed on the left wrist and acquired at the same time as the GP7, for comparison over the same GNSS chipset model. We used the backpack setup described in Section 3 as a reference receiver for each survey. Figures and statistics of the S2 survey are provided in Appendix C.

4.1.3. Dynamic Scenario in Urban Area (S3)

The third scenario is a dynamic pedestrian acquisition (45 min), performed in a light urban area. Similarly to S2, the S3 scenario starts and ends with a short static acquisition for the usual landmark. The southern part has good open-sky conditions, contrary to the northern part, which has tall buildings around it. Strong noise can be seen in the trajectory due to a tall building with an outside ceiling, which as expected leads to noisier measurements. Finally, the part located on the road shows a small underground tunnel with possible GNSS cutoffs. The data from all the devices were acquired at the same time; all devices were placed in separate side pockets of the backpack. This allows comparison of the devices over the exact same-scenario conditions. Figures and statistics of the S3 survey are provided in Appendix D.

4.1.4. Dynamic Scenario in Forest/Lake Area (S4)

The final scenario is a dynamic pedestrian acquisition (30 min), performed in a light forest area around a lake. Similarly to S2 and S3, the S4 scenario starts and ends with a short static acquisition. The scenario was chosen to evaluate the impact of vegetation and the lake on the measurement quality. Similarly to S3, the data from all the devices were acquired at the same time and all devices were carried along in the backpack. Figures and statistics of the S4 survey are provided in Appendix E.

4.2. List of the Surveys Performed

In total, twelve surveys were performed to acquire the dataset with the devices over all four scenarios. The surveys happened on different days throughout the year, and a summary is available in Table 3. Note that S1 surveys were acquired before the completion of the Mimir app. The measurements were acquired using the GNSSLogger app for smartphones, which explains the lack of barometer data. For S1 and S2, a separate survey was performed for each device, as the device was held in the right hand of the surveyor, thus allowing for only one device per survey. For S3 and S4, all devices were acquired at the same time in different pockets located on the side of the backpack.

4.3. File Structure

Multiple types of files are present inside the dataset. For the reference data, we provide the observation data in Novatel proprietary log file format, and the RINEX files extracted using Novatel Application Suite software. The observations from the base station are provided in RINEX files.
For Android devices, the raw logs are produced in a simple CSV format. This format was chosen to allow compatibility with the GNSSLogger app (presented in Section 3.3). Each line of the CSV file represents the data from a sensor at a specific timestamp. While multiple clocks might be defined inside the device (e.g., GNSS clock, system clock), all entries provide two timestamps: a UTC time in Unix format based on the global system clock, and a time counter since the last time the smart device was booted. The former is used for temporal indication but it might not be very accurate, as explained in Android documentation [43], and it is recommended to use the latter for more accurate time intervals.
We note that, while it is possible to request a specific sampling frequency through the Android API, our empirical experiments have shown that the accuracy of the sampling clock can be poor. Requesting for a too high or too slow sampling interval might lead to truncated sampling, based on the physical limitation of the sensor. It is recommended to interpolate the values of a log to the wanted sampling frequency before any processing is performed. The time information discussed above should be sufficient for accurate clock alignment between the sensors and with the GNSS clock.

4.4. Sensors Summary

Multiple sensor types were logged during the surveys and are listed below:
  • GNSS measurements that can be associated with multiple line entries in the log file: (1) location measurements (latitude, longitude, altitude) provided by the phone, from different providers; (2) raw GNSS measurements, as described in [11,44]; (3) navigation messages, as provided by the Android API and decoded by the GNSS receiver (i.e., not from another network channel).
  • INS measurements, composed of two type of sensors: accelerometers, providing linear acceleration measurements, and gyroscopes, providing rotational acceleration measurements. In total, we have on each mobile device three accelerometers and three gyroscopes, placed on the three orthogonal axes (X, Y, Z), allowing re-composition of a relative motion in three dimensions.
    Additionally, an INS often include magnetometers, which measures the magnetic field (similar to a magnetic compass). The magnetometer enables the absolute orientation and estimation of the INS drifts [45]. Similarly to the INS measurements, three magnetometers allow the measurement of the magnetic field in three dimensions. All this information can be put together to form a low-grade INS system to be combined with GNSS measurements [1,2,45]. In the Android documentation, these sensors are regrouped under the term “motion sensors”.
  • Barometer measurements, related to the atmospheric pressure can be converted into altitude. As GNSS is known to have low precision in the up/vertical direction due to the geometry of a GNSS system, a fusion of GNSS/Barometer measurements is often seen in positioning applications [46].
All sensor entries are located in the same file, the first column containing the tag identifying the measurement type. The entry order follows the timeline of the sensor event reception. As different sensors provide different data, a header at the beginning of the files recalls the CSV columns for each sensor type. Motion sensors can also be retrieved “uncalibrated”, with their biases provided but not applied. In total, there are 10 different possible tags in the file. Table A1 in Appendix A provides a summary of each logged sensor measurement; additional details can be found directly in the Android developer documentation [43].

5. Performance Metrics

For the analysis of the collected raw data, we have divided our study into three sections for each scenario: (1) positioning, assessing the native capacity of the device; (2) visibility, assessing the constellations/frequencies visible by each device; (3) measurements, assessing the raw GNSS observables’ precision, which is relevant to advanced positioning applications. In this section, we explain the performance metrics chosen to evaluate these aspects in each scenario.

5.1. Positioning

The Android API give access to different location providers, with different degrees of precision: NLP, Network Location Provider, related to the mobile network position (coarse precision); GPS, as provided by the GNSS chipset (standard precision); FSL, Fused Location Provider (best precision); in this paper, we focused on the GPS provider locations only, as provided by the phone. We did not perform any post-processing of the positions, nor computed the positions using advanced positioning techniques (e.g., sensor fusion, DGNSS, PPP). Instead, for positioning quality review, we computed the position errors in the east/north/up (ENU) direction, based on the reference receiver used in each scenario (see Section 3). These errors can be reviewed in two graphs, an overall map and ENU error against time, as well as statistic tables.

5.2. Visibility

Throughout our analysis, we realized that the Android API provides an event at a regular sampling rate (i.e., 1 Hz), while the measurements per satellite are not regular. Gaps of several seconds (1–5 s) can be seen for certain satellites, leading to the idea that the device performs some kind of sequential tracking. The signal stops being tracked by the receiver for a certain amount of time to concentrate on the tracking of another signal. The receiver then comes back to the first signal to converge again, and avoids the signal falling out of the tracking loop. The most probable reason is to limit the energy consumption, and possibly to enable more signal tracking than supported by the number of channels available in hardware. This phenomenon has been seen on every device, even with a different number of total visible signals per epoch.
Today, the GNSS tracking is often limited to the four major constellations (GPS, GLONASS, Galileo, BeiDou), with dual-frequency (L1/L5) for the most advanced ones. Some Android devices do support some other satellite-based systems such as IRNSS and QZSS. However, none of the devices reviewed showed the reception of SBAS satellites. Consequently, while the geodesic-grade receivers used as a reference allowed the coverage of almost all constellations and frequency bands, we limited our comparative analysis only to the signal available in the Android devices, for a fairer comparison.
Constellations in the results are named based on their RINEX code, as defined in [47]: G (GPS), R (GLONASS), E (Galileo), C (BeiDou), I (IRNSS) and J (QZSS). Similarly, frequencies and signals are simplified to L1 (∼1575.42 MHz) and L5 (∼1176.45 MHz). For comparison with the reference receiver, we extracted the following signals based on RINEX definition: L1 ⇒ (L1C, L1L), L5 ⇒ (L5Q, L2I, L5P, L5A).
To best assess the satellite’s visibility of the devices, we provide two types of graphs: the number of signals seen at each epoch w.r.t time, and bar graphs with the total amount of unique signals seen during the whole scenario. For the latter, we also add the total amount of signals seen by the reference receiver (the left bar) to compare against each device (the right bar). The bar graphs come in two variants: one per constellation and one per frequency. We also provide a summary table comparing the percentage of visible signals compared to the reference receiver.

5.3. Measurements

Four observations are used in GNSS positioning: pseudorange, carrier phase, Doppler shift, and SNR. The last two are provided straightforwardly in the GNSS event of the Android API; however, the pseudoranges and the carrier-phase data require some post-processing to be usable in a typical GNSS algorithm.
As described in [44], the pseudorange needs to be constructed based on the received and transmitted times given in the event. Several checks of the tracking state should be performed for each constellation to ensure correct measurements. In our analysis, we used the instructions provided by [44], but we only checked for adequate code lock and Time of Week (TOW) decoded. The carrier phases in Android devices are provided as “Accumulated Delta Ranges”, which correspond to the regular carrier-phase measurements multiplied by the wavelength of the GNSS signal, thus in meter units and not in cycle units.
For both the pseudoranges and the carrier phases, we performed a double time difference on the measurements, similarly to [10]. The double time difference allows for discarding the residual drift induced by the velocity changes, leaving only the acceleration changes which are assumed too small for both satellites and users in our study cases. It also reduces or cancels out some errors present in the GNSS measurements, such as atmospheric error or satellite orbit/clock error, as two consecutive measurements at a regular small rate (here 1 Hz) should be tainted by similar errors. Consequently, the error left can be assumed to be related mostly to the receiver tracking noise. While other papers have used different error estimations for measurements, such as the Code–Minus–Carrier combination [11,12], the double time difference method showed adequate results for a preliminary analysis. For Doppler measurements, only one time difference is needed as the measurement is already a velocity/rate estimation. For C/N0, it is more interesting to study its value range; thus, there is no difference in performance.
The results are provided as logged, with minimum filtering of the data for a more realistic analysis. However, to minimize the number of outliers and end up with biased statistics, we filtered some of the measurements based on a threshold, as a basic navigation filter would do. The threshold values were chosen empirically, based on the standard deviation and expected precision of each type of data. Consequently, the thresholds were set as follows: pseudorange ⇒ 300 m, Doppler ⇒ 30 m and phase ⇒ 30 m.
For each scenario, a statistic table for each GNSS measurement is provided, along with the percentage of measurements included/removed from the filter. For pseudoranges, Doppler and phase errors, we used box plot graphs to represent the different statistics. For Carrier-to-Noise ratio (C/N0), we choose to represent the data in “violin plots”, which are mostly similar to box plots but provide additional information on the data distribution. It is specifically interesting to study the L1/L5 differences and the range of CN0 values.

6. Results

In this section, we review each scenario and provide a first analysis of the data. We do not review in detail the content of each figure/table provided in the appendices, as they can be redundant for many scenarios. Instead, we summarize the observations from all scenarios in three sections related to positioning, visibility and measurement analysis, and only show the relevant figures within this section. A comprehensive summary of the performance metrics is available for each scenario in Appendix B (S1), Appendix C (S2), Appendix D (S3) and Appendix E (S4). For more details on the data, the results presented in this study are accessible in the Jupyter Notebook file available on MimirAnalyzer’s Github.

6.1. Positioning Analysis

All the devices showed signs of heavy filtering (e.g., Kalman Filter) inside their proprietary navigation algorithms. The locations provided by the GNSS chipset inside each Android device followed a stringent user dynamic, which allowed a very smooth trajectory. This heavy filtering is even more apparent during the static survey (S1). In Figure 5 and Figure 6, the GP7 and GPW seem to be converging around the static position, with a looser prediction model. However, other devices such as the ON2 and X11 report a constant position throughout the whole survey, which explains the very small standard deviation. This can probably be explained by a more highly constrained motion model based on user dynamic assessment performed by the receiver internally.
During the dynamic surveys, all the devices provided consistently good positioning with relatively small divergence from the ground truth and within each other. Certain discrepancies can, however, be found with the A52 device during S3 (Figure 7) and S4 (Figure 8), leading to wrong positioning before quickly re-converging to the actual user position. Yet, this was not seen during S2, with a much more challenging signal environment, making it hard to assess the actual cause for such drift in positioning.

6.2. Visibility Analysis

Overall, dual-frequency devices showed great visibility performances, capturing most of the signals compared to the receiver. In certain cases, some devices have even reported more satellites than the reference receiver. In these cases, the satellites were actually flagged as unhealthy and were not included by the reference receiver, contrary to the devices that included any measurement received in the log file. As the positioning solution presented here is computed by the device itself, not all the visible satellites in the raw data are likely to be used by the devices and this is a topic of future investigation; in any case, the effect on navigation should be minimal if not in a highly constrained environment.
The visibility analysis would benefit from additional comparisons that should be performed to compare the C/N0 levels against satellites’ elevation w.r.t. the reference receiver. Mono-frequency devices showed very good results in capturing the L1 frequency. Yet, given that all the major constellations today transmit L5 signals, it significantly reduces the amount the total amount of signals seen by the device. An interesting case is the GPW smartwatch, as it should integrate the same GNSS chipset as the GP7 smartphone, but did not show any dual-frequency measurements contrary to GP7. Nevertheless, comparing positioning results between GPW and GP7 showed similar results in all scenario cases.
The most remarkable result seen in smart devices is the capacity to alternate ON/OFF tracking of signals. It allows more signals to be tracked concurrently and optimizes power consumption. Concurrent tracking is not a new concept, as it was used in the very first GNSS receiver with limited hardware channel, and probably is still used today in other receivers. Yet, the effects are directly visible here in the measurements.
The downside of concurrent tracking is it results in many gaps in the measurements. To overcome this issue, one could perform interpolation of the measurements to have a regular rate, as the gaps are relatively short. In our processing, we did not perform any interpolation as it was not needed for our presented analysis. Advanced processing techniques, such as PPP, might indeed require adaptation to their algorithms to account for such measurement discrepancies and should be reviewed for future research.

6.3. Measurements Analysis

All measurement errors were found to be very consistent throughout all the scenarios, with higher noise during dynamic scenarios compared to the static ones. As mentioned before, measurements were filtered to avoid biases in statistics due to outliers. Yet, a more thorough analysis of these outliers would be interesting to better understand the resilience of devices in different environments. Moreover, Android provides a certain amount of flags on code and phase tracking quality, as well as multipath flags, directly within the API. These flags have not been used in this analysis but should be checked for more advanced positioning computations, as assessed in previous studies [48,49].
Pseudoranges errors from certain devices (i.e., ON2 and X11) appeared to have a much smaller dispersion. A possible explanation could be pseudorange smoothing using Doppler or phase measurements, as this technique is often used to reduce pseudorange noise [9].
Regarding Doppler measurements, a relatively small standard deviation was observed for GP7 and GPW, compared to the other devices. Both Doppler and phase measurements showed a tendency for a small positive, regardless of the devices. While the exact reason is not clear, it is believed to be due to the time-differencing operations performed to obtain the error measurements, as described in Section 5.3. Future research should review the effects on measurements, possibly using other techniques such as the Code–Minus–Carrier combination (see Section 5.3).
C/N0 comparison showed a distinct drop in their values between L1 and L5 tracking in all devices. Yet, L5 signals are designed with a higher minimum received power [50], which shows that smart device hardware is not optimized yet for the reception of this additional frequency. Further comparison between frequencies should be performed to further assess the impact on the measurement quality.

7. Discussion and Future Work

7.1. A Suitable Reference Definition

During the processing of dynamic surveys, we realized that the reference trajectory actually looked noisier than the one from the devices. The reference trajectory was computed in DGNSS baser/rover setup, as described in Section 3 and DGNSS computations were performed using the open-source software RTKlib. Even with DGNSS, the errors of the reference rise significantly in challenging environments, due to the limited number of satellites visible and multipath errors. Consequently, the statistics tables of position errors presented in the appendices need to be reviewed with this consideration in mind.
Nevertheless, we do not attribute such error to the receiver, but to the processing itself. As navigation algorithms inside Android devices are proprietary, it is difficult to assess the filtering algorithms and parameters. Consequently, simple DGNSS processing as performed in RTKlib is not sufficient and more advanced processing should probably be performed on the reference data to better assess the positioning capacities of each device. In our next research developments, we are planning to integrate the positioning processing (i.e., Kalman Filter) within the MimirAnalyser software to improve the reference trajectory processing.
Moreover, the dataset would benefit from an INS coupled with the reference receiver setup. It would enable better processing for the reference trajectory, and the INS measurements could be compared against the INS recordings from the smart devices. However, INS methods require alignments of the different devices’ frames, which could prove challenging. It is the main reason why using a combined GNSS/INS solution for the reference trajectories was left out of this analysis. Future work should look into the feasibility of enhancing the reference trajectories with INS measurements.

7.2. The Android Platform for Research

Sensor logging and measurement quality assessment on Android come with a set of challenges. During our research, we discovered that while there are numerous apps existing today for sensor logging, there were none suitable to log every sensor available on smartphones/smartwatches. Apps related to GNSS logging (e.g., GNSSlogger) only concentrate on motion-related sensors and do not allow customization on the sensor parameters. Therefore, we had to develop a new application to fit our research needs, which required a certain knowledge of Android development. As this app is open-source, it can be re-used and enhanced by the research community to be used in new applications. Alternatively, the dataset produced through this research can be used as also provided under open-source license.
While the Android platform is not easy to access, it does allow common and easy access to raw measurements from sensors, which would require heavier hardware developments otherwise. Power management inside the device can prove challenging, as the system itself might perform automatic duty-cycling strategies which can impact sensor logging, which can be even trickier on smartwatches. An easy workaround for Mimir was to prevent screen lock and keep the app awake to avoid duty-cycling by the system. Yet, the assessment of power consumption is part of the future work for this research to review the impact of advanced positioning techniques on the battery life of a device.
Regarding the smartwatch, developments have proven to be quite similar to the smartphone case. The common API made the development of a common Android library possible, avoiding the need for redundant code developments specific to each platform. Data extraction was, however, a bit more challenging, as the smartwatch did not have any USB port. Consequently, the data had to be extracted through WiFi and with the help of the Android development software. Future developments on the Mimir app will try to improve the interactivity between smartphone and smartwatch so that the data can be uploaded through a companion phone first before being extracted by USB.
While the smartwatch offers a new playground for health-related sensors, they have not been reviewed here as outside the scope of this study. It has to be noted, however, that extraction of these sensor data is implemented in the Mimir app, and future research will also focus on reviewing their quality. As smartwatches can be very interesting for long-term study of patients, focus will be given on enhancing the energy-consumption of the app for extending the battery-life of the device.

7.3. Android Devices and Scenario Impact

Analysis of a different scenario showed a clear impact on the measurements and positioning quality. S2 was expected to give the largest errors, given the challenging nature of the dense urban canyoning. Yet, the scenario that registered the highest errors is S3. While it also contained challenging sections, the highest error values could be due to the longer survey time, which increases the probability of erroneous measurements in the dataset. Despite the increase in measurement noises, the positioning results stayed consistent for all devices throughout all scenarios and regardless of the device platform (i.e., smartphone/smartwatch). This supports our hypothesis of using smartwatches for research applications in positioning, and possibly other topics (e.g., health applications).
Devices have shown clear positioning abilities to maintain a suitable positioning solution throughout the scenarios, yet with challenges for some devices (see Section 7.4). These discrepancies can partially be explained due to the environment and possible unaccounted multipath, yet would require a deeper analysis to better understand their exact origin. While we focus mainly on the outdoors for this study due to GNSS positioning, the additional indoor scenarios would be interesting to review in a future analysis. More specifically, the transition from outdoor to indoor and/or light indoor environment (e.g., glass ceiling) would be beneficial to assess the sensitivity of the antenna/receiver embedded in smart devices.
Similarly, future research should provide deeper attention to the carry mode effects on the device measurements. While we only performed acquisition texting and pocket mode, new modes like swinging should be considered, especially for the smartwatch review.

7.4. Positioning with Smart Devices

In the results presented, we have seen that all smart devices showed reliability in providing a precise positioning regardless of the environment. While an increase in measurement noise could be seen in more challenging environments, such as S2, the devices maintained a suitable positioning accuracy. This is also the case for C/N0 values, which remained at a similar level throughout the surveys and do not seem to be a real determining factor in this case for positioning precision.
Yet, a comparison of the raw measurement errors between the devices showed large differences from one device to another. With more advanced positioning techniques, this needs to be taken into account, as not all devices might be capable of performing similarly. The most evident discrepancies in measurements seen in our analyses were access to dual-frequency measurements, retrieval of carrier-phase measurements and pseudorange smoothing. Moreover, GP7 and PGW provided interesting comparison points as they had the same GNSS chipset model embedded, which showed that the platform has an impact on the measurements as well. The clearest example is the absence of L5 signals on the GPW.
Another limiting factor in Android devices remains the missing characterizations of the hardware, such as the antenna used for reception of GNSS signal, as already pointed out in [11]. While access to antenna information has been added in the Android API, the information provided by the manufacturer is slim or non-existent. For advanced positioning processing, one has to rely on self-characterization of the hardware.
A similar conclusion can be drawn for INS-related sensors, such as accelerometers and gyroscopes. They have not been reviewed in the analysis even though they are present in the dataset, as we preferred to focus on GNSS capacities, but will be part of the future analysis.

8. Conclusions

In this paper, we presented a new open-source dataset for research on advanced positioning using Android smart devices, with a first review of and the first app for GNSS raw data on a smartwatch platform. We detailed our methodology for creating the dataset by describing the logging software development, the protocol definition and file structure in detail. We also provided a first analysis of the results by comparing five devices (four Android smartphones and a smartwatch) in terms of several performance metrics. It is to be reminded that the paper’s focus and main novelty has been to introduce the methodology of the acquisition protocol and the new open-access app and datasets. The results are just examples of what can be achieved with the developed open-access tools, but they do not provide a comprehensive selection of performance metrics; for example, algorithms for user positioning starting from the acquired raw data are still to be implemented and the multi-system multi-frequency GNSS analysis is still a topic for future research. Nevertheless, our results have shown that GNSS raw data collected from mass-market devices is of good quality, with similar results between the smartwatch and smartphones. This strengthens the possibility of using smartwatch sensor data for broader research topics. It can enable significant research in the area, provided that suitable acquisition and processing tools are made available to the research community, such as our developed software “Mimir”. Last but not least, we have also reviewed the current challenges associated with Android data processing and highlighted the potential research opportunities for the continuity of this work.

Author Contributions

Conceptualization, A.G. and E.S.L.; methodology, A.G.; software, A.G.; validation, A.G. and E.S.L.; formal analysis, A.G.; investigation, A.G.; resources, A.G.; data curation, A.G.; writing—original draft preparation, A.G. and E.S.L.; writing—review and editing, A.G., E.S.L., A.O. and J.N.; visualization, A.G.; supervision, E.S.L., A.O. and J.N.; project administration, A.G.; funding acquisition, E.S.L., A.O. and J.N. All authors have read and agreed to the published version of the manuscript.

Funding

This research was funded by European Union’s Horizon 2020 Research and Innovation Programme under the Marie Skłodowska Curie grant agreement number 956090 (APROPOS: Approximate Computing for Power and Energy Optimisation, http://www.apropos-itn.eu/ (accessed on 21 November 2023)), by the LEAP-RE programme of the European Union’s Horizon 2020 Research and Innovation Program, grant agreement number 963530 (LEDSOL project) and the Academy of Finland, project number 352364.

Data Availability Statement

The data presented is published under CC-BY-4.0 on Zenodo repository (https://zenodo.org/records/8340005 (accessed on 21 November 2023). Software developed are published under Apache 2.0 open-source license on GitHub (Mimir App: https://github.com/agrenier-gnss/mimir (accessed on 21 November 2023), Mimir Analyzer: https://github.com/agrenier-gnss/MimirAnalyzer (accessed on 21 November 2023).

Acknowledgments

We would like to thank the following students at Tampere University who have helped with the software developments and with preliminary work on the Android devices: Silja Nahkala, Heini Vesaranta, Henry Andersson, Petrus Jussila, Salla Rouhiainen, Severi Ruusumaa, Ha Chu, and My Nguyen.

Conflicts of Interest

The authors declare no conflict of interest.

Abbreviations

The following abbreviations are used in this manuscript:
APIApplication Programming Interface
BLEBluetooth Low Energy
CN0Carrier-to-Noise ratio
CSVComma Separated Value
DGNSSDifferential GNSS
ECGElectrocardiogram
GNSSGlobal Navigation Satellite System
ECGElectrocardiogram
SpO2Oxygen Saturation
PPGphotoplethysmogram
GSRGalvanic Sensor Response
INSInertial Navigation System
SNRSignal-to-Noise Ratio
TOWTime of Week
WiFiWireless Fidelity

Appendix A. Android Sensor Measurements

Details on the each entry in files logged by the Mimir app. For details on the measurements content, please refer to the Android documentation [43].
Table A1. Mimir log entries related to GNSS sensors.
Table A1. Mimir log entries related to GNSS sensors.
TagMeasurementDescriptionUnit
FixproviderOrigin of the location provided (e.g., GPS, NLP, FLP)
latitudeGeodetic latitude (WGS84)[Dec. Deg.]
longitudeGeodetic longitude (WGS84)[Dec. Deg.]
altitudeGeodetic altitude (WGS84)[m]
speedUser velocity[m/s]
accuracyHorizontal uncertainty (1-σ)[m]
bearingHorizontal direction[Deg.]
timeUTC time in UNIX[ms]
speedAccuracyMetersPerSecondUser velocity uncertainty (1-σ)[m/s]
bearingAccuracyDegreesHorizontal direction velocity (1-σ)[Deg.]
elapsedRealtimeNanosTime since system boot[ns]
verticalAccuracyMetersVertical uncertainty (1-σ)[m]
elapsedRealtimeUncertaintyNanosTime since system boot uncertainty (1-σ)[ns]
RawutcTimeMillisUTC time in UNIX[ms]
timeNanosInternal clock from GNSS hardware receiver[ns]
leapSecondNumber of leap seconds w.r.t. provided clock[s]
timeUncertaintyNanosInternal clock uncertainty (1-σ)[ns]
fullBiasNanosFull bias between clock and true GPS time[ns]
biasNanosPartial clock bias[ns]
biasUncertaintyNanosPartial clock bias uncertainty (1-σ)[ns]
driftNanosPerSecondClock drift[ns/s]
driftUncertaintyNanosPerSecondClock drift uncertainty (1-σ)[ns/s]
hardwareClockDiscontinuityCountCounts of hardware discontinuities
svidSatellite ID
timeOffsetNanosTime offset of the measurements[ns]
stateCurrent tracking state of the signal
receivedSvTimeNanosReceived satellite time at measurement time[ns]
receivedSvTimeUncertaintyNanosReceived time uncertainty (1-σ)[ns]
cn0DbHzCarrier-to-Noise ratio[dB-Hz]
pseudorangeRateMetersPerSecondPseudorange rate, i.e., Doppler shift[m/s]
pseudorangeRateUncertaintyMetersPerSecondPseudorange rate uncertainty[m/s]
accumulatedDeltaRangeStateCarrier tracking state
accumulatedDeltaRangeMetersAccumulated pseudorange rate, i.e., carrier phase[m/s]
accumulatedDeltaRangeUncertaintyMetersAccumulated pseudorange rate uncertainty[m/s]
carrierFrequencyHzGNSS carrier frequency[Hz]
carrierCyclesNumber of carrier phase cycles (deprecated)
carrierPhaseCarrier phase (deprecated)
carrierPhaseUncertaintyCarrier phase uncertainty (deprecated)
multipathIndicatorMultipath flag[Boolean]
snrInDbSignal-to-Noise ratio[dB-Hz]
constellationTypeConstellation ID
automaticGainControlLevelDbCurrent Automatic Gain Control[dB]
basebandCn0DbHzBaseband Carrier-to-Noise ratio[dB-Hz]
fullInterSignalBiasNanosFull GNSS inter-signal bias[ns]
fullInterSignalBiasUncertaintyNanosFull GNSS inter-signal bias uncertainty (1-σ)[ns]
satelliteInterSignalBiasNanosPartial GNSS inter-signal bias[ns]
satelliteInterSignalBiasUncertaintyPartial GNSS inter-signal bias uncertainty (1-σ)[ns]
codeTypeRINEX code type
elapsedRealtimeNanosTime since system boot (1-σ)[ns]
NavutcTimeMillisUTC time in UNIX[ms]
svidSatellite ID
typeNavigation message type
statusParity check status
messageIdMessage frame ID
submessageIdMessage sub-frame ID
dataByte array of navigation message
Table A2. Mimir log entry related to INS sensors. All axis are related to the device frame.
Table A2. Mimir log entry related to INS sensors. All axis are related to the device frame.
TagMeasurementDescriptionUnit
ACCx_meterPerSecond2X-axis acceleration[m/s2]
y_meterPerSecond2Y-axis acceleration[m/s2]
z_meterPerSecond2Z-axis acceleration[m/s2]
accuracyAndroid accuracy classification
GYRx_radPerSecondX-axis rotation[rad/s]
y_radPerSecondY-axis rotation[rad/s]
z_radPerSecondZ-axis rotation[rad/s]
accuracyAndroid accuracy classification
MAGx_microTeslaX-axis magnetic field[µTesla]
y_microTeslaY-axis magnetic field[µTesla]
z_microTeslaZ-axis magnetic field[µTesla]
accuracyAndroid accuracy classification
ACC_UNCALx_uncalibrated_meterPerSecond2Raw X-axis acceleration[m/s2]
y_uncalibrated_meterPerSecond2Raw Y-axis acceleration[m/s2]
z_uncalibrated_meterPerSecond2Raw Z-axis acceleration[m/s2]
x_bias_meterPerSecond2Compensated X-axis acceleration[m/s2]
y_bias_meterPerSecond2Compensated Y-axis acceleration[m/s2]
z_bias_meterPerSecond2Compensated Z-axis acceleration[m/s2]
accuracyAndroid accuracy classification
GYR_UNCALx_uncalibrated_radPerSecondRaw X-axis rotation[rad/s]
y_uncalibrated_radPerSecondRaw Y-axis rotation[rad/s]
z_uncalibrated_radPerSecondRaw Z-axis rotation[rad/s]
x_bias_radPerSecondCompensated X-axis rotation[rad/s]
y_bias_radPerSecondCompensated Y-axis rotation[rad/s]
z_bias_radPerSecondCompensated Z-axis rotation[rad/s]
accuracyAndroid accuracy classification
MAG_UNCALx_uncalibrated_microTeslaRaw X-axis magnetic field[µTesla]
y_uncalibrated_microTeslaRaw Y-axis magnetic field[µTesla]
z_uncalibrated_microTeslaRaw Z-axis magnetic field[µTesla]
x_bias_microTeslaCompensated X-axis magnetic field[µTesla]
y_bias_microTeslaCompensated Y-axis magnetic field[µTesla]
z_bias_microTeslaCompensated Z-axis magnetic field[µTesla]
accuracyAndroid accuracy classifications
Table A3. Mimir log entry related to environment sensors.
Table A3. Mimir log entry related to environment sensors.
TagMeasurementDescriptionUnit
PSRpressure_hPaAmbient air pressure[hPa or mBar]
accuracyAndroid accuracy classification

Appendix B. Scenario 1—Static Acquisition in Open-Sky Environment

Figure A1. Signals seen per system (S1) (left: reference, right: device).
Figure A1. Signals seen per system (S1) (left: reference, right: device).
Electronics 12 04781 g0a1
Figure A2. Signals seen per frequency (S1) (left: reference, right: device).
Figure A2. Signals seen per frequency (S1) (left: reference, right: device).
Electronics 12 04781 g0a2
Figure A3. Signals seen per epoch (S1).
Figure A3. Signals seen per epoch (S1).
Electronics 12 04781 g0a3
Figure A4. Pseudorange errors (S1), with outlier threshold of 300 m. See Table A6 for details.
Figure A4. Pseudorange errors (S1), with outlier threshold of 300 m. See Table A6 for details.
Electronics 12 04781 g0a4
Figure A5. Doppler errors (S1), with outlier threshold of 30 m. See Table A7 for details.
Figure A5. Doppler errors (S1), with outlier threshold of 30 m. See Table A7 for details.
Electronics 12 04781 g0a5
Figure A6. Phase errors (S1), with outlier threshold of 30 m. See Table A8 for details.
Figure A6. Phase errors (S1), with outlier threshold of 30 m. See Table A8 for details.
Electronics 12 04781 g0a6
Figure A7. Carrier-to-Noise ratio (C/N0) (S1) [Blue: L1, Orange: L5]. See Table A9 for details.
Figure A7. Carrier-to-Noise ratio (C/N0) (S1) [Blue: L1, Orange: L5]. See Table A9 for details.
Electronics 12 04781 g0a7
Table A4. Statistics for position errors (S1).
Table A4. Statistics for position errors (S1).
Mean ± StD (1- σ ) [m]RMSE [m]
DeviceInc. [%]EastNorthUp2D3D
GP7100.00 1.533 ± 0.815 1.338 ± 0.934 2.298 ± 1.747 2.3823.742
GPW100.00 0.513 ± 0.839 1.396 ± 1.614 1.021 ± 2.117 2.3493.323
ON2100.00 0.596 ± 0.160 0.097 ± 0.207 6.612 ± 0.018 0.6586.645
A52100.00 0.076 ± 0.685 2.164 ± 1.681 1.595 ± 4.312 2.8255.395
X11100.00 1.976 ± 0.086 5.086 ± 0.096 3.803 ± 0.087 5.4576.652
Table A5. Signals’ percentages visibility w.r.t. the base receiver (S1).
Table A5. Signals’ percentages visibility w.r.t. the base receiver (S1).
 Freq. [%]Constellations [%]
DeviceL1L5GRECIJ
GP756.569.481.040.090.059.450.0
GPW65.60.066.7127.350.014.7
ON286.985.3104.5100.0100.093.9
A5268.30.063.690.920.046.725.0
X1190.793.385.090.0105.6112.5125.0
Table A6. Statistics for pseudorange errors [m] (S1).
Table A6. Statistics for pseudorange errors [m] (S1).
DeviceInc. [%]Mean [m]StD [m]Min. [m]Max. [m]
PseudorangeGP799.900.0611.736 108.757 108.773
GPW99.930.0580.456 16.099 22.945
ON2100.000.0591.545 50.682 50.699
A5299.980.0721.643 72.456 87.806
X1199.960.0630.482 23.339 23.511
Table A7. Statistics for Doppler errors [m] (S1).
Table A7. Statistics for Doppler errors [m] (S1).
DeviceInc. [%]Mean [m]StD [m]Min. [m]Max. [m]
DopplerGP799.97%0.0730.252 17.607 25.736
GPW100.00%0.0830.160 4.161 2.966
ON2100.00%0.0691.308 18.050 15.844
A52100.00%0.0861.088 17.533 14.831
X11100.00%0.1120.910 26.402 19.542
Table A8. Statistics for carrier phase errors [m] (S1).
Table A8. Statistics for carrier phase errors [m] (S1).
DeviceInc. [%]Mean [m]StD [m]Min. [m]Max. [m]
PhaseGP799.50%0.0930.748 29.155 29.441
GPW99.98%0.0980.327 11.922 11.616
ON299.09%0.1001.386 28.982 29.283
A52
X1199.45%0.1361.092 29.632 29.967
Table A9. Statistics for C/n0 errors [dB-Hz] (S1).
Table A9. Statistics for C/n0 errors [dB-Hz] (S1).
DeviceInc. [%]Mean [dB]StD [dB]Min. [dB]Max. [dB]
C/n0GP7100.00%30.88.010.648.2
GPW100.00%31.56.412.144.9
ON2100.00%28.210.644.7
A52100.00%44.15.421.456.3
X11100.00%33.86.73.049.0

Appendix C. Scenario 2—Pedestrian Dynamic in Urban Canyoning Environment

Figure A8. Two-dimensional error in east/north (S2).
Figure A8. Two-dimensional error in east/north (S2).
Electronics 12 04781 g0a8
Figure A9. East/north/up error (S2).
Figure A9. East/north/up error (S2).
Electronics 12 04781 g0a9
Figure A10. Signals seen per system (S2) (left: reference, right: device).
Figure A10. Signals seen per system (S2) (left: reference, right: device).
Electronics 12 04781 g0a10
Figure A11. Signals seen per frequency (S2) (left: reference, right: device).
Figure A11. Signals seen per frequency (S2) (left: reference, right: device).
Electronics 12 04781 g0a11
Figure A12. Signals seen per epoch (S2).
Figure A12. Signals seen per epoch (S2).
Electronics 12 04781 g0a12
Figure A13. Pseudorange errors (S2), with outlier threshold of 300 m. See Table A12 for details.
Figure A13. Pseudorange errors (S2), with outlier threshold of 300 m. See Table A12 for details.
Electronics 12 04781 g0a13
Figure A14. Doppler errors (S2), with outlier threshold of 30 m. See Table A13 for details.
Figure A14. Doppler errors (S2), with outlier threshold of 30 m. See Table A13 for details.
Electronics 12 04781 g0a14
Figure A15. Phase errors (S2), with outlier threshold of 30 m. See Table A14 for details.
Figure A15. Phase errors (S2), with outlier threshold of 30 m. See Table A14 for details.
Electronics 12 04781 g0a15
Figure A16. Carrier-to-Noise ratio (C/N0) (S2) [Blue: L1, Orange: L5]. See Table A15 for details.
Figure A16. Carrier-to-Noise ratio (C/N0) (S2) [Blue: L1, Orange: L5]. See Table A15 for details.
Electronics 12 04781 g0a16
Table A10. Statistics for position errors (S2).
Table A10. Statistics for position errors (S2).
Mean ± StD (1- σ ) [m]RMSE [m]
DeviceInc. [%]EastNorthUp2D3D
GP7100.00 0.372 ± 1.301 0.445 ± 1.969 6.928 ± 3.090 2.4287.964
GPW100.00 0.935 ± 2.034 0.329 ± 2.444 4.135 ± 5.342 3.3297.528
ON2100.00 0.835 ± 3.150 1.301 ± 5.496 7.707 ± 5.009 6.51511.265
A52 0.381 ± 1.980 1.212 ± 2.459 3.867 ± 5.071 3.4007.224
X11100.00 0.802 ± 2.076 2.360 ± 4.233 14.201 ± 6.892 5.32916.657
Table A11. Signals’ percentages visibility w.r.t. the base receiver (S2).
Table A11. Signals’ percentages visibility w.r.t. the base receiver (S2).
 Freq. [%]Constellations [%]
DeviceL1L5GRECIJ
GP778.995.594.175.077.886.7100.0
GPW97.464.7125.044.446.750.0
ON295.580.8129.4112.5100.059.3
A52114.072.2200.050.045.850.0
X11124.4136.4115.8110.0105.6171.4500.00.0
Table A12. Statistics for pseudorange errors [m] (S2).
Table A12. Statistics for pseudorange errors [m] (S2).
DeviceInc. [%]Mean [m]StD [m]Min. [m]Max. [m]
PseudorangeGP799.94%0.1249.752 153.536 246.959
GPW99.83%0.41318.186 296.118 226.721
ON299.35%0.55313.840 128.524 138.471
A5299.98%0.09015.080 273.992 195.191
X1199.27%0.28113.038 99.589 143.735
Table A13. Statistics for Doppler errors [m] (S2).
Table A13. Statistics for Doppler errors [m] (S2).
DeviceInc. [%]Mean [m]StD [m]Min. [m]Max. [m]
DopplerGP7100.00%0.0760.395 5.145 10.060
GPW100.00%0.0980.374 6.700 6.036
ON299.99%0.3172.073 22.044 13.691
A52100.00%0.0580.651 12.502 7.768
X11100.00%0.0071.085 19.211 21.977
Table A14. Statistics for carrier phase errors [m] (S2).
Table A14. Statistics for carrier phase errors [m] (S2).
DeviceInc. [%]Mean [m]StD [m]Min. [m]Max. [m]
PhaseGP799.91%0.0961.004 29.357 22.052
GPW99.98%0.1190.798 11.452 18.423
ON298.35%0.3832.542 26.589 29.935
A52100.00%0.0000.0000.0000.000
X1198.04%0.0391.335 29.847 28.787
Table A15. Statistics for C/n0 errors [dB-Hz] (S2).
Table A15. Statistics for C/n0 errors [dB-Hz] (S2).
DeviceInc. [%]Mean [dB]StD [dB]Min. [dB]Max. [dB]
C/n0GP7100.00%32.7428.96410.60051.452
GPW100.00%28.1396.77212.10044.307
ON2100.00%24.77911.0000.00049.000
A52100.00%42.8226.29221.30057.300
X11100.00%29.4777.5335.00049.000

Appendix D. Scenario 3—Pedestrian Dynamic in Urban Environment

Figure A17. East/north/up error (S3).
Figure A17. East/north/up error (S3).
Electronics 12 04781 g0a17
Figure A18. Signals seen per system (S3) (left: reference, right: device).
Figure A18. Signals seen per system (S3) (left: reference, right: device).
Electronics 12 04781 g0a18
Figure A19. Signals seen per frequency (S3) (left: reference, right: device).
Figure A19. Signals seen per frequency (S3) (left: reference, right: device).
Electronics 12 04781 g0a19
Figure A20. Signals seen per epoch (S3).
Figure A20. Signals seen per epoch (S3).
Electronics 12 04781 g0a20
Figure A21. Pseudorange errors (S3), with outlier threshold of 300 m. See Table A18 for details.
Figure A21. Pseudorange errors (S3), with outlier threshold of 300 m. See Table A18 for details.
Electronics 12 04781 g0a21
Figure A22. Doppler errors (S3), with outlier threshold of 30 m. See Table A19 for details.
Figure A22. Doppler errors (S3), with outlier threshold of 30 m. See Table A19 for details.
Electronics 12 04781 g0a22
Figure A23. Phase errors (S3), with outlier threshold of 30 m. See Table A20 for details.
Figure A23. Phase errors (S3), with outlier threshold of 30 m. See Table A20 for details.
Electronics 12 04781 g0a23
Figure A24. Carrier-to-Noise ratio (C/N0) (S3) [Blue: L1, Orange: L5]. See Table A21 for details.
Figure A24. Carrier-to-Noise ratio (C/N0) (S3) [Blue: L1, Orange: L5]. See Table A21 for details.
Electronics 12 04781 g0a24
Table A16. Statistics for position errors (S3).
Table A16. Statistics for position errors (S3).
Mean ± StD (1- σ ) [m]RMSE [m]
DeviceInc. [%]EastNorthUp2D3D
GP7100.00 0.434 ± 3.359 1.040 ± 4.977 5.256 ± 5.615 6.1099.822
ON2100.00 0.024 ± 2.290 1.810 ± 4.551 0.661 ± 5.498 5.4057.738
ON2100.00 0.677 ± 8.928 3.771 ± 8.038 12.473 ± 9.570 12.60720.151
A52100.00 8.516 ± 26.865 0.529 ± 7.447 1.653 ± 13.730 29.14932.263
X11100.00 2.150 ± 7.576 2.359 ± 5.934 7.482 ± 8.829 10.13715.384
Table A17. Signals’ percentages visibility w.r.t. the base receiver (S3).
Table A17. Signals’ percentages visibility w.r.t. the base receiver (S3).
 Freq. [%]Constellations [%]
DeviceL1L5GRECIJ
GP783.077.887.590.072.780.8
GPW91.575.0140.036.434.6
ON2114.9103.7125.0110.0113.6100.0
A52100.068.890.050.061.5
X11112.8114.8125.0110.0113.6100.0200.0%
Table A18. Statistics for pseudorange errors [m] (S3).
Table A18. Statistics for pseudorange errors [m] (S3).
DeviceInc. [%]Mean [m]StD [m]Min. [m]Max. [m]
PseudorangeGP799.98%0.10610.293 243.124 264.025
ON299.81%0.09516.888 287.794 277.366
ON299.94% 0.023 4.986 155.842 137.541
A5299.99%0.12314.754 282.783 297.405
X1199.99%0.39422.109 280.577 269.135
Table A19. Statistics for pseudorange errors (S3).
Table A19. Statistics for pseudorange errors (S3).
DeviceInc. [%]Mean [m]StD [m]Min. [m]Max. [m]
PseudorangeGP799.98%0.10610.293 243.124 264.025
ON299.81%0.09516.888 287.794 277.366
ON299.94% 0.023 4.986 155.842 137.541
A5299.99%0.12314.754 282.783 297.405
X1199.99%0.39422.109 280.577 269.135
Table A20. Statistics for carrier phase errors [m] (S3).
Table A20. Statistics for carrier phase errors [m] (S3).
DeviceInc. [%]Mean [m]StD [m]Min. [m]Max. [m]
PhaseGP799.62%0.0960.972 26.408 29.383
ON299.95%0.0980.821 26.192 19.709
ON298.43% 0.042 1.335 29.954 29.333
A52100.00%0.0000.0000.0000.000
X1198.78%0.0461.061 29.611 29.073
Table A21. Statistics for C/n0 errors [dB-Hz] (S3).
Table A21. Statistics for C/n0 errors [dB-Hz] (S3).
DeviceInc. [%]Mean [dB]StD [dB]Min. [dB]Max. [dB]
C/n0GP7100.00%34.58.210.652.0
ON2100.00%27.07.012.143.9
ON2100.00%24.511.10.050.4
A52100.00%42.06.516.158.1
X11100.00%29.07.33.648.8

Appendix E. Scenario 4—Pedestrian Dynamic in Light Forest and Lake Environment

Figure A25. East/north/up error (S4).
Figure A25. East/north/up error (S4).
Electronics 12 04781 g0a25
Figure A26. Signals seen per system (S4) (left: reference, right: device).
Figure A26. Signals seen per system (S4) (left: reference, right: device).
Electronics 12 04781 g0a26
Figure A27. Signals seen per frequency (S4) (left: reference, right: device).
Figure A27. Signals seen per frequency (S4) (left: reference, right: device).
Electronics 12 04781 g0a27
Figure A28. Signals seen per epoch (S4).
Figure A28. Signals seen per epoch (S4).
Electronics 12 04781 g0a28
Figure A29. Pseudorange errors (S4), with outlier threshold of 300 m. See Table A24 for details.
Figure A29. Pseudorange errors (S4), with outlier threshold of 300 m. See Table A24 for details.
Electronics 12 04781 g0a29
Figure A30. Doppler errors (S4), with outlier threshold of 30 m. See Table A25 for details.
Figure A30. Doppler errors (S4), with outlier threshold of 30 m. See Table A25 for details.
Electronics 12 04781 g0a30
Figure A31. Phase errors (S4), with outlier threshold of 30 m. See Table A26 for details.
Figure A31. Phase errors (S4), with outlier threshold of 30 m. See Table A26 for details.
Electronics 12 04781 g0a31
Figure A32. Carrier-to-Noise ratio (C/N0) (S4) [Blue: L1, Orange: L5]. See Table A27 for details.
Figure A32. Carrier-to-Noise ratio (C/N0) (S4) [Blue: L1, Orange: L5]. See Table A27 for details.
Electronics 12 04781 g0a32
Table A22. Statistics for position errors (S4).
Table A22. Statistics for position errors (S4).
Mean ± StD (1- σ ) [m]RMSE [m]
DeviceInc. [%]EastNorthUp2D3D
GP7100.00 0.600 ± 1.741 1.734 ± 1.738 2.449 ± 1.964 3.0694.390
ON2100.000.166 ± 2.2860.881 ± 2.121 1.709 ± 2.330 3.2444.344
ON2100.000.180 ± 2.2411.829 ± 4.352 7.407 ± 3.991 5.2289.905
A52
X11100.000.593 ± 3.1883.145 ± 4.068 4.926 ± 3.044 6.0788.394
Table A23. Signals’ percentages visibility w.r.t. the base receiver (S4).
Table A23. Signals’ percentages visibility w.r.t. the base receiver (S4).
 Freq. [%]Constellations [%]
DeviceL1L5GRECIJ
GP778.280.788.990.060.083.3
GPW82.666.7100.040.033.3
ON2106.5111.5122.2100.0110.0100.0
A5293.466.790.050.050.0
X11108.6111.5122.2100.0110.0104.2
Table A24. Statistics for pseudorange errors [m] (S4).
Table A24. Statistics for pseudorange errors [m] (S4).
DeviceInc. [%]Mean [m]StD [m]Min. [m]Max. [m]
PseudorangeGP799.95%0.14112.020 224.975 154.113
ON299.73%0.16814.831 261.697 274.383
ON299.87%0.0645.215 102.422 115.495
A5299.98%0.05413.572 216.617 176.996
X1199.81%0.60325.354 261.007 271.240
Table A25. Statistics for Doppler errors [m] (S4).
Table A25. Statistics for Doppler errors [m] (S4).
DeviceInc. [%]Mean [m]StD [m]Min. [m]Max. [m]
DopplerGP799.91%0.0850.610 19.214 29.231
ON2100.00%0.0880.395 6.177 6.730
ON2100.00%0.0550.958 21.951 22.330
A52100.00%0.0770.755 8.661 6.299
X11100.00%0.0640.846 18.461 25.563
Table A26. Statistics for carrier phase errors [m] (S4).
Table A26. Statistics for carrier phase errors [m] (S4).
DeviceInc. [%]Mean [m]StD [m]Min. [m]Max. [m]
PhaseGP798.97%0.0901.127 29.219 29.975
ON299.89%0.1100.895 22.653 27.966
ON298.92%0.0650.888 29.929 28.932
A52100.00%0.0000.0000.0000.000
X1199.10%0.0790.931 29.507 29.919
Table A27. Statistics for C/n0 errors [dB-Hz] (S4).
Table A27. Statistics for C/n0 errors [dB-Hz] (S4).
DeviceInc. [%]Mean [dB]StD [dB]Min. [dB]Max. [dB]
C/n0GP7100.00%33.87.410.652.7
ON2100.00%27.86.712.145.3
ON2100.00%25.610.50.048.8
A52100.00%42.56.119.358.7
X11100.00%29.27.15.047.8

References

  1. Zhu, F.; Tao, X.; Liu, W.; Shi, X.; Wang, F.; Zhang, X. Walker: Continuous and Precise Navigation by Fusing GNSS and MEMS in Smartphone Chipsets for Pedestrians. Remote Sens. 2019, 11, 139. [Google Scholar] [CrossRef]
  2. Harke, K.; O’Keefe, K. Gyroscope Drift Estimation of a GPS/MEMSINS Smartphone Sensor Integration Navigation System for Kayaking. In Proceedings of the 35th International Technical Meeting of the Satellite Division of The Institute of Navigation (ION GNSS+ 2022), Denver, CO, USA, 19–23 September 2022; pp. 1413–1427. [Google Scholar]
  3. Garmin. Garmin Developers. Available online: https://developer.garmin.com/connect-iq/overview/ (accessed on 12 September 2023).
  4. Fitbit. Fitbit Developers. Available online: https://dev.fitbit.com/ (accessed on 12 September 2023).
  5. APROPOS. Approximate Computing for Power and Energy Optimisation. Available online: https://projects.tuni.fi/apropos/ (accessed on 12 September 2023).
  6. LEDSOL. Enabling Clean and Sustainable Water through Smart UV/LED Disinfection and SOLar Energy Utilization. Available online: https://www.leap-re.eu/ledsol/ (accessed on 12 September 2023).
  7. Grenier, A.; Lohan, E.S.; Ometov, A.; Nurmi, J. Multi-Sensor Dataset From Android Smart Devices; Zenodo: Geneva, Switzerland, 2023. [Google Scholar] [CrossRef]
  8. EUSPA. World’s First Dual-Frequency GNSS Smartphone Hits the Market. Available online: https://www.euspa.europa.eu/newsroom/news/world-s-first-dual-frequency-gnss-smartphone-hits-market (accessed on 12 September 2023).
  9. Subirana, J.; Zornoza, J.; Hernández-Pajares, M. GNSS Data Processing Volume I: Fundamentals and Algorithms; ESA Communications; European Space Agency: Paris, France, 2013. [Google Scholar]
  10. Grenier, A. Development of a GNSS Positioning Application under Android OS Using GALILEO Signals. Master’s Thesis, Ecole Nationale de Sciences Geographiques, Champs-sur-Marne, France, 2019. [Google Scholar]
  11. Zangenehnejad, F.; Gao, Y. GNSS Smartphones Positioning: Advances, Challenges, Opportunities, and Future Perspectives. Satell. Navig. 2021, 2, 1–23. [Google Scholar] [CrossRef] [PubMed]
  12. Paziewski, J.; Fortunato, M.; Mazzoni, A.; Odolinski, R. An Analysis of Multi-GNSS Observations Tracked by Recent Android Smartphones and Smartphone-Only Relative Positioning Results. Measurement 2021, 175, 109162. [Google Scholar] [CrossRef]
  13. Magiera, W.; Vārna, I.; Mitrofanovs, I.; Silabrieds, G.; Krawczyk, A.; Skorupa, B.; Apollo, M.; Maciuk, K. Accuracy of Code GNSS Receivers under Various Conditions. Remote Sens. 2022, 14, 2615. [Google Scholar] [CrossRef]
  14. Wen, Q.; Geng, J.; Li, G.; Guo, J. Precise Point Positioning with Ambiguity Resolution Using an External Survey-Grade Antenna Enhanced Dual-Frequency Android GNSS Data. Measurement 2020, 157, 107634. [Google Scholar] [CrossRef]
  15. Wang, L.; Li, Z.; Wang, N.; Wang, Z. Real-Time GNSS Precise Point Positioning for Low-Cost Smart Devices. GPS Solut. 2021, 25, 1–13. [Google Scholar] [CrossRef]
  16. Li, M.; Huang, G.; Wang, L.; Xie, W. BDS/GPS/Galileo Precise Point Positioning Performance Analysis of Android Smartphones Based on Real-Time Stream Data. Remote Sens. 2023, 15, 2983. [Google Scholar] [CrossRef]
  17. Fortunato, M.; Ravanelli, M.; Mazzoni, A. Real-Time Geophysical Applications with Android GNSS Raw Measurements. Remote Sens. 2019, 11, 2113. [Google Scholar] [CrossRef]
  18. Stauffer, R.; Hohensinn, R.; Herrera-Pinzón, I.D.; Pan, Y.; Moeller, G.; Kłopotek, G.; Soja, B.; Brockmann, E.; Rothacher, M. Estimation of Tropospheric Parameters with GNSS Smartphones in a Differential Approach. Meas. Sci. Technol. 2023, 34, 095126. [Google Scholar] [CrossRef]
  19. Lohan, E.S.; Bierwirth, K.; Kodom, T.; Ganciu, M.; Lebik, H.; Elhadi, R.; Cramariuc, O.; Mocanu, I. Standalone Solutions for Clean and Sustainable Water Access in Africa through Smart UV/LED Disinfection, Solar Energy Utilization, and Wireless Positioning Support. IEEE Access 2023, 11, 81882–81899. [Google Scholar] [CrossRef]
  20. Lohan, E.S.; Kodom, T.; Lebik, H.; Grenier, A.; Zhang, X.; Cramariuc, O.; Mocanu, I.; Bierwirth, K.; Nurmi, J. Raw GNSS Data Analysis for the LEDSOL Project—Preliminary Results and Way Ahead. In Proceedings of the WiP in Hardware and Software for Location Computation (WIPHAL 2023), Castellon, Spain, 6–8 June 2023; Volume 3434. [Google Scholar]
  21. Lo, S.; Chen, Y.H.; Akos, D.; Cotts, B.; Miralles, D. Test of Crowdsourced Smartphones Measurements to Detect GNSS Spoofing and Other Disruptions. In Proceedings of the International Technical Meeting of The Institute of Navigation, Reston, VA, USA, 28–31 January 2019; pp. 373–388. [Google Scholar]
  22. Spens, N.; Lee, D.K.; Nedelkov, F.; Akos, D. Detecting GNSS Jamming and Spoofing on Android Devices. Navig. J. Inst. Navig. 2022, 69, navi.537. [Google Scholar] [CrossRef]
  23. Orendorff, D.; Van Diggelen, F.; Elliott, J.; Fu, M.; Khider, M.; Dane, S. Google Smartphone Decimeter Challenge. 2021. Available online: https://kaggle.com/competitions/google-smartphone-decimeter-challenge (accessed on 21 November 2023).
  24. Howard, A.; Chow, A.; Julian, B.; Orendorff, D.; Fu, M.; Khider, M.; Dane, S. Google Smartphone Decimeter Challenge. 2022. Available online: https://kaggle.com/competitions/smartphone-decimeter-2022 (accessed on 21 November 2023).
  25. Fu, G.M.; Khider, M.; van Diggelen, F. Android Raw GNSS Measurement Datasets for Precise Positioning. In Proceedings of the 33rd International Technical Meeting of the Satellite Division of the Institute of Navigation (ION GNSS+ 2020), Online, 22–25 September 2020; pp. 1925–1937. [Google Scholar]
  26. EUSPA. GNSS Raw Measurements Task Force. 2021. Available online: https://www.euspa.europa.eu/euspace-applications/gnss-raw-measurements/gnss-raw-measurements-task-force (accessed on 21 November 2023).
  27. Reeder, B.; David, A. Health at Hand: A Systematic Review of Smart Watch Uses for Health and Wellness. J. Biomed. Inform. 2016, 63, 269–276. [Google Scholar] [CrossRef] [PubMed]
  28. Jat, A.S.; Grønli, T.M. Smart Watch for Smart Health Monitoring: A Literature Review. In Proceedings of the International Work-Conference on Bioinformatics and Biomedical Engineering, Maspalomas, Spain, 27–30 June 2022; Springer: Cham, Switzerland, 2022; pp. 256–268. [Google Scholar]
  29. Hernández-Orallo, E.; Manzoni, P.; Calafate, C.T.; Cano, J.C. Evaluating How Smartphone Contact Tracing Technology Can Reduce the Spread of Infectious Diseases: The Case of COVID-19. IEEE Access 2020, 8, 99083–99097. [Google Scholar] [CrossRef] [PubMed]
  30. Site, A.; Lohan, E.S.; Jolanki, O.; Valkama, O.; Hernandez, R.R.; Latikka, R.; Alekseeva, D.; Vasudevan, S.; Afolaranmi, S.; Ometov, A.; et al. Managing Perceived Loneliness and Social-Isolation Levels for Older Adults: A Survey with Focus on Wearables-Based Solutions. Sensors 2022, 22, 1108. [Google Scholar] [CrossRef] [PubMed]
  31. Broadcom. Broadcom Introduces Second Generation Dual-Frequency GNSS. Available online: https://www.broadcom.com/blog/broadcom-introduces-second-generati (accessed on 12 September 2023).
  32. Barbeau, S. Crowdsourcing GNSS Features of Android Devices. 2021. Available online: https://barbeau.medium.com/crowdsourcing-gnss-capabilities-of-android-devices-d4228645cf25 (accessed on 21 November 2023).
  33. Google. Google Pixel Watch. Available online: https://store.google.com/us/product/google_pixel_watch?hl=en-US (accessed on 12 September 2023).
  34. Karki, B.; Won, M. Characterizing Power Consumption of Dual-Frequency GNSS of Smartphone. In Proceedings of the IEEE Global Communications Conference, Taipei, Taiwan, 7–11 December 2020; pp. 1–6. [Google Scholar]
  35. Google. GPS Measurement Tools Github. Available online: https://github.com/google/gps-measurement-tools (accessed on 12 September 2023).
  36. University, T. Mimir Github. Available online: https://github.com/agrenier-gnss/mimir (accessed on 12 September 2023).
  37. University, T. Mimir Analyzer Github. Available online: https://github.com/agrenier-gnss/MimirAnalyzer (accessed on 12 September 2023).
  38. Takasu, T. PPP Ambiguity Resolution Implementation in RTKLIB. Geophys. J. Int. 2013, 194, 1441–1454. [Google Scholar]
  39. Ferreira, D.L.; Nunes, B.A.A.; Campos, C.A.V.; Obraczka, K. User Community Identification through Fine-Grained Mobility Records for Smart City Applications. IEEE Trans. Intell. Transp. Syst. 2022, 23, 4387–4401. [Google Scholar] [CrossRef]
  40. Fu, H.; Kone, Y.; Renaudin, V.; Zhu, N. A Survey on Artificial Intelligence for Pedestrian Navigation with Wearable Inertial Sensors. In Proceedings of the IEEE 12th International Conference on Indoor Positioning and Indoor Navigation (IPIN), Beijing, China, 5–8 September 2022; pp. 1–8. [Google Scholar]
  41. Fu, H.; Bonis, T.; Renaudin, V.; Zhu, N. A Computer Vision Approach for Pedestrian Walking Direction Estimation with Wearable Inertial Sensors: PatternNet. In Proceedings of the 2023 IEEE/ION Position, Location and Navigation Symposium (PLANS), Monterey, CA, USA, 24–27 April 2023; pp. 691–699. [Google Scholar]
  42. Zhu, N.; Bouronopoulos, A.; Leduc, T.; Servières, M.; Renaudin, V. Evaluation of the Human Body Mask Effects on GNSS Wearable Devices for Outdoor Pedestrian Navigation Using Fisheye Sky Views. In Proceedings of the 2023 IEEE/ION Position, Location and Navigation Symposium (PLANS), Monterey, CA, USA, 24–27 April 2023; pp. 841–850. [Google Scholar]
  43. Google. Android Developers. Available online: https://developer.android.com/ (accessed on 12 September 2023).
  44. EUSPA. Using GNSS Raw Measurements on Android Devices; Technical Report; European Agency for the Space Program: Paris, France, 2019. [Google Scholar]
  45. Perul, J.; Renaudin, V. HEAD: SmootH Estimation of wAlking Direction with a handheld device embedding inertial, GNSS, and magnetometer sensors. Navigation 2020, 67, 713–726. [Google Scholar] [CrossRef]
  46. Chiang, K.W.; Chang, H.W.; Li, Y.H.; Tsai, G.J.; Tseng, C.L.; Tien, Y.C.; Hsu, P.C. Assessment for INS/GNSS/Odometer/Barometer Integration in Loosely Coupled and Tightly Coupled Scheme in a GNSS-degraded Environment. IEEE Sens. J. 2019, 20, 3057–3069. [Google Scholar] [CrossRef]
  47. Romero, I. RINEX: The Receiver Independent Exchange Format Version 3.05; ESA/ESOC/Navigation Support Office: Darmstadt, Germany, 2020. [Google Scholar]
  48. Massarweh, L.; Fortunato, M.; Gioia, C. Assessment of Real-Time Multipath Detection with Android Raw GNSS Measurements by Using a Xiaomi Mi 8 Smartphone. In Proceedings of the IEEE/ION Position, Location and Navigation Symposium (PLANS), Portland, OR, USA, 20–23 April 2020; pp. 1111–1122. [Google Scholar]
  49. Verheyde, T.; Blais, A.; Macabiau, C.; Marmet, F.X. Analyzing Android GNSS Raw Measurements Flags Detection Mechanisms for Collaborative Positioning in Urban Environment. In Proceedings of the International Conference on Localization and GNSS (ICL-GNSS), IEEE, Tampere, Finland, 2–4 June 2020; pp. 1–6. [Google Scholar]
  50. Grenier, A.; Lohan, E.S.; Ometov, A.; Nurmi, J. A Survey on Low-Power GNSS. IEEE Commun. Surv. Tutor. 2023, 25, 1482–1509. [Google Scholar] [CrossRef]
Figure 1. Sensors available in smart devices.
Figure 1. Sensors available in smart devices.
Electronics 12 04781 g001
Figure 2. Processing workflow for survey acquisition and processing.
Figure 2. Processing workflow for survey acquisition and processing.
Electronics 12 04781 g002
Figure 3. Description of the acquisition setups. (a) Static acquisition setup. (b) Backpack setup with reference receiver.
Figure 3. Description of the acquisition setups. (a) Static acquisition setup. (b) Backpack setup with reference receiver.
Electronics 12 04781 g003
Figure 4. Maps of the scenarios’ trajectories. (a) S1; (b) S2; (c) S3; (d) S4.
Figure 4. Maps of the scenarios’ trajectories. (a) S1; (b) S2; (c) S3; (d) S4.
Electronics 12 04781 g004
Figure 5. Two−dimensional error in East and North (S1).
Figure 5. Two−dimensional error in East and North (S1).
Electronics 12 04781 g005
Figure 6. East−North−Up error (S1).
Figure 6. East−North−Up error (S1).
Electronics 12 04781 g006
Figure 7. Two−dimensional error in east/north (S3).
Figure 7. Two−dimensional error in east/north (S3).
Electronics 12 04781 g007
Figure 8. Two−dimensional error in east/north (S4).
Figure 8. Two−dimensional error in east/north (S4).
Electronics 12 04781 g008
Table 1. Selected Android devices included in the dataset.
Table 1. Selected Android devices included in the dataset.
AcronymDevice NameTypeReleaseAndroid (API)GNSS ChipFrequenciesPhaseNavigation Message
GP7Google Pixel 7PhoneOctober 2022Android 13 (API 33)Broadcom BCM4776L1, L5
GPWGoogle Pixel WatchWatchOctober 2022WearOS 3.5 (API 30)Broadcom BCM4776L1
ON2OnePlus Nord 2 5GPhoneJuly 2021Android 12 (API 31)UnknownL1, L5
A52Samsung A52 5GPhoneMarch 2021Android 13 (API 33)Qualcomm SD 720GL1
X11Xiaomi 11TPhoneSeptember 2021Android 12 (API 31)UnknownL1, L5
Table 2. Summary of the scenarios.
Table 2. Summary of the scenarios.
MotionEnvironmentDurationDevice Carrying Mode
S1StaticOpen-sky45 minPlaced on tripod
S2PedestrianUrban canyoning10 minIn right-hand, texting *
S3PedestrianSuburban area30 minIn backpack, pocket *
S4PedestrianForest & lake30 minIn backpack, pocket *
* Smartwatch placed on left wrist, texting mode.
Table 3. Summary of the surveys performed and sensors logged.
Table 3. Summary of the surveys performed and sensors logged.
ScenarioDateDeviceGNSSINSMagnetometerBarometer
S117.02.2023GP7
03.03.2023ON2
03.03.2023X11
17.03.2023A52
14.08.2023GPW
S201.08.2023GP7
01.08.2023GPW
01.08.2023X11
11.08.2023A52
11.08.2023ON2
S3 GP7
ON2
11.08.2023X11
A52
GPW
S4 GP7
ON2
11.08.2023X11
A52
GPW
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Grenier, A.; Lohan, E.S.; Ometov, A.; Nurmi, J. Towards Smarter Positioning through Analyzing Raw GNSS and Multi-Sensor Data from Android Devices: A Dataset and an Open-Source Application. Electronics 2023, 12, 4781. https://doi.org/10.3390/electronics12234781

AMA Style

Grenier A, Lohan ES, Ometov A, Nurmi J. Towards Smarter Positioning through Analyzing Raw GNSS and Multi-Sensor Data from Android Devices: A Dataset and an Open-Source Application. Electronics. 2023; 12(23):4781. https://doi.org/10.3390/electronics12234781

Chicago/Turabian Style

Grenier, Antoine, Elena Simona Lohan, Aleksandr Ometov, and Jari Nurmi. 2023. "Towards Smarter Positioning through Analyzing Raw GNSS and Multi-Sensor Data from Android Devices: A Dataset and an Open-Source Application" Electronics 12, no. 23: 4781. https://doi.org/10.3390/electronics12234781

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop