Navigation2调参系列之AMCL定位

发布于:2022-12-09 ⋅ 阅读:(1012) ⋅ 点赞:(0)

做张封面,参数调的好,头发多不了,放个三毛的图再

在Nav2导航中,默认进行状态估计(位置)的组件是AMCL (Adaptive Monte Carlo Localization)自适应蒙特卡洛定位,它通过机器人里程计的位置结合雷达点云和地图估计出机器人当前的位置即机器人在地图坐标系的试试位姿。

该组件有非常之多的参数,小鱼再翻译nav2文档时有详细的进行翻译过,但前几天依然犯了个错误,把一个参数给想当然的改错了,导致发布的定位信息比系统时间还要早。所以今天把之前翻译的参数介绍拿到过来,也和大家分享一下,遇到问题不要慌,可以多翻一翻官方文档。

过几天小鱼会对移动机器人导航和建图做一个小课程,跟大家分享下,关于amcl的原理和参数也会进行更详细的介绍。

nav2中文网地址:http://nav2.fishros.com/

AMCL参数

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”

描述机器人基座frame名称。
beam_skip_distance

类型 默认值
double 0.5

描述设置忽略掉似然场模型中大多数粒子与地图不一致的光束,表示忽略的最大距离单位 (m) 。

beam_skip_error_threshold

类型 默认值
double 0.9

描述不匹配地图后的光束百分比,由于不一致而强制完全更新。

beam_skip_threshold

类型 默认值
double 0.3

描述需要跳过的光束(beams )的百分比。

do_beamskip

类型 默认值
bool False

描述是否在似然场模型(Likelihood field model)中进行波束(beam )跳过。

global_frame_id

类型 默认值
string “map”

描述定位系统发布的坐标系名称。

lambda_short

类型 默认值
double 0.1

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

laser_likihood_max_dist

类型 默认值
double 2.0

描述在地图上进行障碍物充气的最大距离,用于likelihood_field模型。

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 包含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”

描述里程计使用的frame名称。

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 “nav2_amcl::DifferentialMotionModel”

描述插件类的完全限定类型。可以值为nav2_amcl::DifferentialMotionModel和nav2_amcl::OmniMotionModel。

save_pose_rate

类型 默认值
double 0.5

描述将最后估计姿态和协方差存储到参数服务器的最大速率 (Hz),在变量 ~initial_pose_* 和 ~initial_cov_* 中。此保存的姿势将在后续运行中用于初始化过滤器 (-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

描述充值时AMCL要求一个初始姿势,该姿态可以通过一个话题或参数initial_pose* (同时参数 set_initial_pose: true ) 获取。否则,默认AMCL将使用最后已知的姿势进行初始化。

scan_topic

类型 默认值
string scan

描述要订阅的激光雷达话题名称。

map_topic

类型 默认值
string map

描述用于订阅地图的话题名称。

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
    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: "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
    always_reset_initial_pose: false
    scan_topic: scan
    map_topic: map
本文含有隐藏内容,请 开通VIP 后查看