ROS - Detailed explanation of amcl positioning algorithm parameters

  • odom_model_type (string, default: “diff”): odom model definition, which can be “diff”, “omni”, “diff-corrected”, “omni-corrected”, the latter two are corrections to the old version of the odometer model. The corresponding odometer parameters need to be reduced to a certain extent.

  • odom_alpha5 (double, default: 0.2): Translation-related noise parameter (only used when the model is "omni", that is, you need to set this parameter when your robot moves in all directions, otherwise set it to 0.0)

  • gui_publish_rate  (double, default: -1.0 Hz): The maximum frequency at which scans and paths are published to the visualization software. Setting the parameter to -1.0 means disabling this function. The default is -1.0.

  • laser_max_beams  (int, default: 30): When updating the filter, how many equally spaced beams are used in each scan (to reduce the amount of calculation, adjacent beams in ranging scans are often not independent to reduce the impact of noise, too Small size will also result in less information and inaccurate positioning).

  • laser_max_range  (double, default: -1.0): Maximum scanning range. When the parameter is set to -1.0, the maximum scanning range reported by the laser will be used.

  • min_particles  (int, default: 100): The minimum number of particles in the filter. The larger the value, the better the positioning effect, but it will increase the computing resource consumption of the main control platform.

  • max_particles  (int, default: 5000): The maximum number of particles in the filter, which is an upper limit because too many particles will cause excessive consumption of system resources.

  • kld_err  (double, default: 0.01): Maximum error between the true distribution and the estimated distribution.

  • kld_z  (double, default: 0.99): Upper standard quantile (1-p), where p is the probability that the error on the estimated distribution is less than kld_err, default 0.99.

  • odom_alpha1  (double, default: 0.2): Specifies the expected noise of the odometry rotation estimated by the rotation component of the robot's moving part, default 0.2 (rotation has rotation noise).

  • odom_alpha2  (double, default: 0.2): The expected noise of the odometry rotation estimated by the translation component of the robot's moving part, default 0.2 (translation noise may occur in rotation).

  • odom_alpha3  (double, default: 0.2): The expected noise of the odometry translation estimated by the translation component of the robot's moving part, such as (double, default: 0.2): The expected noise of the odometry translation estimated by the translation component of the robot's moving part, if you If you think your robot's odometer information is relatively accurate, you can set this value to a small value.

  • odom_alpha4  (double, default: 0.2): The expected noise of the odometry translation estimated by the rotation component of the robot's moving part. The larger the four alpha values ​​you set, the greater the odometry error.

  • laser_z_hit  (double, default: 0.95): Mixing weight of the z_hit part of the model, default 0.95 (mixing weight 1. Correct range with local measurement noise – the measured distance approximates the true distance as the mean, followed by laser_sigma_hit as the Gaussian standard deviation distribution weight).

  • laser_z_short  (double, default: 0.1): Mixing weight of the z_short part of the model, default 0.1 (mixing weight 2. Unexpected object weight (similar to the unary index symmetric about the y-axis 0 ~ the measured distance (non-maximum distance) part: – ηλe^(-λz), the rest is 0, where η is the normalization parameter, λ is laser_lambda_short, z is an independent measurement value at time t (a ranging value, a measurement by a ranging sensor usually produces a series of measurements value)), dynamic environments such as people or moving objects).

  • laser_z_max  (double, default: 0.05): Mixing weight of the z_max part of the model, default 0.05 (mixing weight 3. Measurement failure weight (1 at maximum distance, 0 for the rest), such as sonar specular reflection, laser black light-absorbing object or Measurements under strong light, most typically beyond the maximum distance).

  • laser_z_rand  (double, default: 0.05): Mixing weight of the z_rand part of the model, default 0.05 (mixing weight 4. Random measurement weight – uniform distribution (1 evenly distributed to 0 ~ maximum measurement range), completely uninterpretable measurements, such as Multiple reflections from sonar, sensor crosstalk).

  • laser_sigma_hit  (double, default: 0.2 meters): The standard deviation of the Gaussian model used in the z_hit part of the model, default 0.2m.

  • laser_lambda_short  (double, default: 0.1): Exponential attenuation parameter of the z_short part of the model, default 0.1 (according to ηλe^(-λz), the larger λ, the faster the probability of unexpected objects decays as the distance increases).

  • laser_model_type  (string, default: “likelihood_field”): Laser model type definition, which can be beam, likelihood_field, likelihood_field_prob (same as likelihood_field but combined with the beamskip feature - comments from the official website), the default is "likehood_field".

  • laser_likelihood_max_dist  (double, default: 2.0 meters): The maximum distance for obstacle expansion on the map, used as the likelihood_field model (likelihood_field_range_finder_model only describes the distance to the nearest obstacle, (the current understanding should be that the obstacle expansion process is within this distance, But the algorithm does not mention expansion, and it is not clear what it means). The algorithm here uses the laser_sigma_hit above. The algorithm for calculating the measurement probability in the likelihood domain is to combine each measurement at time t (rejecting the measurement value that reaches the maximum measurement range) Multiply the probabilities of Distance probability for Gaussian distribution.

  • update_min_d  (double, default: 0.2 meters): The distance of the translational movement before performing the filter update, the default is 0.2m (it has an impact on the odometry model, in which the path is discarded when calculating the likelihood of the final pose based on the movement and the map) Of all relevant information, only the final pose is known. In order to avoid unreasonable non-zero likelihood after passing through obstacles, this value is recommended to be no larger than the robot radius, otherwise completely different results may be produced due to different update frequencies).

  • update_min_a  (double, default: π/6.0 radians): Angle of rotation before performing filter update.

  • resample_interval  (int, default: 2): The number of filter updates required before resampling.

  • transform_tolerance (double, default: 1.0): The maximum delay that can be tolerated in the transformation between coordinate systems;

  • recovery_alpha_slow  (double, default: 0.0 (disabled)): The exponential decay frequency of slow average weight filtering, used to determine when to recover by adding random poses. The default is 0 (disabled), and 0.001 may be a good value.

  • recovery_alpha_fast  (double, default: 0.0 (disabled)): The exponential decay frequency of fast average weight filtering, used to determine when to recover by adding random poses. The default is 0 (disabled). Maybe 0.1 is a good value.

Guess you like

Origin blog.csdn.net/u011391361/article/details/132312972