$ teds read --post mirrorsentinel-elevator-fiftyone-analysis
MirrorSentinel-Elevator: Checking Lidar Against Hand-Measured Elevator Cabins
MirrorSentinel-Elevator pairs a ZED2 camera and an Ouster lidar with hand-measured cabin boundaries, so you can see what a mirror does to range.
Point a lidar at a mirror and it reports returns from behind the glass. In an elevator, that makes the cabin appear to extend into space that is solid wall. MirrorSentinel-Elevator records that failure and ships the hand-measured cabin rectangle you need to see how far off the sensor was.
## What was recordedA rig carrying a ZED2 stereo camera, an Ouster 3D LiDAR and the Ouster IMU was walked through elevator cabins. Eight traversals cover seven physical cabins, and the cabins range from 1.35 to 2.40 m on a side and are 2.50 m tall. The recordings come from the KevinWong216/MirrorSentinel-Elevator release by Yugong Wang, Shengzhe Gan, Qi Shen and Sirun Pan. Voxel51 converted them from ROS 2 bags to native multimodal MCAP episodes.
The converted set has eight episodes and 265 seconds of recording. In total that is 7,776 camera frames, 2,651 lidar sweeps holding 238.9 million points, and 26,525 inertial samples.
| Stream | What it holds |
|---|---|
/camera |
The rectified left ZED2 view at 960x540 |
/camera-calibration |
The intrinsics recorded alongside the camera |
/lidar-points |
Ouster sweeps at 10 Hz, with x, y, z, intensity, t, reflectivity, ring, ambient and range |
/imu.plot |
Three-axis acceleration and angular rate at 100 Hz |
/transforms, /transforms-static |
The sensor transform tree |
/cabin-boundary |
The hand-measured cabin rectangle, drawn from its eight corners |
/sequence |
The name of the run |
Compare the lidar to the real walls
Load the dataset and open it in the App:
import fiftyone as fo
import fiftyone.utils.huggingface as fouh
dataset = fouh.load_from_hub(
"Voxel51/MirrorSentinel-Elevator",
name="MirrorSentinel-Elevator",
persistent=True,
)
fo.launch_app(dataset)
Play an episode and scrub the camera and the point cloud together. The /cabin-boundary rectangle marks where the walls really are, so returns that land outside it are candidates for the mirror effect. Check the camera view before you decide, because the card does not say every outlier comes from reflection.
To keep one run per physical cabin:
view = dataset.match({"sequence": {"$ne": "elevator_03"}})
Limits
The cabin boundary is a manually measured geometric reference. It is not a laser scan and it is not a trajectory ground truth, and the source release says it supports cabin-boundary map-quality evaluation only. Do not use it to score pose estimates.
E02 and E03 are two runs of one cabin. The footprint field groups them, so keep them on the same side of a train and test split.
Static transforms are stamped at the start of the recording. The source latches them between 34 and 58 seconds before recording starts, and carrying those stamps would stretch the episode timeline well past the sensor data.
The source dataset is CC BY 4.0, and the conversion uses the same license. Code for the recordings is at KvnWong216/MirrorSentinel. The converted data is at Voxel51/MirrorSentinel-Elevator.
For the open-source tooling on the perception and sensor-calibration side of this problem, see a roundup of open-source robotics repositories for 3D perception, VLA policies and sensor calibration. For more of my FiftyOne dataset notes, see my Voxel51 author page, and to inspect and curate your own multimodal data in the same tool, try Voxel51.
Frequently asked questions
What does MirrorSentinel-Elevator record?
A ZED2 stereo camera, an Ouster 3D LiDAR and the Ouster IMU, carried through elevator cabins to record what mirrors and glass do to range measurements. It has eight episodes and 265 seconds of recording.
Why does a lidar report a room that is not there?
A lidar pointed at a mirror reports returns from behind it, so the cabin appears to extend into space that is solid wall.
How do I check the sensor readings against the real cabin?
Each cabin was measured by hand, and the resulting rectangle ships in the cabin-boundary stream. You can compare that real boundary with where the lidar returns land.
Can I use the cabin boundary as trajectory ground truth?
No. It is a manually measured geometric reference, not a laser scan and not a trajectory ground truth. The source release says it supports cabin-boundary map-quality evaluation only.
Are the eight episodes independent of each other?
No. E02 and E03 are two runs of one physical cabin, so eight traversals cover seven cabins. The footprint field groups them, so keep them together when independence at the cabin level matters.