< >
Home » ROS2与Navigation2入门教程 » ROS2与Navigation2入门教程-配置AMCL

ROS2与Navigation2入门教程-配置AMCL

说明:

  • 介绍如何配置AMCL

概述

  • 其源代码位于Github网站上。

  • AMCL实现了用于获取静态地图并使用自适应蒙特卡罗定位程序(即AMCL,Adaptive Monte-Carlo Localizer)在该地图中对机器人进行定位的服务器。

参数

  • alpha1参数:
数据类型:double
默认值:0.2
描述:用于设置在里程计的旋转中从旋转估计的预期过程噪声。
  • alpha2参数:
数据类型:double
默认值:0.2
描述:用于设置在里程计的旋转中从平移估计的预期过程噪声。
  • alpha3参数:
数据类型:double
默认值:0.2
描述:用于设置在里程计的平移中从平移估计的预期过程噪声。
  • alpha4参数:
数据类型:double
默认值:0.2
描述:用于设置在里程计的平移中从旋转估计的预期过程噪声。
  • alpha5参数:
数据类型:double
默认值:0.2
描述:此参数仅适用于全向(Omni)机器人模型,用于设置平移噪声。
  • base_frame_id参数:
数据类型:string
默认值:“base_footprint”
描述:用于设置机器人的底座坐标系。
  • beam_skip_distance参数:
数据类型:double
默认值:0.5
描述:用于设置考虑跳过的最大距离即障碍物激光点栅格坐标与地图障碍物最近距离阈值(单位为m)。会忽略掉似然场模型中大多数粒子与地图不一致的光束。
  • beam_skip_error_threshold参数:
数据类型:double
默认值:0.9
描述:用于设置由于收敛不良而未匹配地图以强制完全更新后的光束百分比。
  • beam_skip_threshold参数:
数据类型:double
默认值:0.3
描述:用于设置要求跳过的光束百分比。
  • do_beamskip参数:
数据类型:bool
默认值:false
描述:用于设置在似然场模型中是否要执行光束跳过。
  • global_frame_id参数:
数据类型:string
默认值:“map”
描述:用于设置定位系统发布的坐标系名称。
  • lambda_short参数:
数据类型:double
默认值:0.1
描述:用于设置模型z_short部分的指数衰减参数。
  • laser_likihood_max_dist参数:
数据类型:double
默认值:2.0
描述:用于设置似然场模型中在地图上进行障碍物膨胀的最大距离。
  • laser_max_range参数:
数据类型:double
默认值:100.0
描述:用于设置要考虑的最大扫描范围,设为-1.0则会导致直接使用激光报告的最大范围。
  • laser_min_range参数:
数据类型:double
默认值:-1.0
描述:用于设置要考虑的最小扫描范围,设为-1.0会导致直接使用激光报告的最小范围。
  • laser_model_type参数:
数据类型:string
默认值:“likelihood_field”
描述:用于设置使用的模型类型,其值为beam、likelihood_field 或likelihood_field_prob之一。likelihood_field_prob与likelihood_field相同,但包含beamskip 功能(如果启用了该功能的话)。
  • set_initial_pose参数:
数据类型:bool
默认值:False
描述:此参数会使AMCL从initial_pose*参数设置机器人初始姿势,而不是等待initial_pose消息。
  • initial_pose参数:
数据类型:Pose2D
默认值:{0.0, 0.0, 0.0, 0.0}
描述:全局坐标系中机器人底座初始位姿的X、Y、Z坐标值和偏航角(单位为米和弧度)。
  • max_beams参数:
数据类型:int
默认值:60
描述:用于设置更新过滤器时每次扫描中要使用多少束均匀间隔的光束。
  • max_particles参数:
数据类型:int
默认值:2000
描述:用于设置允许的最大粒子数。
  • min_particles参数:
数据类型:int
默认值:500
描述:用于设置允许的最小粒子数。
  • odom_frame_id参数:
数据类型:string
默认值:“odom”
描述:用于设置里程计要使用的坐标系。
  • pf_err参数:
数据类型:double
默认值:0.05
描述:用于设置粒子过滤器填充误差。
  • pf_z参数:
数据类型:double
默认值:0.99
描述:用于设置粒子过滤器填充密度。
  • recovery_alpha_fast参数:
数据类型:double
默认值:0.0
描述:用于设置快速平均权重过滤器的指数衰减率,用于决定何时通过添加随机位姿进行恢复。一个好的值可能是0.001。
  • recovery_alpha_slow参数:
数据类型:double
默认值:0.0
描述:用于设置慢速平均权重过滤器的指数衰减率,用于决定何时通过添加随机位姿进行恢复。一个好的值可能是0.001。
  • resample_interval参数:
数据类型:int
默认值:1
描述:用于设置重采样前要求的过滤器更新次数。
  • robot_model_type参数:
数据类型:string
默认值:“differential”
描述:用于设置机器人型号类型名称。可选项是差分(differential)和全向(omnidirectional)。
  • save_pose_rate参数:
数据类型:double
默认值:0.5
描述:用于设置将变量~initial_pose_*中最后估计的位姿和~initial_cov_*中的协方差存储到参数服务器的最大频率 (单位为Hz)。 这个保存的位姿会在后续运行中用于初始化过滤器(设为-1.0则会禁用此功能)。
  • sigma_hit参数:
数据类型:double
默认值:0.2
描述:用于设置在模型z_hit部分中使用的高斯模型的标准差。
  • tf_broadcast参数:
数据类型:bool
默认值:True
描述:用于设置是否广播坐标变换。将此参数设置为False以防止amcl发布全局坐标系和里程计坐标系之间的坐标变换。
  • transform_tolerance参数:
数据类型:double
默认值:1.0
描述:用于设置TF坐标变换容差,即设置发布的坐标变换事后日期的时间,以表明此坐标变换在未来有效。
  • update_min_a参数:
数据类型:double
默认值:0.2
描述:用于设置执行过滤器更新之前要求的最小旋转角度。
  • update_min_d参数:
数据类型:double
默认值:0.25
描述:用于设置执行过滤器更新之前要求的最小平移距离。
  • z_hit参数:
数据类型:double
默认值:0.5
描述:用于设置模型z_hit部分的混合权重,使用的所有z权重之和必须为1。光束(Beam)模型使用所有的4个z_*权重,而似然(likelihood)模型使用z_hit和z_rand权重。
  • z_max参数:
数据类型:double
默认值:0.05
描述:用于设置模型z_max部分的混合权重,使用的所有z权重之和必须为1。光束(Beam)模型使用所有的4个z_*权重,而似然(likelihood)模型使用z_hit和z_rand权重。
  • z_rand参数:
数据类型:double
默认值:0.5
描述:用于设置模型z_rand部分的混合权重,使用的所有z权重之和必须为1。光束(Beam)模型使用所有的4个z_*权重,而似然(likelihood)模型使用z_hit和z_rand权重。
  • z_short参数:
数据类型:double
默认值:0.005
描述:用于设置模型z_short部分的混合权重,使用的所有z权重之和必须为1。光束(Beam)模型使用所有的4个z_*权重,而似然(likelihood)模型使用z_hit和z_rand权重。
  • always_reset_initial_pose参数:
数据类型:bool
默认值:False
描述:用于设置重置时要求通过话题或initial_pose*参数(参数 set_initial_pose设为true的情况下)来为AMCL提供初始姿势。否则,默认情况下AMCL会使用最后一个已知位姿进行初始化。
  • scan_topic参数:
数据类型:string
默认值:scan
描述:用于设置要订阅的激光扫描话题。
  • map_topic参数:
数据类型:string
默认值:map
描述:用于设置要订阅的地图话题。

示例

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
    set_initial_pose: false
    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: "differential"
    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
   always_reset_initial_pose: false
    scan_topic: scan
    map_topic: map

参考:

  • https://navigation.ros.org/configuration/packages/configuring-amcl.html

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: ros2与navigation2入门教程