How to Tune 3D-Lidar SLAM Parameters


Share on

Do you want to implement 3D-Lidar SLAM for your use case successfully?

Have you heard of the 3D-Lidar SLAM but are unsure how to maximize its performance?

Do you find tweaking the 3D-Lidar SLAM parameters complex and confusing?

If you answered yes to any of these questions, you would find a lot of value in this article. Once you’ve decided to use 3D-Lidar SLAM for your business use case, you will need to tick off these three checkboxes:

  1. Pick an appropriate 3D-Lidar sensor unit
  2. Decide on a proper 3D-Lidar SLAM approach
  3. Choose the relevant parameters for the SLAM system

If you are unsure of the first two checkboxes, we’ve written about the 3D-Lidar SLAM approach and how you can select the appropriate sensor for your use case. We’ll leave the links at the end of this article for you to delve deeper if you haven’t already.

In this article, we’ll share some descriptions, typical values, and high-level guidelines on the 4 main parameters, which commonly are included in many 3D-Lidar SLAM approaches. We’ll also talk about how these parameters may impact the overall performance of the system.

Voxel sizes and why they matter

Smaller voxel size improves robustness and accuracy but has a price to pay

For a SLAM system, we treat the 3D space as a group of small 3D spaces known as voxels. Voxel size indicates how granular or coarse you want to dissect the 3D space. In other words, what dimension should a voxel be?

In theory, a smaller voxel size means improved robustness and accuracy even though it saturates at some point. This is because when the voxel size is small, the SLAM system dissects the 3D space into many smaller 3D spaces and thus has been able to extract more points for tracking and mapping. This ability to capture more points allows for more points to track against when moving, resulting in greater robustness and accuracy.

However, when the system has more points to process for tracking and mapping, the system is inevitably slower, introducing the processing time vs. accuracy trade-off.

So when should you lower the voxel size? We recommend using a smaller voxel size if you are in a small indoor place near because the points concentrate in a small 3D space and it’s not possible to have meaningful number of points if voxel size is large. Also, we recommend to do so for mapping applications when real-time processing isn’t required.

Here’s what typical voxel sizes in meters may look like:

Figure 2: Typical values for voxel size (in meter)

As a thumb of the rule, we would start from 1.0m for outdoor robotics, 0.5m for large indoor robotics, and 0.3m for small indoor (e.g., office space) robotics. As you may have noticed, the parameters are relatively low for mapping to gain more accuracy in sacrifice of processing speed in general.

However, in the case that your SLAM system doesn’t track well with the suggested voxel size, we would recommend trying a smaller voxel size. Conversely, if your SLAM system cannot catch up with real-time feed, try a larger voxel size to reduce the number of points used.

The key is understanding the impact of the voxel size parameter to inform the decision on changing the value as required, which you do now.

Understand the maximum distance for matching the current frame to the map

This parameter indicates how far you want to use an existing keyframe in the Iterative Closest Point [1] process to determine the current pose instead of creating a new one.

In other words, this parameter determines how frequently you want to create a new keyframe. The longer the distance you set, the less frequent the system creates a new keyframe.

Some typical values (in meters) are given in the image below:

Figure 3: Typical values for maximum distance for matching frames to map (in meters)

For indoor applications, we set smaller values since we’d like to have more frequent keyframes than our outdoor use cases to detect movements more precisely.

Pay attention to the voxel size when deciding on the minimum matched points to track

The parameter “minimum number of matched points to track” sets the threshold to decide whether or not the tracking has failed.

When the number of matched points between the keyframes and the current frame is below this threshold value, the SLAM system is said to be ‘lost’.

Intuitively, you can say that the smaller the number of matched points that are required to track, the easier it is for the SLAM system to continue tracking without getting lost. However, setting a too small number introduces false tracking and accumulates larger drift.

It’s essential to consider the voxel size you have already set in order to select the appropriate value for this parameter. If you’ve set a larger voxel size, you’d have fewer points for matching; the minimum matched points needs to be set lower.

The number below is the example for our SLAM system which uses absolute values, but it could be relative numbers or percentages as well.

Figure 4: Typical values for the minimum number of points to track

If the environment has rich structures, set a higher value while reducing it when there are fewer objects around the lidar (e.g., a fairly open field with several trees). Thus, indoor environments typically have higher values than outdoor environments.

Setting the minimum number of match points to relocalize

The parameter “minimum number of points to relocalize” sets a threshold to decide if the initial position on the map is identified.

When the number of matched points between the keyframes and the current frame is above the given threshold value, the SLAM system considers it as being “relocalized.” Here’s an example from our SLAM system. Again we’re using absolute values here, but it could be relative numbers or percentages as well.

Figure 5: Values for “minimum number of points to relocalize”

When you set this parameter to a smaller value, the SLAM finds it easier to relocalize. However, selecting a too-small value introduces false relocalization [2].

A rule of thumb is to set it to 1500 and depending on how the SLAM behaves (eg. more loop closures performed or higher experience of false relocalization) you can reduce or increase it accordingly.

Final words

At Kudan, through our blog, we’ve aimed to distill the information and present it as simply as possible. Here are some of our previous articles on 3D Lidar SLAM:

In this article, we’ve presented the goal of tuning 3D-Lidar SLAM parameters, general guidelines, typical values, and their impact on the system’s performance. The list of parameters to tweak and additional tricks to improve SLAM accuracy and robustness expands wider than what we’ve been able to cover here. If you’re interested to learn more or if you have a question in mind, we invite you to say hi to us for your specific needs around the technology.


[1] Chen, Yang & Medioni, Gerard. (1992) “Object modeling by registration of multiple range images,” Image and Vision Computing, vol. 10, no. 3, pp. 145–155.[PDF].
[2] Vysotska, Olga & Stachniss, Cyrill. (2017). Relocalization under Substantial Appearance Changes using Hashing [PDF]

■For more details, please contact us from here.

Share on

Recent Posts