Radar point cloud

Hi,

in the definition of “RadarPointCloud.from_file_multisweep” shows:
def from_file_multisweep(…):
for _ in range(nsweeps):
current_pc = cls.from_file(osp.join(nusc.dataroot, current_sd_rec[‘filename’]))

all_pc.points = np.hstack((all_pc.points, current_pc.points))
return all_pc, all_times
I am not so clear with this:

  1. Is a generated point cloud(here is all_pc) just stacks of 26 pcd file?
  2. Is each pcd file a sweep which is 13Hz? If it is, then the generated point cloud has a frequency of 1/2Hz.
    Many thanks in advance!

Hi

  1. Yes. Note that 26 is really a lot, 2s. In practice that may introduce way too much delay.
  2. Yes, every file is a “sweep” from a single radar at 13 Hz. I am not sure how the 1/2Hz number could be meaningful. It’s not the same as collecting data at that frequency.

Thanks for your quick reply again!

  1. I found when “render_sample_data()/render_sample()” call “RadarPointCloud.from_file_multisweep()”, the parameter “nsweeps” is assigned to 1, so it won’t be 26. In this way, the generated point cloud by this function is totally the same as the original sweep?
  2. If this point cloud generating process is only stacking of different sweeps, then what is the use of doing this? I understand it’s better to show more information to user in one picture, but it is not useful for object detection. Maybe my understanding is wrong, please correct me. And in practice, how should we assign the value of nsweeps to generate point cloud, is there any suggestion?

Many Thanks!

  1. Yes, if you set nsweeps to 1 then it is the same as from_file.
  2. Point clouds are recorded in the sensor frame. It is not just stacking, as we do the following:
    As every sweep is in a different coordinate frame, we need to map the coordinates to a single reference frame. As every sweep has a different timestamp, we need to account for that in the transformations and timestamps. In the nuScenes paper, table 3, you can see that from 1 sweep to 10 sweeps you get a 13% increase in performance. So you have a much denser point cloud and also temporal information that is essential to estimate velocities.
    2b. How should we assign the value of nsweeps to generate point cloud. For the detection challenge the allowed maximum is 10 sweeps = 0.5s. Radar based object detection is extremely difficult, which is why we experimented with 26 sweeps = 2s. Keep in mind that in a real time system you cannot afford to wait 2s.

Thanks for your reply, that’s very clear and helpful.