Ouster OS2 Lidar Scans
Authors/Creators
Description
About
Readings from an Ouster OS2 lidar sensor in a basement, taken by a ground robot that starts stationary and begins to move after 10 seconds.
The *.pcap file contains a recording of the network packets with information about the point cloud emitted by the sensor. The packets were captured using Wireshark, and to replay the recording you need a *.json file and the SDK provided by Ouster for the OS2 sensor.
The SDK used to read the data is the one installed as a Python package following the instructions on the webpage (https://static.ouster.dev/sdk-docs/installation.html), version 0.13.0.
Read using CLI
To read the information, you can use the terminal tool provided by Ouster as follows:
ouster-cli source 1-to-SW.pcap viz
In the same folder where this command is executed, the file 1-to-SW.json must be included, since the tool requires this information.
Read using Python
Additionally, the following Python code is included to read the files and obtain their point clouds:
from ouster.sdk import client, pcap
import time, os
import argparse
parser = argparse.ArgumentParser(description="Example OS-2 Lidar Reader")
parser.add_argument('--pcap', type=str, help='Path to the pcap file', default='1-to-SW.pcap')
parser.add_argument('--metadata', type=str, help='Path to the metadata file', default='1-to-SW.json')
pcap_path = parser.parse_args().pcap
metadata_path = parser.parse_args().metadata
assert os.path.isfile(pcap_path), f"Pcap file not found: {pcap_path}"
assert os.path.isfile(metadata_path), f"Metadata file not found: {metadata_path}"
with open(metadata_path, 'r') as f:
metadata = client.SensorInfo(f.read())
source = pcap.Pcap(pcap_path, metadata)
try:
scans = client.Scans(source).__iter__()
while(True):
try:
scan = next(scans) # read next scan
except StopIteration: # reached end of pcap file
print("Reopening pcap file...")
scans = client.Scans(pcap.Pcap(pcap_path, metadata)).__iter__()
scan = next(scans)
time.sleep(0.085)
ranges = scan.field(client.ChanField.RANGE)
ranges_destaggered = client.destagger(source.metadata, ranges)
print(ranges_destaggered)
except KeyboardInterrupt:
print("Exiting...")
finally:
source.close()
Funding Information
Funded by the European Commission Horizon Europe programme through project SHEREC number 101136056. Neither the European Union nor the granting authority can be held responsible for the data.
Disclaimer Information
This data is provided as-is. The authors and its parties assume no responsibility, warranty or liability including the fitness for a particular purpose apart from assurance that the data acquisition or generation methodology was followed according to the given description.
Files
1-to-SW.json
Files
(63.0 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:ee5b97769134fb526af680937a55906a
|
4.4 kB | Preview Download |
|
md5:a62be9ecdab77f8d545abf869ca8d526
|
63.0 MB | Download |