做张封面,参数调的好,头发多不了,放个三毛的图再
在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