Data Acquisition Hertz

As you mentioned, Sample consists of Annotation every 2 Hz.

LiDAR also acquires data at 20 Hz.

If I use the code as below, Is the dt for LiDAR data acquisition 0.5 or 0.05?

scene_token = nusc.get('sample', sample_token)['scene_token']
first_sample_token = nusc.get('scene', scene_token)['first_sample_token']

I heard that Sample has one LiDAR sweep every 2Hz, is this right?

I suppose you are going to loop through the “next” pointers of that sample? In that case it is at 2Hz. In any case, the sample and sample_data tables also have a timestamp (https://www.nuscenes.org/public/images/nuscenes-schema.svg), so you could always query that to check if it is approximately 2Hz.