Skip to content

ETH-PBL/Railway-Precise-Localization

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors Forks Stargazers Issues License

Precise Railway Localization

Note: Due to the size of the dataset only a sample set of the collected data, consisting of the initial 2000 lines for each run, is uploaded to GitHub.
The remainder of the data is hosted on zenodo.

Pulling the data

As this repository is split between two different hosts, pulling the complete data is somewhat cumbersome.
To make this process as easy as possible, we provide a bash script to pull the entire data set from zenodo and move it to its corresponding subfolder.

Therefore to clone the complete data set execute the following commands using any bash shell

git clone https://github.com/ETH-PBL/Railway-Precise-Localization.git
cd Railway-Precise-Localization
bash download.sh

Testing the parser script

For your convenience, a sample Python parser script is provided. The script includes the parsing and plotting of basic information extracted from the experiment data.
To plot the data from any of the data files, execute

pip install -r requirements.txt
python3 sample_parser.py <data_file.csv> [output_for_fig.png]

Note: To plot the data matplotlib is required which might need to be installed differently depending on your OS. If the script is not showing any plot there is most probably something wrong with the setup of matplotlib.

The generated plot will be similar to the ones describing the different datasets.

Experiment description

This repository contains the datasets acquired by ETH-PBL in conjunction with Unibo and SADEL during two days of testing in October 2022 near Modena, Italy.

The data were acquired using two sensor nodes developed by ETH Zurich running a STM32L452CEU6 MCU.
Each node collected data on the motion of the train using an ST ASM330LHH automotive grade IMU as well as a u-blox ZED-F9P GNSS module fed with live RTCM-data from a closeby RTK base station provided by SADEL. The base station utilized another ZED-F9P GNSS module connected to a Raspberry Pi, which transmitted the generated RTCM correction packages over a raw TCP socket.
The data was then received using a u-blox SARA-R4 cellular network module.

Fig: The Sensor Node as deployed in the final test run where: (A) SARA-R410M cellular module, (B) ZED-F9P GNSS module, (C) STM32L452CEU MCU, (D) microSD card, (E) ASM330LHH IMU

Courtesy of Trenitalia, we were able to access the driver's cabin of an ETR103 passenger train commuting between Modena and Formigine in Italy, totaling eight runs in two days.

The track was chosen as it exposes a variety of interesting GNSS environments. Encountered environments are ranging from urban over suburban to open field environments as well as one tunnel. Due to this composition, the availability of cellular connection, and thus RTK correction data, was patchy but mostly stable.

drawing

The two sensor nodes were fixed to the Train Chassis, one centered in the train and the other positioned on the left side in driving orientation.

Board Position wrt travel GNSS Antenna
Node 1 Center TOPGNSS TOP106 L1/L2
Node 2 Left ANN-MB-00 L1/L2

Node 1 was placed on the floor in front of the driver's seat and positioned to be aligned with the center of the train in the lateral direction. A TOPGNSS TOP106 L1/L2 multi-band antenna was placed below the rear-facing windscreen, also aligned with the same axis.

Node 2 was mounted on a window on the left side of the train when facing in the direction of travel. This is approximately 1m above the floor and 1.4m left to the lateral center of the train. An ANN-MB00 L1/L2 antenna was attached to the outside frame of the train above the window.

Data format

The recorded data is formatted as CSV in the format TIMESTAMP,DATA_TYPE,DATA.

Timestamp

The timestamp field contains the [h]:mm:ss.000000 starting at the startup of the board.
This data is acquired using the onboard real-time clock and thus drifts by about 1% compared to the GNSS timestamps.

Data type

  • I - IMU Data
    The DATA contains the encoded concatenation of the accelerometer and gyroscope values.
    The 12 bytes in any IMU point consist of the values for Gyroscope X, Y, Z, and accelerometer X, Y, Z in this order. Each value is a two-byte, big endian, two's complement encoded integer.
    Example:

    0101 7dfe 69ff 43fd fcfe e240
    Gyr X Gyr Y Gyr Z Acc X Acc Y Acc Z

    The data for each axis was recorded with ±2g and ±125dps, respectively. The LSB of each value will thus correspond to 0.061mg for the accelerometer data or 4.37mdps for the gyroscope data as described in Table 3 of the ASM330LHH datasheet.

  • U GNSS Data
    The DATA in this entry is encoded using the UBX Protocol (as described here in Chapter 3).
    The data for day 1 only includes UBX-NAV-PVT messages, whereas day two also includes UBX-NAV-COV

  • BRK Custom Breakpoints / Events
    Breakpoints were introduced to be able to record specific events.
    There are two different types of events contained in this data set:

    • RTCM CONNECTED
      This event was triggered as soon as the node received the first valid RTCM package after being disconnected.
    • SARA DISCONNECTED
      This event was triggered whenever the watchdog guarding the SARA connection timed out (after approximately 10s).
      Thus this even describes the failure of collecting RTCM data for 10 seconds. The next valid RTCM is only available after an RTCM CONNECTED event.
  • ARR Arrival at a station
    The breakpoints rely on manual user intervention.
    They were introduced whenever the train arrived at a station.
    The station name is given in the DATA field.

  • DEP Departure from a station
    The breakpoints rely on manual user intervention.
    They were introduced whenever the train started to depart from a station.
    The station name is given in the DATA field.

Folder structure

The published data is available in the data subfolder. In this folder, there exists a subfolder for each collected dataset. The naming scheme of these subfolders is yyyyMMDD_HHMM_TrainNr_StartStation_NodeNr. The date specified is the date of recording, whereas the time given does not necessarily correspond to the start of the recording but rather to the planned departure time of the train. For example, 20221020_1252_R90120_Formigine_SN1 will contain the dataset recorded on the 20th of October 2022 onboard train R90120 scheduled for departure at 12:52. The train is traveling from Formigine to Modena, and the dataset was recorded using Sensor Node 1.

Each folder contains a .csv file containing the raw recorded data as well as a Readme.md containing a preliminary analysis of different metrics regarding the given data, such as runtime, GNSS availability, etc.

Given Metrics

Name Description
Sensor node ID of the used node, either Sensor Node 1 or Sensor Node 2
Direction Direction of travel, Formigine -> Modena or vise versa
Train Nr. Train number according to schedule by TRENITALIA TPER Linea Modena-Sassuolo
Planned Departure Timestamp of scheduled train departure
First GNSS timestamp Timestamp of first GNSS PVT packet contained in dataset
Last GNSS timestamp Timestamp of last GNSS PVT packet contained in dataset
Data corruptions Number of lines in csv file that are not parsable
Data points Number of lines in the csv file
PVT datapoints Number of GNSS PVT (Position, Velocity, Time) packets
Covariance datapoints Number of GNSS covariance datapoints
Runtime RTC/GNSS Measuring time w.r.t. on board RTC and GNSS time
IMU dt Outliers Number of IMU datapoints outside a +-10% time interval w.r.t. the last datapoint
IMU dt points Total number of IMU datapoints
IMU dt error rate IMU dt Outliers / IMU dt points
RTK coverage Percentage of GNSS PVT packets including precise RTK data
Sat. coverage (numSv>5) Percentage of GNSS PVT packets with number of visible satellites larger than 5
Included Breakpoints Number of breakpoints (BRK)
Included Stations Number of stations (ARR/DEP)

Acknowledges

If you use Railway-Precise-Localization in an academic or industrial context, please cite the following publications:

@inproceedings{amatetti2022towards,
  title={Towards the Future Generation of Railway Localization and Signaling Exploiting sub-meter RTK GNSS},
  author={Amatetti, Carla and Polonelli, Tommaso and Masina, Enea and Moatti, Charles and Mikhaylov, Denis and Amato, Davide and Vanelli-Coralli, Alessandro and Magno, Michele and Benini, Luca},
  booktitle={2022 IEEE Sensors Applications Symposium (SAS)},
  pages={1--6},
  year={2022},
  organization={IEEE}
}
@article{mikhaylov2023towards,
  title={Towards the Future Generation of Railway Localization Exploiting RTK and GNSS},
  author={Mikhaylov, Denis and Amatetti, Carla and Polonelli, Tommaso and Masina, Enea and Campana, Riccardo and Berszin, Kai and Moatti, Charles and Amato, Davide and Vanelli-Coralli, Alessandro and Magno, Michele and others},
  journal={IEEE Transactions on Instrumentation and Measurement},
  year={2023},
  publisher={IEEE}
}