espargos-0007 Dataset: Passive target with four synchronized ESPARGOS antenna arrays in a lab room

A passive target is moving in a lab room, with four time- and phase-synchronous ESPARGOS arrays in the corner of the room and four transmitters on the ceiling. Great for bistatic / passive Radar experiments.

16.562 MHz

Signal Bandwidth

53

OFDM Subcarriers

1255677

Data Points

21061.0 s

Total Duration

17.4 GB

Total Download Size

32

Number of Antennas

Indoor

Type of Environment

2.472000 GHz

Carrier Frequency

Global

Phase Synchronization

3D Tachymeter

Position-Tagged

802.11n

WiFi Standard

Passive

Target Type

Experiment Setup

Data Analysis

Receiver Array Setup

ESPARGOS 1: espargosnorth

This ESPARGOS array has a vertical spacing of 0.06m and a horizontal spacing of 0.06m. In the dataset's cartesian coordinate system, its center is located at [-0.009 6.7896 -1.0058] and the plane in which all the array's antennas are located is spanned by two vectors: The vector [0.9892 0.1464 -0.0039], which points to the right when looking at the array from the front, and the vector [0.0571 -0.3641 0.9296], which points upwards.

ESPARGOS 2: espargoswest

This ESPARGOS array has a vertical spacing of 0.06m and a horizontal spacing of 0.06m. In the dataset's cartesian coordinate system, its center is located at [-2.5101 3.6108 -1.0331] and the plane in which all the array's antennas are located is spanned by two vectors: The vector [-0.0472 0.9989 0.0075], which points to the right when looking at the array from the front, and the vector [0.2173 0.0018 0.9761], which points upwards.

ESPARGOS 3: espargossouth

This ESPARGOS array has a vertical spacing of 0.06m and a horizontal spacing of 0.06m. In the dataset's cartesian coordinate system, its center is located at [-0.9266 0.4876 -1.0233] and the plane in which all the array's antennas are located is spanned by two vectors: The vector [-0.9509 0.3086 -0.0219], which points to the right when looking at the array from the front, and the vector [0.0968 0.3639 0.9264], which points upwards.

ESPARGOS 4: espargoseast

This ESPARGOS array has a vertical spacing of 0.06m and a horizontal spacing of 0.06m. In the dataset's cartesian coordinate system, its center is located at [4.4188 2.8471 -1.0134] and the plane in which all the array's antennas are located is spanned by two vectors: The vector [-0.1077 -0.9942 0.0008], which points to the right when looking at the array from the front, and the vector [-0.1797 0.0213 0.9835], which points upwards.

Transmitters

TX 1: First transmitter (LILYGO T-Dongle-S3), mounted to the ceiling.
The transmit antenna is located at [0.2708 6.4101 0.5188] and the transmitter uses MAC address 0a:ee:f5:00:00:01.
TX 2: Second transmitter (LILYGO T-Dongle-S3), mounted to the ceiling.
The transmit antenna is located at [3.9133 4.1573 0.5219] and the transmitter uses MAC address 0a:ee:f5:00:00:02.
TX 3: Third transmitter (LILYGO T-Dongle-S3), mounted to the ceiling.
The transmit antenna is located at [1.8529 2.2096 0.5162] and the transmitter uses MAC address 0a:ee:f5:00:00:03.
TX 4: Fourth transmitter (LILYGO T-Dongle-S3), mounted to the ceiling.
The transmit antenna is located at [-1.0005 1.0467 0.5219] and the transmitter uses MAC address 0a:ee:f5:00:00:04.

Python: Import with TensorFlow

#!/usr/bin/env python3
import tensorflow as tf

raw_dataset = tf.data.TFRecordDataset(["tfrecords/espargos-0007-empty-room.tfrecords", "tfrecords/espargos-0007-spiral-ccw-1-part1.tfrecords", "tfrecords/espargos-0007-spiral-ccw-1-part2.tfrecords", "tfrecords/espargos-0007-randomwalk-1.tfrecords", "tfrecords/espargos-0007-meanders-nw-se-1.tfrecords", "tfrecords/espargos-0007-meanders-sw-ne-1.tfrecords", "tfrecords/espargos-0007-radial-1.tfrecords", "tfrecords/espargos-0007-randomwalk-2.tfrecords", "tfrecords/espargos-0007-meanders-e-w-1.tfrecords", "tfrecords/espargos-0007-spiral-ccw-2.tfrecords", "tfrecords/espargos-0007-human-helmet-meanders-nw-se-1.tfrecords", "tfrecords/espargos-0007-human-helmet-meanders-sw-ne-1.tfrecords", "tfrecords/espargos-0007-human-helmet-randomwalk-1.tfrecords", "tfrecords/espargos-0007-human-helmet-standing-center-1.tfrecords", "tfrecords/espargos-0007-human-helmet-circle-1.tfrecords", "tfrecords/espargos-0007-circle-1.tfrecords"])

feature_description = {
	"csi": tf.io.FixedLenFeature([], tf.string, default_value = ''),
	"mac": tf.io.FixedLenFeature([], tf.string, default_value = ''),
	"pos": tf.io.FixedLenFeature([], tf.string, default_value = ''),
	"rssi": tf.io.FixedLenFeature([], tf.string, default_value = ''),
	"time": tf.io.FixedLenFeature([], tf.string, default_value = ''),
}
			
def record_parse_function(proto):
	record = tf.io.parse_single_example(proto, feature_description)

	# Channel coefficients for all antennas, over all subcarriers, complex-valued
	csi = tf.ensure_shape(tf.io.parse_tensor(record["csi"], out_type = tf.complex64), (4, 2, 4, 53))

	# MAC address of transmitter
	mac = record["mac"].numpy()

	# Position of transmitter determined by a tachymeter pointed at a prism mounted on top of the antenna, in meters (X / Y / Z coordinates)
	pos = tf.ensure_shape(tf.io.parse_tensor(record["pos"], out_type = tf.float64), (3))

	# Received signal strength indicator (in dB) for all antennas
	rssi = tf.ensure_shape(tf.io.parse_tensor(record["rssi"], out_type = tf.float32), (4, 2, 4))

	# Timestamp of measurement, seconds since UNIX epoch
	time = tf.ensure_shape(tf.io.parse_tensor(record["time"], out_type = tf.float64), ())

	return csi, mac, pos, rssi, time
			
dataset = raw_dataset.map(record_parse_function, num_parallel_calls = tf.data.experimental.AUTOTUNE)

# Optional: Cache dataset in RAM for faster training
dataset = dataset.cache()

Configuration Variants and Pointcloud

:

Hint: Move with W-A-S-D, up with spacebar, down with shift, pan with mouse
No pointcloud available for this configuration variant!

Pointcloud Download and Usage Instructions

For this dataset, we provide a pointcloud of the environment, which was generated using a 3D scanning device. You may find the pointcloud useful for visualization purposes or to reconstruct and verify 3D models. Pointclouds can be viewed and edited with applications like CloudCompare.

The tachymeter was used to create a pointcloud scan. While it is stationed in the middle of the measurement area for the pointcloud scan, it was stationed elsewhere while the robot / person was moving. The coordinate system of the pointlcoud is the same coordinate system that was also used for the rest of the dataset (datapoint positions, antenna array positions, transmitter positions).

The pointcloud is available for download as a .pts file.

PTS files are simple text files with the following format:

  • The first line contains the number of datapoints in the scan
  • The other lines contain (x, y, z) coordinates, reflection intensity and (r, g, b) color, e.g.:
x      y        z       i    r   g   b
6.9912 -19.5173 14.7111 -546 183 190 174
6.9930 -19.5178 14.7112 -505 162 171 154
6.9888 -19.5181 14.7098 -570 193 200 184
6.9902 -19.5111 14.7109 -578 184 191 173

How to Cite

Please refer to the home page for information on how to cite any of our datasets in your research. This particular dataset is currently not public. Please contact us if you want to cite this dataset in any of your publications.

A Note on WiFi Subcarriers, Bandwidth and Interpolation

WiFi has a concept of "guard" subcarriers, which act as guard bands that protect against interference with systems on neighboring WiFi channels. This means that not all subcarriers get driven (i.e., not all subcarriers contain useful QAM symbols), some subcarriers simply carry zeroes. If these subcarriers are at the edge of the considered spectrum, CSI from these guard subcarriers is simply not included in the dataset. This explains the odd (non-power of two) number of subcarriers. Therefore, even if we colloquially refer to WiFi bandwidths as "20MHz" or "40MHz", the bandwidth that is really occupied by the active OFDM subcarriers is lower. For "missing" subcarriers in the center of the bandwidth (DC subcarrier in the case of 20MHz bandwidth, guard subcarriers in the case of 40MHz bandwidth), linear interpolation is used to assign realistic values to them.

A Note on Synchronization

To make sense of the measured CSI data, please take into account:

Download

This dataset consists of 16 files. Descriptions of these files as well as download links are provided below.

espargos-0007-empty-room
Textual Description

The transmitters are sending packets, the ESPARGOS arrays are recording CSI, but there is no movement inside the room (except for the first few and last few seconds, while the measurement is started / stopped). The measurement area is empty, no humans inside the room, no passive target. Please note that this file does NOT contain position data, so you will need to adapt the source code for importing this file.

2.7 GB

File Size

194287

Data Points

3135.8 s

Duration

No position information contained in this file.

Empty Room: The room is empty, no passive target and no human inside the room.

espargos-0007-spiral-ccw-1-part1
Textual Description

The robot with the passive target follows a trajectory that is the shape of a counterclockwise spiral, first part.

0.9 GB

File Size

62695

Data Points

1036.1 s

Duration

Robot as Target: The passive target is a large trashcan (height around 0.68m, diameter around 0.43m) wrapped in aluminium foil on top of a robot. The recorded position is the position of the retroreflector on the pole (compare to photos).

espargos-0007-spiral-ccw-1-part2
Textual Description

The robot with the passive target follows a trajectory that is the shape of a counterclockwise spiral, second part.

1.3 GB

File Size

92903

Data Points

1522.4 s

Duration

Robot as Target: The passive target is a large trashcan (height around 0.68m, diameter around 0.43m) wrapped in aluminium foil on top of a robot. The recorded position is the position of the retroreflector on the pole (compare to photos).

espargos-0007-randomwalk-1
Textual Description

The robot with the passive target follows a pseudorandom trajectory inside the measurement area.

1.4 GB

File Size

103527

Data Points

1697.0 s

Duration

Robot as Target: The passive target is a large trashcan (height around 0.68m, diameter around 0.43m) wrapped in aluminium foil on top of a robot. The recorded position is the position of the retroreflector on the pole (compare to photos).

espargos-0007-meanders-nw-se-1
Textual Description

The robot with the passive target follows a northwest-southeast meander pattern (relative to the north / east / south / west array naming scheme).

2.4 GB

File Size

174658

Data Points

2886.7 s

Duration

Robot as Target: The passive target is a large trashcan (height around 0.68m, diameter around 0.43m) wrapped in aluminium foil on top of a robot. The recorded position is the position of the retroreflector on the pole (compare to photos).

espargos-0007-meanders-sw-ne-1
Textual Description

The robot with the passive target follows a southwest-northeast meander pattern (relative to the north / east / south / west array naming scheme).

2.8 GB

File Size

204719

Data Points

3499.5 s

Duration

Robot as Target: The passive target is a large trashcan (height around 0.68m, diameter around 0.43m) wrapped in aluminium foil on top of a robot. The recorded position is the position of the retroreflector on the pole (compare to photos).

espargos-0007-radial-1
Textual Description

The robot with the passive target follows radial pattern, continuously moving from the center of the measurement area to its border and back to the center again.

1.2 GB

File Size

85995

Data Points

1441.7 s

Duration

Robot as Target: The passive target is a large trashcan (height around 0.68m, diameter around 0.43m) wrapped in aluminium foil on top of a robot. The recorded position is the position of the retroreflector on the pole (compare to photos).

espargos-0007-randomwalk-2
Textual Description

The robot with the passive target follows a pseudorandom trajectory inside the measurement area.

1.9 GB

File Size

139427

Data Points

2354.9 s

Duration

Robot as Target: The passive target is a large trashcan (height around 0.68m, diameter around 0.43m) wrapped in aluminium foil on top of a robot. The recorded position is the position of the retroreflector on the pole (compare to photos).

espargos-0007-meanders-e-w-1
Textual Description

The robot with the passive target follows a east-west meander pattern (relative to the north / east / south / west array naming scheme).

2.1 GB

File Size

151679

Data Points

2579.1 s

Duration

Robot as Target: The passive target is a large trashcan (height around 0.68m, diameter around 0.43m) wrapped in aluminium foil on top of a robot. The recorded position is the position of the retroreflector on the pole (compare to photos).

espargos-0007-spiral-ccw-2
Textual Description

The robot with the passive target follows a trajectory that is the shape of a complete counterclockwise spiral.

1.3 GB

File Size

92521

Data Points

1564.9 s

Duration

Robot as Target: The passive target is a large trashcan (height around 0.68m, diameter around 0.43m) wrapped in aluminium foil on top of a robot. The recorded position is the position of the retroreflector on the pole (compare to photos).

espargos-0007-human-helmet-meanders-nw-se-1
Textual Description

A person is walking around, following a trajectory of northwest-southeast meanders inside the measurement area.

0.1 GB

File Size

9257

Data Points

156.7 s

Duration

Person as Target: The passive target is a walking person. The recorded position is the position of the retroreflector mounted to a helmet the person is wearing.

espargos-0007-human-helmet-meanders-sw-ne-1
Textual Description

A person is walking around, following a trajectory of southwest-northeast meanders inside the measurement area.

0.2 GB

File Size

17144

Data Points

288.9 s

Duration

Person as Target: The passive target is a walking person. The recorded position is the position of the retroreflector mounted to a helmet the person is wearing.

espargos-0007-human-helmet-randomwalk-1
Textual Description

A person is walking around, following a pseudorandom trajectory inside the measurement area.

0.5 GB

File Size

33011

Data Points

560.0 s

Duration

Person as Target: The passive target is a walking person. The recorded position is the position of the retroreflector mounted to a helmet the person is wearing.

espargos-0007-human-helmet-standing-center-1
Textual Description

A person is standing still in the middle of the measurement area.

0.1 GB

File Size

5041

Data Points

82.9 s

Duration

Person as Target: The passive target is a walking person. The recorded position is the position of the retroreflector mounted to a helmet the person is wearing.

espargos-0007-human-helmet-circle-1
Textual Description

A person is walking in circles inside the measurement area.

0.1 GB

File Size

6024

Data Points

99.9 s

Duration

Person as Target: The passive target is a walking person. The recorded position is the position of the retroreflector mounted to a helmet the person is wearing.

espargos-0007-circle-1
Textual Description

The robot with the passive target is driving in circles inside the measurement area.

1.1 GB

File Size

77076

Data Points

1290.2 s

Duration

Person as Target: The passive target is a walking person. The recorded position is the position of the retroreflector mounted to a helmet the person is wearing.