I was looking through the example code and had a question regarding how the 360° scan is implemented in the example code for the Ping360 Sensor. From the specifications, the beam width of the sensor is 2°. Thus, we should only need to collect data at 180 (comes from 360°/2°) points. However, in the example code, it seems that one rotation is defined as collecting data at 400 points (every gradian). Is there a reason we need the overlap when collecting data? Are there any major downsides to moving to collect data at a coarser step size?
The internal stepper motor has a 0.9 degree (1 gradian) step size, so that’s the smallest step unit available. Having some overlap can improve the data robustness, especially if you’re trying to do some kind of shape profiling, but there’s no requirement to use the finest step size if that’s not desirable for your application.
You can do a full revolution in 2 gradian steps with the following:
for angle in range(0, 400, 2):
p.transmitAngle(angle)
It’s also fine to do larger steps, but when there are gaps between beams then there’s risk that small/far away objects could be missed. It’s perhaps worth noting that having some overlap in the scan makes it less likely to miss objects because of small rotations of the vehicle while scanning, but that does of course come with slower scanning times.