Published March 6, 2025 | Version v3
Dataset Restricted

TurtleBot5G Dataset: MMK Corridor, KTH

Description

TurtleBot5G Dataset: MMK Corridor, KTH

This repository contains a unique dataset collected using a 5G-enabled TurtleBot in the MMK corridor at KTH. The project leverages edge computing capabilities provided by Telenor in collaboration with the TECoSA Research Center. TECoSA focuses on Trustworthy Edge Computing Systems and Applications—find more at the link above.

Dataset Overview

  • Environment: MMK corridor, KTH Royal Institute of Technology.
  • Robot: TurtleBot equipped with a LiDAR sensor, utilizing 5G-enabled edge computing for data processing.
  • SLAM: LiDAR-based SLAM for real-time positioning (best estimate: base_link frame).
  • Network Tests:
    • Channel info, such as RSSI, SINR, etc.
    • Ping measurements to the edge server.
    • iPerf3 throughput evaluations.

Data Details

  1. ROS2 Bag File
    The raw ROS2 bag file containing all topics, including /channel_info_map:

    - Files:             rosbag2_2025_03_06-17_19_56_0.db3
    - Bag size:          574.1 MiB
    - Storage id:        sqlite3
    - Duration:          369.127030257s
    - Start:         - Mar  6 2025 17:19:56.143364319 (1741277996.143364319)
    - End:           - Mar  6 2025 17:26:05.270394576 (1741278365.270394576)
    - Messages:          216519
    - Topic information: 
         - Topic: /sensor_state | Type: turtlebot3_msgs/msg/SensorState | Count: 7375 | Serialization Format: cdr
         - Topic: /odom | Type: nav_msgs/msg/Odometry | Count: 7375 | Serialization Format: cdr
         - Topic: /joint_states | Type: sensor_msgs/msg/JointState | Count: 7375 | Serialization Format: cdr
         - Topic: /cmd_vel_delay | Type: builtin_interfaces/msg/Time | Count: 9933 | Serialization Format: cdr
         - Topic: /tf_static | Type: tf2_msgs/msg/TFMessage | Count: 1 | Serialization Format: cdr
         - Topic: /channel_info | Type: sensor_msgs/msg/PointCloud2 | Count: 1106 | Serialization Format: cdr
         - Topic: /imu | Type: sensor_msgs/msg/Imu | Count: 7375 | Serialization Format: cdr
         - Topic: /camera_info | Type: sensor_msgs/msg/CameraInfo | Count: 11067 | Serialization Format: cdr
         - Topic: /clicked_point | Type: geometry_msgs/msg/PointStamped | Count: 0 | Serialization Format: cdr
         - Topic: /map | Type: nav_msgs/msg/OccupancyGrid | Count: 379 | Serialization Format: cdr
         - Topic: /parameter_events | Type: rcl_interfaces/msg/ParameterEvent | Count: 0 | Serialization Format: cdr
         - Topic: /battery_state | Type: sensor_msgs/msg/BatteryState | Count: 7375 | Serialization Format: cdr
         - Topic: /initialpose | Type: geometry_msgs/msg/PoseWithCovarianceStamped | Count: 0 | Serialization Format: cdr
         - Topic: /submap_list | Type: cartographer_ros_msgs/msg/SubmapList | Count: 1230 | Serialization Format: cdr
         - Topic: /move_base_simple/goal | Type: geometry_msgs/msg/PoseStamped | Count: 0 | Serialization Format: cdr
         - Topic: /joy | Type: sensor_msgs/msg/Joy | Count: 11570 | Serialization Format: cdr
         - Topic: /robot_description | Type: std_msgs/msg/String | Count: 1 | Serialization Format: cdr
         - Topic: /image_raw | Type: sensor_msgs/msg/Image | Count: 11059 | Serialization Format: cdr
         - Topic: /landmark_poses_list | Type: visualization_msgs/msg/MarkerArray | Count: 12303 | Serialization Format: cdr
         - Topic: /trajectory_node_list | Type: visualization_msgs/msg/MarkerArray | Count: 12303 | Serialization Format: cdr
         - Topic: /magnetic_field | Type: sensor_msgs/msg/MagneticField | Count: 7375 | Serialization Format: cdr
         - Topic: /events/write_split | Type: rosbag2_interfaces/msg/WriteSplitEvent | Count: 0 | Serialization Format: cdr
         - Topic: /scan | Type: sensor_msgs/msg/LaserScan | Count: 1827 | Serialization Format: cdr
         - Topic: /scan_matched_points2 | Type: sensor_msgs/msg/PointCloud2 | Count: 1828 | Serialization Format: cdr
         - Topic: /cmd_vel_stamped | Type: geometry_msgs/msg/TwistStamped | Count: 10012 | Serialization Format: cdr
         - Topic: /rosout | Type: rcl_interfaces/msg/Log | Count: 201 | Serialization Format: cdr
         - Topic: /constraint_list | Type: visualization_msgs/msg/MarkerArray | Count: 738 | Serialization Format: cdr
         - Topic: /channel_info_map | Type: sensor_msgs/msg/PointCloud2 | Count: 1107 | Serialization Format: cdr
         - Topic: /tf | Type: tf2_msgs/msg/TFMessage | Count: 85604 | Serialization Format: cdr
    
  2. Ping Logs
    Ping logs collected using:

    stdbuf -oL ping $TURTLEBOT_IP -W 500 | while read line; do echo "$(date +"[%s.%N]") $line"; done > ping.log
    
  3. iPerf3 Logs
    Network throughput (Downlink) tested using:

    iperf3 -c $TURTLEBOT_IP -t inf --json > iperf3.log
    

Unpacking the Radio Channel Information

The channel info is published in a binary format, as a PointCloud2 message. This message contains the necessary metadata and structure to unmarshal it properly. Specifically, it includes:

  • Fields: Information about each field in the point cloud (e.g., x, y, z coordinates, intensity).
  • Data Type: The type of data stored in each field (e.g., float32, uint8).
  • Dimensions: The dimensions of the point cloud data (e.g., width, height).

This metadata ensures that the point cloud data can be correctly interpreted and used in other applications.

Important: It is encouraged to rely only the embedded metadata when unmarshaling, since the layout of this topic may be subject to change in future versions of this dataset.

For reference, the fields are laid out as follows:

fields:
- name: x
  datatype: FLOAT32
  count: 1
- name: y
  datatype: FLOAT32
  count: 1
- name: z
  datatype: FLOAT32
  count: 1
- name: RSRP
  datatype: INT32
  count: 4
- name: RSRQ
  datatype: INT32
  count: 4
- name: SINR
  datatype: INT32
  count: 4
- name: CSI
  datatype: UINT8
  count: 4
- name: CSQ
  datatype: UINT8
  count: 2

These values were retrieved using the corresponding AT-commands, namely, AT+QRSRP, AT+QRSRQ, AT+QSINR, AT+QNWCFG, and AT+CSQ

The RSRP, RSRQ, and SINR fields contain four 32-bit values each, which corresponds to the different antenna values, namely

  • PRX: Primary RX
  • DRX: Diversity RX
  • RX2: MIMO-RX2 (Not used; returns reserved value -32768)
  • RX3: MIMO-RX3 (Not used; returns reserved value -32768)

The CSI-fields denote the following auxiliary information:

  • MCS: Modulation and coding scheme of PDSCH.
  • RI: Indicates the effective number of data layers of PDSCH.
  • CQI: Indicates the quality of the downlink channel.
  • PMI: Indicates the index of the codebook set.

The CSQ-fields denote the following:

  • RSSI: Received signal strength indication.
  • BER: Channel bit error rate (in percent).

For more details, see the Quectel AT Commands Manual

Use Cases

This dataset can be useful for analyzing:

  • SLAM performance and its interaction with edge computing resources.
  • Impact of 5G network quality on real-time robotic applications.
  • The interplay of edge computing with robotics in structured environments.

Known Limitations

  • Unnecessarily large datatypes used for some fields in the /channel_info topic
  • Ping and iPerf3 data are currently not published as ROS topics but are instead stored as standalone text files
  • Extremely low-resolution of the camera topic /image_raw, no compressed alternative currently available
  • Missing/incorrect parameters in /camera_info topic

For more details about this collaboration or to explore further research, contact nilsjor@kth.se.

Files

Restricted

The record is publicly accessible, but files are restricted. Log in to check if you have access.