The Sweep device is a two-dimensional scanning LiDAR sensor, comprised of a single one-dimensional range finder which spins 360 degrees. This means that as the device rotates counterclockwise, it effectively records data in a single two-dimensional plane. The name “Sweep” comes from this sweeping motion (rotating while accumulating/gathering data).
The device rotates continuously. The idea of a single 360-degree scan is simply a delineation of all of the data gathered during a single 360-degree rotation.
The Sweep is NOT a three-dimensional scanner, nor does it have a vertical field of view other than the expansion of the single beam. Using the Sweep for 3D scanning requires some form of mechanical manipulation to transform the 2D scan plane produced by the Sweep.
See the Sweep Manual for technical details.
2D Scanner Lidar Sensor Operation Theory
Internally, the Sweep uses a one-dimensional rangefinder, referred to as the “sensor module”. Understanding how the sensor module operates will help you understand the data produced by the Sweep. Here is a brief excerpt the Sweep Manual:
The light packets that Sweep uses can vary in length, which can affect accuracy of range measurements, as well as the maximum range and update rate. Under normal operation, Sweep limits the maximum time per measurement to a value determined by the sample rate set using the LR command (see LR packet structure description).
If not enough light is returned from the environment, the measurement fails, and a 1 is returned as the range value. On the other hand, if a lot of light is returned from the environment, the correlation algorithm can reach its maximum accuracy early, and can return a range value more quickly. This is what makes the update rate of Sweep variable.
The value of setting a slower sample rate using the LR command, is that more light will be gathered from a target, and the range measurements will be more accurate. The exact accuracy is determined by many factors, including the target surface characteristics and ambient noise, so we cannot give an exact number for relative accuracy between the different LR settings.Cameron Moll
To produce a single ranging/measurement sample, the sensor module performs many quick measurements (sub-samples), and aggregates them together to produce a final range measurement (sample). You can think of the final sample as a sort of average of many sub-samples. The final sample is provided with some confidence value based on the quantity & quality of sub-samples.
If the set of sub-samples is not of quantity or quality to produce a valid final sample, the sensor module will continue sub-sampling until it collects some maximum threshold number of sub-samples. If the sensor module is still not confident in the set of sub-samples, the Sweep will return a reading with a range of 1cm indicating a failed reading.
This kind of adaptive sampling yields more performant data, but at the cost of consistent structure. There are noteworthy differences between the data produced by Sweep and the data produced by other 2D rangefinders.
Readings do NOT Occur at Fixed Angular Intervals
Sweep sensor readings are variable. That is to say, azimuth values (the angle at which the reading is recorded) do not come in fixed intervals. Instead, the azimuth values are dictated by when the sensor module produces final range samples. For this reason, every sensor reading includes an azimuth value.
As a stationary Sweep device comes about the same angular range on subsequent rotations, the readings will occur at unique angles. Eventually, the Sweep will produce a denser angular resolution over time as it continues to spin. This is different than other devices which produce measurements at fixed angle intervals.
Variable Sample Rate
The nature of adaptive sampling means that the Sweep does not have a fixed sample rate. The Sweep will produce variable sample counts each time it rotates 360 degrees. That is to say, if you group sensor readings together into complete 360-degree scans, then the number of samples in two subsequent scans might be slightly different.
The effective sample rate can change (increase or decrease) depending on the environment. Say for example, that the sensor was mounted at a 90-degree angle, such that half of the angular range pointed directly at the sky. When the beam is pointed at the sky, the range is infinite and the sensor module’s sub-samples never succeed. As the beam rotates across the sky (shown as a red dotted arrow), the sensor module will continue sub-sampling, waiting for confident measurements.
Whenever it has attempted the maximum (threshold) number of sub-samples, it will return a final reading with a range of 1cm indicating an invalid reading. These invalid readings are not drawn in the illustration below. After the device outputs an invalid reading, the sensor module will immediately proceed with sub-sampling for the next reading. The angular region where the beam is directed into the sky would result in an angular region of many readings with 1cm range. This angular region is marked by the red dotted arrow in the illustration below.
Therefore, the sample rate effectively halves. This is an extreme example of course, but it is meant to illustrate the variable nature of the sample rate.
A similar case could occur if the material properties in the environment prevent light from returning to the sensor module. This occurs with very dark (black) objects, translucent objects such as windows, or highly reflective objects such as mirrors. These kinds of material properties can manifest as gaps in the data, where the sensor module was not able to acquire valid readings as the beam passed over the object. In these regions the Sweep will produce readings with a range of 1cm, to indicate an invalid reading.
Sample Rate Settings
The previous section described how the sample rate is variable, however, the Sweep does provide three sample rate settings (500Hz, 750Hz, 1000Hz). These settings can be thought of as a target range for the expected number of samples in a roughly “normal” environment.
The sample rate settings (500Hz, 750Hz, 1000Hz) are defined by changing the threshold or the maximum number of sub-samples the sensor module is allowed to use to produce a final reading. Faster sample rate settings limit the sensor module to fewer sub-samples per reading. In the illustrations below, the 500Hz sample rate setting allows the sensor module to gather twice as many sub-samples (dotted red lines) before producing a single reading (green dot), as compared to the 1000Hz setting.
Therefore, a slower sample rate setting will produce more accurate measurements, because more sub-samples can be used to obtain each reading. Conversely, the accuracy of the readings will drop for higher sample rate settings. For certain applications, such as a robot in an indoor environment, a faster sample rate might be more important than range or accuracy. Be aware of this trade-off when designing your applications.
Expected Data Density
The previous sections outlined how the sensor module uses a form of adaptive sampling which can lead to variable sample rates. Be aware that the density of data is greatly affected by the makeup of the environment (geometry, distance, material). However, the following tables can still be useful as a ballpark estimate for data collection.
The approximate number of samples (readings) per revolution based on the motor speed and sample rate setting:
Because the Sweep is continuously rotating, the nature of the sensor module’s adaptive sampling can yield a tearing or ghosting effect at the edge of an object. More technically this can occur anywhere where there is discontinuous or disjoint environmental geometry. This is an edge case to be aware of, but it is easy to spot.
Consider the following scenario. Two pieces of geometry sit at different depths, but both provide very confident and strong range responses. While the beam is over the first object, all of the sensor module’s sub-samples (shown as red dotted lines) are measuring parts of the same continuous geometry. The sub-samples yield very similar distance measurements, and therefore produce a confident and accurate final sample (the green dot).
However, on the next sample, the beam passes over the disjoint edge of the first piece of geometry. The sensor module’s sub-samples (shown as red dotted lines) are spread out across the two pieces of geometry. Despite the different distance measurements, all sub-samples yield strong responses, so the final sample (green dot) is inaccurately averaged between the two. This manifests as a reading where no actual geometry exists, hence the name ghosting or tearing.
Note: Higher sample rate settings can reduce this effect, as the angular window for the calculation of each reading is narrowed.