AMCL

在Github上的源代码

AMCL使用自适应蒙特卡罗定位器(Adaptive Monte-Carlo Localizer)实现了基于静态地图对机器人进行定位的服务器。

参数

alpha1

类型

默认

双精度

0.2

描述

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

alpha2

类型

默认

双精度

0.2

描述

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

alpha3

类型

默认

双精度

0.2

描述

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

alpha4

类型

默认

双精度

0.2

描述

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

alpha5

类型

默认

双精度

0.2

描述

仅适用于Omni模型:翻译噪声。

base_frame_id

类型

默认

string

"base_footprint"

描述

机器人基准坐标系。

beam_skip_distance

类型

默认

双精度

0.5

描述

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

beam_skip_error_threshold

类型

默认

双精度

0.9

描述

未能将地图匹配到强制完全更新由于收敛性不佳的射线的百分比。

beam_skip_threshold

类型

默认

双精度

0.3

描述

需要跳过的射线的百分比。

do_beamskip

类型

默认

布尔值

False

描述

是否在似然场模型中进行射线跳过。

global_frame_id

类型

默认

string

"地图"

描述

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

lambda_short

类型

默认

双精度

0.1

描述

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

laser_likelihood_max_dist

类型

默认

双精度

2.0

描述

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

laser_max_range

类型

默认

双精度

100.0

描述

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

laser_min_range

类型

默认

双精度

-1.0

描述

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

laser_model_type

类型

默认

string

"likelihood_field"

描述

要使用的模型,可以是beam、likelihood_field或likelihood_field_prob。与likelihood_field相同,但如果启用,则包含beamskip功能。

set_initial_pose

类型

默认

布尔值

False

描述

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

initial_pose

类型

默认

Pose2D

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

描述

机器人基座标系在全局坐标系中的初始姿态的X、Y、Z和偏航角坐标(以米和弧度表示)。

max_beams

类型

默认

int

60

描述

更新滤波器时每个扫描中要使用的均匀间隔的激光束数量。

max_particles

类型

默认

int

2000

描述

粒子的最大允许数量。

min_particles

类型

默认

int

500

描述

粒子数的最小允许值。

odom_frame_id

类型

默认

string

"odom"

描述

用于里程计的帧。

pf_err

类型

默认

双精度

0.05

描述

粒子滤波器种群错误。

pf_z

类型

默认

双精度

0.99

描述

粒子滤波器种群密度。

recovery_alpha_fast

类型

默认

双精度

0.0

描述

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

recovery_alpha_slow

类型

默认

双精度

0.0

描述

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

resample_interval

类型

默认

int

1

描述

重新取样前所需的滤波器更新次数。

robot_model_type

类型

默认

string

"nav2_amcl::DifferentialMotionModel"

描述

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

针对 Galactic 版本及更早版本的用户的注意事项。

模型可通过字符串键选择(有效选项为“differential”、“omnidirectional”),而不是插件。

save_pose_rate

类型

默认

双精度

0.5

描述

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

sigma_hit

类型

默认

双精度

0.2

描述

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

tf_broadcast

类型

默认

布尔值

True

描述

将其设置为false可防止amcl发布全局坐标系和里程计坐标系之间的变换。

transform_tolerance

类型

默认

双精度

1.0

描述

发布变换时用于后期日期的时间,以表明该变换在未来是有效的。

update_min_a

类型

默认

双精度

0.2

描述

在执行滤波器更新之前需要的旋转运动。

update_min_d

类型

默认

双精度

0.25

描述

在执行滤波器更新之前需要的平移运动。

z_hit

类型

默认

双精度

0.5

描述

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

z_max

类型

默认

双精度

0.05

描述

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

z_rand

类型

默认

双精度

0.5

描述

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

z_short

类型

默认

双精度

0.005

描述

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

always_reset_initial_pose

类型

默认

布尔值

False

描述

要求在重置时,通过话题或initial_pose*参数(设置参数set_initial_pose为true)向AMCL提供初始姿态。否则,默认情况下,AMCL将使用上次已知的姿态进行初始化。

scan_topic

类型

默认

string

扫描

描述

要订阅的激光扫描话题。

map_topic

类型

默认

string

map

描述

要订阅的地图话题。

仅第一个地图

类型

默认

布尔值

False

描述

允许AMCL在map_topic上接受多个地图。这在使用`map_server`中的`LoadMap`服务时特别有用。在Humble之前,该参数为`first_map_only_`。

示例

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