5G Dataset 2025 Freyung

Description

Collected RSRP measurement of the indoor private 5G infrastructure of the DIT building in Freyung. The data are collected by a mobile robot Husky A200 and georeferenced using SLAM with 3D LiDAR measurements. The datasets include created 3D environment model and collected RSRP values with the frequencey of 1 Hz along the robot path.

Geo-referenced Map & Trajectory: TC Freyung

The datasett contains the georeferenced 3D map and estimated trajectory for the Technologie Campus Freyung.

<

The spatial data has been aligned to the Bavarian Open Data standard (UTM Zone 32N). To maintain precision and compatibility with robotic navigation stacks (e.g., ROS), the map and trajectory are provided in a Local ENU (East-North-Up) frame centered at a specific GPS anchor point.

πŸ“‚ File Structure

Current Directory (localization/global/):

.
β”œβ”€β”€ map_origin.txt              # The GPS anchor point (Lat/Lon/Alt) defining (0,0,0)
β”œβ”€β”€ campus_map_enu.pcd          # The 3D sensor map (Rotated North, Origin at map_origin)
β”œβ”€β”€ trajectory_enu.txt          # The robot trajectory (TUM format, relative to map_origin)
└── external_data/
    └── reference_map_utm.ply   # The Bavarian Open Data reference (Absolute UTM coordinates)

Project Root:


🌍 Coordinate Systems

1. Global Frame (External Reference)

2. Local ENU Frame (Robot Navigation)

Note: The campus_map_enu.pcd has valid rotation (North-aligned) but zero translation. Its internal origin (0,0,0) corresponds exactly to the coordinates in map_origin.txt.


πŸ“„ File Formats

map_origin.txt

A simple key-value text file defining the Map Datum.

latitude:  48.8110401437
longitude: 13.5471250429
altitude:  647.29

trajectory_enu.txt

Standard TUM Trajectory Format. Space-separated values.

# timestamp tx ty tz qx qy qz qw
1747845327.5568 0.00 0.00 0.00 0.0 0.0 0.0 1.0
...

campus_map_enu.pcd

signal_measurements.json (Project Root)

A flat JSON list containing signal quality metrics extracted from the robot’s cellular modem.

[
  {
    "rsrp_value": -55,
    "network_type": "5G",
    "cell_id": 1235501,
    "band": 78,
    "sinr_value": 38,
    "rsrq_value": -11,
    "timestamp_ns": 1747845331164102845,
    "timestamp": 1747845331.164103
  },
  ...
]


πŸš€ How to Get Global Coordinates

To convert any point from the map or trajectory back to the absolute Global UTM frame, simply add the Origin Shift.

Step 1: Convert Map Origin to UTM

Use a library like pyproj to convert the lat/lon from map_origin.txt into UTM Zone 32N coordinates.

Step 2: Apply Shift

Python Example

from pyproj import Transformer
import numpy as np

# 1. Load Origin
lat, lon, alt = 48.8110401437, 13.5471250429, 647.29

# 2. Get Shift Vector (UTM)
transformer = Transformer.from_crs("EPSG:4326", "EPSG:25832", always_xy=False)
shift_x, shift_y = transformer.transform(lat, lon)
shift_z = alt

print(f"Global Shift Vector: [{shift_x}, {shift_y}, {shift_z}]")

# 3. Convert a Local Point (e.g., from trajectory)
local_point = np.array([10.5, -5.0, 1.2]) # example point
global_point = local_point + np.array([shift_x, shift_y, shift_z])

print(f"Global UTM Coordinate: {global_point}")

πŸ›  Visualization Note

The reference map (external_data/reference_map_utm.ply) is in Absolute UTM coordinates (millions of meters). The robot map (campus_map_enu.pcd) is in Local coordinates (small numbers).

If you load them together in a viewer (like CloudCompare), they will be ~5,000 km apart. To verify alignment visually, you must apply the translation calculated above to the .pcd file.