Sphero Dead Reckoning and CV Tracking Dataset
Cite thisCitation
Van de Wynckel, M., & Signer, B. (2025). Sphero Dead Reckoning and CV Tracking Dataset. Kaggle. https://doi.org/10.34740/KAGGLE/DS/6760212
@misc{maxim_van_de_wynckel_beat_signer_2025, author = {Van de Wynckel, Maxim and Signer, Beat}, doi = {10.34740/KAGGLE/DS/6760212}, year = {2025}, publisher = {Kaggle}, title = {Sphero {Dead} {Reckoning} and {CV} {Tracking} {Dataset}}, url = {https://www.kaggle.com/ds/6760212}, }
Authors
Abstract
A Sphero Mini is a Bluetooth ball that can be controlled by a smartphone (or in our case a laptop). The Sphero Mini can be controlled by sending movement instructions to the Sphero consisting of a direction and speed. In this dataset, we placed a camera on top of a table to create a top-down view of the Sphero moving on the floor. The Sphero was instructed to move in a spiral trajectory from the bottom-right corner to the center of the area. The dataset contains the video recording of the Sphero moving, the input instructions given to the Sphero, and the sensor data retrieved from the Sphero. The dataset was used to evaluate the sensor fusion from various sources.
The dataset was recorded on Friday, November 27, 2020, at the Vrije Universiteit Brussel. The dataset was used in the paper: https://arxiv.org/abs/2101.05198
Area
The dataset was recorded in a 260cm (W) x 200cm (H) area on the floor. The origin (0, 0) is at the bottom-right corner of the video frames.
Property | Value |
---|---|
Width (cm) | 260 |
Height (cm) | 200 |
Width (pixels) | 1040 |
Height (pixels) | 800 |
Corner 1 (pixels) | (307, 120) |
Corner 2 (pixels) | (1473, 87) |
Corner 3 (pixels) | (1899, 891) |
Corner 4 (pixels) | (20, 1024) |
Trajectory
The input trajectory is defined and visualised in the input data. A spiral trajectory was given to the Sphero toy. The Sphero toy was instructed to move in a spiral trajectory from the bottom-right corner to the center of the area.
Property | Value |
---|---|
Turns | 30 |
Sensor Frequency | 50 |
Camera
Property | Value |
---|---|
Model | Logitech Brio |
FPS | 30 |
Width | 1920 |
Height | 1080 |
Processing
The processed data is available in the processed/
folder. The processing steps are as follows:
Video processing
Wrap the video frames to a top-down view
The video frames are wrapped to a top-down view. Yellow markers were placed on the ground to help with the wrapping process (processed/video_frames_wrapped/
).
Convert the video frames to HSV
The video frames are converted to HSV to help with the object detection process (processed/video_frames_hsv/
).
Convert the video frames to black and white
The (HSV) video frames are converted to black and white to help with the object detection process (processed/video_frames_bw/
).
Position detection
The position of the Sphero is detected in each frame of the video recording. The X-Y coordinates of the Sphero are saved in processed/video_final.csv
. Note that the origin (0, 0) is at the bottom-right corner. The position is converted from pixels (the pixel location in the video frame) to centimeters (the real-world location of the Sphero).
Sensor processing
All sensor data from the Sphero toy were processed to match the orientation of the video frames.
Files
misc/
: Images and other files that are not part of the dataset itself.raw/
: Contains the raw data files generated by OpenHPS.raw/input_frames/
: Contains the raw input frames (i.e, the instructions that were given to the Sphero). Each file is a JSON file containing an OpenHPS data frame.raw/sensor_frames/
: Contains the raw output sensor data from the Sphero. Each file is a JSON file containing an OpenHPS data frame.raw/video_frames/
: Contains the individual frames of the video recording.raw/output.avi
: All the frames of the video recording stitched together.raw/dataset_info.json
: Contains information about the dataset (primarily the camera and sensor frequency).
processed/
: Contains the processed data files processed by OpenHPS.processed/video_frames_wrapped/
: Contains the invidiual frames of the video recording wrapped to a top-down view (step 1).processed/video_frames_hsv/
: Contains the individual frames of the video recording in HSV (step 2).processed/video_frames_bw/
: Contains the individual frames of the video recording in black and white (step 3).processed/video.csv
: Contains the X-Y pixel coordinates of the Sphero in each frame of the video recording.processed/video_final.csv
: Contains the final processed video X-Y coordinates in cm. (*.pdf, *.svg are the visualisations of these coordinates)processed/input_final.csv
: Contains the final processed input data. Input data are the movement instructions given to the Sphero. (*.pdf, *.svg are the visualisations of these coordinates)processed/sensor_position_final.csv
: Contains the position that is reported by the Sphero (internally computed).processed/sensor_velocity_final.csv
: Contains the position based on the velocity that is reported by the Sphero.processed/final.csv
: Contains the final processed data. This file contains the X-Y coordinates of the Sphero based on the video processing, input instructions, and sensor data. (*.pdf, *.svg are the visualisations of these coordinates)
results/
: Contains results and experiments based on the processed data.README.md
: This file (source).
Columns
Raw data
input_frames/
Raw OpenHPS data frames containing the input instructions given to the Sphero. For more info check https://openhps.org.
sensor_frames/
Raw OpenHPS data frames containing the sensor output retrieved from the Sphero. For more info check https://openhps.org.
sensor_velocity_raw.csv
timestamp
: Sensor frame timestampx
: Raw processed position based on heading + velocityy
: Raw processed position based on heading + velocityheading
: Heading in degreesvelocity
: Linear velocity of the Sphero (cm/s)
sensor_position_raw.csv
timestamp
: Sensor frame timestampx
: Internally computed X-coordinate of the Sphero (cm)y
: Internally computed Y-coordinate of the Sphero (cm)euler_x
: Euler angle X (degrees)euler_y
: Euler angle Y (degrees)euler_z
: Euler angle Z (degrees)
Processed data
video_final.csv
Position according to the video processing
timestamp
: Video frame timestampx
: X-coordinate of the Sphero (cm)y
: Y-coordinate of the Sphero (cm)
input_final.csv
Position according to the input instructions
timestamp
: Input frame timestampx
: X-coordinate of the Sphero (cm)y
: Y-coordinate of the Sphero (cm)
sensor_position_final.csv
Internally calculated position by the Sphero
timestamp
: Sensor frame timestampx
: X-coordinate of the Sphero (cm)y
: Y-coordinate of the Sphero (cm)
Results
timestamp
: Timestamp of the data framex
: X-coordinate of the Sphero (cm)y
: Y-coordinate of the Sphero (cm)video
: True or false if the video frames were included to compute the position (only for deadzone calculations)
License
The dataset is available under the MIT License.