The table shows the necessary bag contents for Ouster Studio Web
Lidar Packets Lidar Packet Topic
lidar_packets (must be raw lidar packets)
In general:
Examples:
/os_node/lidar_packets
/ouster/lidar_packets
ouster_ros/msg/PacketMsg
Metadata Metadata Topic
metadata
in general:
Examples:
/os_node/metadata
/ouster/metadata
std_msgs/msg/String
No Metadata Topic If the bag file does not contain a metadata topic, a metadata.json file is required.
Here’s how to retrieve it via curl:
curl -X GET http://os-122503001493/api/v1/sensor/metadata | jq . > metadata.json contents of the metadata.json file
{
"lidar_intrinsics": {
"lidar_to_sensor_transform": [
-1,
0,
0,
0,
0,
-1,
0,
0,
0,
0,
1,
47.824,
0,
0,
0,
1
]
},
"beam_intrinsics": {
"beam_altitude_angles": [
82.02,
87.27,
87.41,
82.21,
81.93,
86.25,
85.8,
81.3,
80.8,
83.83,
83.21,
79.61,
78.98,
81.08,
80.42,
77.44,
76.75,
78.24,
77.56,
75.03,
74.3,
75.37,
74.68,
72.45,
71.71,
72.5,
71.81,
69.8,
69.05,
69.62,
68.93,
67.1,
66.36,
66.76,
66.07,
64.36,
63.62,
63.9,
63.21,
61.61,
60.87,
61.05,
60.36,
58.85,
58.1,
58.22,
57.53,
56.09,
55.33,
55.38,
54.7,
53.31,
52.57,
52.56,
51.87,
50.54,
49.79,
49.73,
49.04,
47.75,
47,
46.9,
46.21,
44.95,
44.22,
44.07,
43.37,
42.15,
41.43,
41.25,
40.55,
39.34,
38.63,
38.41,
37.72,
36.54,
35.83,
35.59,
34.88,
33.72,
33.01,
32.75,
32.05,
30.9,
30.18,
29.9,
29.19,
28.06,
27.34,
27.04,
26.33,
25.22,
24.5,
24.17,
23.46,
22.36,
21.64,
21.29,
20.58,
19.5,
18.77,
18.41,
17.69,
16.63,
15.88,
15.51,
14.8,
13.74,
13,
12.61,
11.89,
10.83,
10.09,
9.68,
8.94,
7.9,
7.16,
6.73,
5.99,
4.93,
4.19,
3.76,
3.02,
1.96,
1.2,
0.76,
0.02,
-1.04
],
"beam_azimuth_angles": [
100.15,
97.38,
-81.97,
-84.17,
78.84,
46.13,
-37.76,
-64.46,
60.6,
26.23,
-22.49,
-49.84,
47.38,
17.99,
-15.95,
-39.83,
38.28,
13.72,
-12.4,
-32.94,
31.94,
11.11,
-10.15,
-28.03,
27.34,
9.37,
-8.64,
-24.41,
23.91,
8.12,
-7.56,
-21.66,
21.28,
7.2,
-6.72,
-19.48,
19.22,
6.46,
-6.09,
-17.76,
17.54,
5.88,
-5.58,
-16.36,
16.17,
5.41,
-5.16,
-15.2,
15.03,
5.02,
-4.81,
-14.21,
14.07,
4.7,
-4.52,
-13.38,
13.26,
4.42,
-4.27,
-12.67,
12.55,
4.17,
-4.05,
-12.04,
11.92,
3.96,
-3.87,
-11.48,
11.36,
3.77,
-3.72,
-11.01,
10.89,
3.61,
-3.57,
-10.59,
10.46,
3.46,
-3.45,
-10.21,
10.08,
3.33,
-3.34,
-9.88,
9.74,
3.21,
-3.24,
-9.58,
9.44,
3.1,
-3.16,
-9.31,
9.16,
3,
-3.08,
-9.07,
8.91,
2.92,
-3.01,
-8.85,
8.68,
2.84,
-2.95,
-8.66,
8.48,
2.77,
-2.89,
-8.49,
8.29,
2.7,
-2.85,
-8.33,
8.13,
2.65,
-2.81,
-8.2,
7.98,
2.59,
-2.77,
-8.09,
7.86,
2.54,
-2.74,
-7.99,
7.74,
2.5,
-2.72,
-7.9
],
"beam_to_lidar_transform": [
1,
0,
0,
17.1403,
0,
1,
0,
0,
0,
0,
1,
17.3813,
0,
0,
0,
1
]
},
"imu_intrinsics": {
"imu_to_sensor_transform": [
1,
0,
0,
-2.441,
0,
1,
0,
-9.725,
0,
0,
1,
7.533,
0,
0,
0,
1
]
},
"sensor_info": {
"prod_line": "OS-DOME-128",
"prod_pn": "OSDOM-070-128U-AX",
"prod_sn": "122503001493",
"image_rev": "ousteros-image-prod-bootes-v3.1.0+20240426041747",
"build_rev": "v3.1.0",
"build_date": "2024-04-26T02:34:31Z",
"status": "RUNNING",
"initialization_id": 15382924
},
"calibration_status": {
"reflectivity": {
"valid": true,
"timestamp": "2025-01-21T13:51:51"
}
},
"lidar_data_format": {
"pixels_per_column": 128,
"columns_per_packet": 16,
"columns_per_frame": 1024,
"pixel_shift_by_row": [
285,
277,
-233,
-239,
224,
131,
-107,
-183,
172,
75,
-64,
-142,
135,
51,
-45,
-113,
109,
39,
-35,
-94,
91,
32,
-29,
-80,
78,
27,
-25,
-69,
68,
23,
-22,
-62,
61,
20,
-19,
-55,
55,
18,
-17,
-51,
50,
17,
-16,
-47,
46,
15,
-15,
-43,
43,
14,
-14,
-40,
40,
13,
-13,
-38,
38,
13,
-12,
-36,
36,
12,
-12,
-34,
34,
11,
-11,
-33,
32,
11,
-11,
-31,
31,
10,
-10,
-30,
30,
10,
-10,
-29,
29,
9,
-10,
-28,
28,
9,
-9,
-27,
27,
9,
-9,
-26,
26,
9,
-9,
-26,
25,
8,
-9,
-25,
25,
8,
-8,
-25,
24,
8,
-8,
-24,
24,
8,
-8,
-24,
23,
8,
-8,
-23,
23,
7,
-8,
-23,
22,
7,
-8,
-23,
22,
7,
-8,
-22
],
"column_window": [
0,
1023
],
"udp_profile_lidar": "RNG15_RFL8_NIR8",
"udp_profile_imu": "LEGACY"
},
"imu_data_format": {
"gyro_fsr": "NORMAL",
"accel_fsr": "NORMAL"
},
"config_params": {
"udp_dest": "239.34.84.18",
"udp_port_lidar": 7502,
"udp_port_imu": 7503,
"udp_profile_lidar": "RNG15_RFL8_NIR8",
"udp_profile_imu": "LEGACY",
"columns_per_packet": 16,
"return_order": "FARTHEST_TO_NEAREST",
"timestamp_mode": "TIME_FROM_INTERNAL_OSC",
"sync_pulse_in_polarity": "ACTIVE_HIGH",
"nmea_in_polarity": "ACTIVE_HIGH",
"nmea_ignore_valid_char": 0,
"nmea_baud_rate": "BAUD_9600",
"nmea_leap_seconds": 0,
"multipurpose_io_mode": "OFF",
"sync_pulse_out_polarity": "ACTIVE_HIGH",
"sync_pulse_out_frequency": 1,
"sync_pulse_out_angle": 360,
"sync_pulse_out_pulse_width": 10,
"operating_mode": "NORMAL",
"lidar_mode": "1024x10",
"azimuth_window": [
0,
360000
],
"signal_multiplier": 1,
"phase_lock_enable": false,
"phase_lock_offset": 0,
"min_range_threshold_cm": 50,
"gyro_fsr": "NORMAL",
"accel_fsr": "NORMAL"
}
} FAQ How do I find the topic names and type in a bag file? Here’s an example on how to list the topic names and topic type from a bag file using ouster-cli
% ouster-cli source 122214002322_2025-09-08-17-32-06.bag info
Filename: 122214002322_2025-09-08-17-32-06.bag
Start: 1757367141.364608 (2025-09-08 21:32:21.364608)
End: 1757367151.733627 (2025-09-08 21:32:31.733627)
Duration: 10.369018993
Message Count: 12945
Topics:
/os_node/metadata (ouster_ros/msg/Metadata): 1
/os_node/lidar_packets (ouster_ros/msg/LidarPacket): 12944
This bag file does not work because the topic types has different name than what ouster-cli expects.
Is Pointcloud Topic supported? The bag files need raw lidar packets as specified above.