AMCL

Source code on Github.

AMCL 实现了获取静态地图并使用自适应蒙特卡罗定位器在其中定位机器人的服务器。

Parameters

alpha1:

Type

Default

double

0.2

Description

里程计的旋转估计中来自旋转的预期过程噪声。

alpha2:

Type

Default

double

0.2

Description

里程计的旋转估计中来自平移的预期过程噪声。

alpha3:

Type

Default

double

0.2

Description

里程计的翻译估计中来自翻译的预期过程噪声。

alpha4:

Type

Default

double

0.2

Description

里程计的平移估计中因旋转而产生的预期过程噪声。

alpha5:

Type

Default

double

0.2

Description

仅适用于 Omni 型号:翻译噪音。

base_frame_id:

Type

Default

string

“base_footprint”

Description

机器人底座框架。

beam_skip_distance:

Type

Default

double

0.5

Description

忽略似然场模型中大多数粒子不同意的光束。考虑跳过的最大距离(米)。

beam_skip_error_threshold:

Type

Default

double

0.9

Description

由于收敛性不好,未匹配地图后强制进行完全更新的光束百分比。

beam_skip_threshold:

Type

Default

double

0.3

Description

需要跳过的光束的百分比。

do_beamskip:

Type

Default

bool

False

Description

是否在似然场模型中进行波束跳跃。

global_frame_id:

Type

Default

string

“map”

Description

定位系统发布的坐标框架的名称。

lambda_short:

Type

Default

double

0.1

Description

模型 z_short 部分的指数衰减参数。

laser_likelihood_max_dist:

Type

Default

double

2.0

Description

在地图上进行障碍物膨胀的最大距离,用于似然场模型。

laser_max_range:

Type

Default

double

100.0

Description

要考虑的最大扫描范围,-1.0 将导致使用激光报告的最大范围。

laser_min_range:

Type

Default

double

-1.0

Description

要考虑的最小扫描范围,-1.0 将导致使用激光报告的最小范围。

laser_model_type:

Type

Default

string

“likelihood_field”

Description

使用哪种模型,beam、likelihood_field 或 unlikely_field_prob。与 unlikely_field 相同,但如果启用,则包含 beamskip 功能。

set_initial_pose:

Type

Default

bool

False

Description

导致 AMCL 从 initial_pose* 参数设置初始姿势,而不是等待 initial_pose 消息。

initial_pose:

Type

Default

Pose2D

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

Description

机器人基础框架在全局框架中的初始姿势(米和弧度)的 X、Y、Z 和偏航坐标。

max_beams:

Type

Default

int

60

Description

更新过滤器时每次扫描要使用多少个均匀分布的光束。

max_particles:

Type

Default

int

2000

Description

允许的最大粒子数。

min_particles:

Type

Default

int

500

Description

允许的最小粒子数。

odom_frame_id:

Type

Default

string

“odom”

Description

使用哪个框架进行里程计。

pf_err:

Type

Default

double

0.05

Description

粒子过滤器群体误差。

pf_z:

Type

Default

double

0.99

Description

粒子过滤器群体密度。2.33 是 99% 百分位数。

recovery_alpha_fast:

Type

Default

double

0.0

Description

快速平均权重过滤器的指数衰减率,用于决定何时通过添加随机姿势进行恢复。一个好的值可能是 0.1。

recovery_alpha_slow:

Type

Default

double

0.0

Description

慢速平均权重过滤器的指数衰减率,用于决定何时通过添加随机姿势进行恢复。一个好的值可能是 0.001。

resample_interval:

Type

Default

int

1

Description

重采样之前所需的过滤器更新次数。

robot_model_type:

Type

Default

string

“nav2_amcl::DifferentialMotionModel”

Description

插件类的完全限定类型。选项为“nav2_amcl::DifferentialMotionModel”和“nav2_amcl::OmniMotionModel”。用户还可以提供自己的自定义运动模型插件类型。

银河系及更早版本用户须知 可通过字符串键(有效选项:“差分”、“全向”)而非插件来选择模型。

save_pose_rate:

Type

Default

double

0.5

Description

将最后估计的姿势和协方差存储到参数服务器的最大速率(Hz),在变量 ~initial_pose_* 和 ~initial_cov_* 中。此保存的姿势将在后续运行中用于初始化过滤器(-1.0 为禁用)。

sigma_hit:

Type

Default

double

0.2

Description

模型的 z_hit 部分中使用的高斯模型的标准差。

tf_broadcast:

Type

Default

bool

True

Description

将其设置为 false 以防止 amcl 发布全局框架和里程计框架之间的变换。

transform_tolerance:

Type

Default

double

1.0

Description

发布转换的截止日期,以表明此转换在未来仍然有效。

update_min_a:

Type

Default

double

0.2

Description

执行过滤器更新之前需要进行旋转运动。

update_min_d:

Type

Default

double

0.25

Description

执行过滤器更新之前需要进行平移运动。

z_hit:

Type

Default

double

0.5

Description

模型的 z_hit 部分的混合权重,所有使用的 z 权重之和必须为 1。Beam 使用全部 4 个,似然模型使用 z_hit 和 z_rand。

z_max:

Type

Default

double

0.05

Description

模型中 z_max 部分的混合权重,所有使用的 z 权重之和必须为 1。Beam 使用全部 4 个,似然模型使用 z_hit 和 z_rand。

z_rand:

Type

Default

double

0.5

Description

模型的 z_rand 部分的混合权重,所有使用的 z 权重之和必须为 1。Beam 使用全部 4 个,似然模型使用 z_hit 和 z_rand。

z_short:

Type

Default

double

0.005

Description

模型中 z_short 部分的混合权重,所有使用的 z 权重之和必须为 1。Beam 使用全部 4 个,似然模型使用 z_hit 和 z_rand。

always_reset_initial_pose:

Type

Default

bool

False

Description

要求在重置时通过主题或 initial_pose* 参数(使用参数 set_initial_pose: true)为 AMCL 提供初始姿势。否则,默认情况下 AMCL 将使用最后已知的姿势进行初始化。

scan_topic:

Type

Default

string

scan

Description

要订阅的激光扫描主题。

map_topic:

Type

Default

string

map

Description

要订阅的地图主题。

first_map_only:

Type

Default

bool

False

Description

允许 AMCL 在 map_topic 上多次接受地图。当您在 map_server 中使用 LoadMap 服务时,这尤其有用。在 Humble 之前,这是 first_map_only_

bond_heartbeat_period:

Type

Default

double

0.1

Description

生命周期节点债券机制发布周期(在 /bond 主题上)。如果小于或等于 0.0,则禁用。

Example

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