🚎D.15 AMCL

သူကတော့ အားလုံးသိကြပြီးတဲ့အတိုင်း static map ကိုယူပြီး robot ကို localizing လုပ်ပေးတဲ့ ဆာဗာပါ။ Adaptive Monte-Carlo Localizer ကို သုံးပါပတယ်။

Param Names
Description
Type
Default

alpha1

Expected process noise in odometry’s rotation estimate from rotation.

double

0.2

alpha2

Expected process noise in odometry’s rotation estimate from translation.

double

0.2

alpha3

Expected process noise in odometry’s translation estimate from translation.

double

0.2

alpha4

Expected process noise in odometry’s translation estimate from rotation.

double

0.2

alpha5

For Omni models only: translation noise.

double

0.2

base_frame_id

Robot base frame.

string

“base_footprint”

beam_skip_distance

Ignore beams that most particles disagree with in Likelihood field model. Maximum distance to consider skipping for (m).

double

0.5

beam_skip_error_threshold

Percentage of beams after not matching map to force full update due to bad convergance.

double

0.9

beam_skip_threshold

Percentage of beams required to skip.

double

0.3

do_beamskip

Whether to do beam skipping in Likelihood field model.

bool

False

global_frame_id

The name of the coordinate frame published by the localization system.

string

“map”

lambda_short

Exponential decay parameter for z_short part of model.

double

0.1

laser_likelihood_max_dist

Maximum distance to do obstacle inflation on map, for use in likelihood_field model.

double

2

laser_max_range

Maximum scan range to be considered, -1.0 will cause the laser’s reported maximum range to be used.

double

100.0

laser_min_range

Minimum scan range to be considered, -1.0 will cause the laser’s reported minimum range to be used.

double

-1.0

laser_model_type

Which model to use, either beam, likelihood_field, or likelihood_field_prob. Same as likelihood_field but incorporates the beamskip feature, if enabled.

string

“likelihood_field”

set_initial_pose

Causes AMCL to set initial pose from the initial_pose* parameters instead of waiting for the initial_pose message.

bool

FALSE

initial_pose

X, Y, Z, and yaw coordinates of initial pose (meters and radians) of robot base frame in global frame.

Pose2D

{x: 0.0, y: 0.0, z: 0.0, yaw: 0.0}

max_beams

How many evenly-spaced beams in each scan to be used when updating the filter.

int

60

max_particles

Maximum allowed number of particles.

int

2000

min_particles

Minimum allowed number of particles.

int

500

odom_frame_id

Which frame to use for odometry.

string

“odom”

pf_err

Particle Filter population error.

double

0.05

pf_z

Particle filter population density.

double

0.99

recovery_alpha_fast

Exponential decay rate for the fast average weight filter, used in deciding when to recover by adding random poses. A good value might be 0.1.

double

0.0

recovery_alpha_slow

Exponential decay rate for the slow average weight filter, used in deciding when to recover by adding random poses. A good value might be 0.001.

double

0

resample_interval

Number of filter updates required before resampling.

int

1

robot_model_type

The fully-qualified type of the plugin class. Options are “nav2_amcl::DifferentialMotionModel” and “nav2_amcl::OmniMotionModel”. Users can also provide their own custom motion model plugin type. Note for users of galactic and earlier The models are selectable by string key (valid options: “differential”, “omnidirectional”) rather than plugins.

string

“nav2_amcl::DifferentialMotionModel”

save_pose_rate

Maximum rate (Hz) at which to store the last estimated pose and covariance to the parameter server, in the variables ~initial_pose_* and ~initial_cov_*. This saved pose will be used on subsequent runs to initialize the filter (-1.0 to disable).

double

0.5

sigma_hit

Standard deviation for Gaussian model used in z_hit part of the model.

double

0.2

tf_broadcast

Set this to false to prevent amcl from publishing the transform between the global frame and the odometry frame.

bool

True

transform_tolerance

Time with which to post-date the transform that is published, to indicate that this transform is valid into the future.

double

1

update_min_a

Rotational movement required before performing a filter update.

double

0.2

update_min_d

Translational movement required before performing a filter update.

double

0.25

z_hit

Mixture weight for z_hit part of model, sum of all used z weight must be 1. Beam uses all 4, likelihood model uses z_hit and z_rand..

double

0.5

z_max

Mixture weight for z_max part of model, sum of all used z weight must be 1. Beam uses all 4, likelihood model uses z_hit and z_rand.

double

0.05

z_rand

Mixture weight for z_rand part of model, sum of all used z weight must be 1. Beam uses all 4, likelihood model uses z_hit and z_rand..

double

0.5

z_short

Mixture weight for z_short part of model, sum of all used z weight must be 1. Beam uses all 4, likelihood model uses z_hit and z_rand.

double

0.005

always_reset_initial_pose

Requires that AMCL is provided an initial pose either via topic or initial_pose* parameter (with parameter set_initial_pose: true) when reset. Otherwise, by default AMCL will use the last known pose to initialize.

bool

FALSE

scan_topic

Laser scan topic to subscribe to.

string

scan

map_topic

Map topic to subscribe to.

string

map

first_map_only

Allows AMCL to accept maps more than once on the map_topic. This is especially useful when you’re using the LoadMap service in map_server. Prior to Humble, this is first_map_only_.

bool

FALSE

နမူနာ

Param Names
Description
Type
Default

odom_frame_id

Which frame to use for odometry.

string

“odom”

pf_err

Particle Filter population error.

double

0.05

pf_z

Particle filter population density.

double

0.99

recovery_alpha_fast

Exponential decay rate for the fast average weight filter, used in deciding when to recover by adding random poses. A good value might be 0.1.

double

0.0

recovery_alpha_slow

Exponential decay rate for the slow average weight filter, used in deciding when to recover by adding random poses. A good value might be 0.001.

double

0

resample_interval

Number of filter updates required before resampling.

int

1

robot_model_type

The fully-qualified type of the plugin class. Options are “nav2_amcl::DifferentialMotionModel” and “nav2_amcl::OmniMotionModel”. Users can also provide their own custom motion model plugin type. Note for users of galactic and earlier The models are selectable by string key (valid options: “differential”, “omnidirectional”) rather than plugins.

string

“nav2_amcl::DifferentialMotionModel”

save_pose_rate

Maximum rate (Hz) at which to store the last estimated pose and covariance to the parameter server, in the variables ~initial_pose_* and ~initial_cov_*. This saved pose will be used on subsequent runs to initialize the filter (-1.0 to disable).

double

0.5

sigma_hit

Standard deviation for Gaussian model used in z_hit part of the model.

double

0.2

tf_broadcast

Set this to false to prevent amcl from publishing the transform between the global frame and the odometry frame.

bool

True

transform_tolerance

Time with which to post-date the transform that is published, to indicate that this transform is valid into the future.

double

1

update_min_a

Rotational movement required before performing a filter update.

double

0.2

update_min_d

Translational movement required before performing a filter update.

double

0.25

z_hit

Mixture weight for z_hit part of model, sum of all used z weight must be 1. Beam uses all 4, likelihood model uses z_hit and z_rand..

double

0.5

z_max

Mixture weight for z_max part of model, sum of all used z weight must be 1. Beam uses all 4, likelihood model uses z_hit and z_rand.

double

0.05

z_rand

Mixture weight for z_rand part of model, sum of all used z weight must be 1. Beam uses all 4, likelihood model uses z_hit and z_rand..

double

0.5

z_short

Mixture weight for z_short part of model, sum of all used z weight must be 1. Beam uses all 4, likelihood model uses z_hit and z_rand.

double

0.005

always_reset_initial_pose

Requires that AMCL is provided an initial pose either via topic or initial_pose* parameter (with parameter set_initial_pose: true) when reset. Otherwise, by default AMCL will use the last known pose to initialize.

bool

FALSE

scan_topic

Laser scan topic to subscribe to.

string

scan

map_topic

Map topic to subscribe to.

string

map

first_map_only

Allows AMCL to accept maps more than once on the map_topic. This is especially useful when you’re using the LoadMap service in map_server. Prior to Humble, this is first_map_only_.

bool

FALSE

amcl:
  ros__parameters:
    alpha1: 0.2
    alpha2: 0.2
    alpha3: 0.2
    alpha4: 0.2
    alpha5: 0.2
    base_frame_id: "base_footprint"
    beam_skip_distance: 0.5
    beam_skip_error_threshold: 0.9
    beam_skip_threshold: 0.3
    do_beamskip: false
    global_frame_id: "map"
    lambda_short: 0.1
    laser_likelihood_max_dist: 2.0
    laser_max_range: 100.0
    laser_min_range: -1.0
    laser_model_type: "likelihood_field"
    max_beams: 60
    max_particles: 2000
    min_particles: 500
    odom_frame_id: "odom"
    pf_err: 0.05
    pf_z: 0.99
    recovery_alpha_fast: 0.0
    recovery_alpha_slow: 0.0
    resample_interval: 1
    robot_model_type: "nav2_amcl::DifferentialMotionModel"
    save_pose_rate: 0.5
    sigma_hit: 0.2
    tf_broadcast: true
    transform_tolerance: 1.0
    update_min_a: 0.2
    update_min_d: 0.25
    z_hit: 0.5
    z_max: 0.05
    z_rand: 0.5
    z_short: 0.05
    scan_topic: scan
    map_topic: map
    set_initial_pose: false
    always_reset_initial_pose: false
    first_map_only: false
    initial_pose:
      x: 0.0
      y: 0.0
      z: 0.0
      yaw: 0.0

Last updated