diff --git a/ros2/src/craic_localization/config/amcl.yaml b/ros2/src/craic_localization/config/amcl.yaml index ec868da..caae981 100644 --- a/ros2/src/craic_localization/config/amcl.yaml +++ b/ros2/src/craic_localization/config/amcl.yaml @@ -19,12 +19,12 @@ amcl: odom_frame_id: "odom" scan_topic: "scan" - # ===== 运动模型噪声(按里程计实际精度调)===== - alpha1: 0.005 - alpha2: 0.005 - alpha3: 0.005 - alpha4: 0.005 - alpha5: 0.005 + # ===== 运动模型噪声 ===== + alpha1: 0.05 + alpha2: 0.05 + alpha3: 0.1 + alpha4: 0.1 + alpha5: 0.05 # ===== 粒子滤波 ===== min_particles: 500 @@ -32,21 +32,25 @@ amcl: pf_err: 0.05 resample_interval: 5 - # ===== 激光模型(匹配 TminiPro:12m)===== + # ===== 激光模型(匹配 5×5m 边界)===== laser_model_type: "likelihood_field" - laser_max_range: 12.0 + laser_max_range: 5.0 laser_min_range: -1.0 max_beams: 500 sigma_hit: 0.05 z_hit: 0.5 z_rand: 0.03 - laser_likelihood_max_dist: 2.0 + laser_likelihood_max_dist: 1.5 # ===== 更新策略 ===== - update_min_d: 0.05 - update_min_a: 0.05 + update_min_d: 0.02 + update_min_a: 0.03 transform_tolerance: 0.5 + # ===== 恢复:小场地关闭随机粒子注入 ===== + recovery_alpha_slow: 0.0 + recovery_alpha_fast: 0.0 + # ===== 初始位姿(按机器人在场地中的起始点设置;可被 launch 覆盖)===== set_initial_pose: true initial_pose: diff --git a/ros2/src/craic_localization/config/gmapping.yaml b/ros2/src/craic_localization/config/gmapping.yaml index cfff292..6b307e6 100644 --- a/ros2/src/craic_localization/config/gmapping.yaml +++ b/ros2/src/craic_localization/config/gmapping.yaml @@ -1,8 +1,6 @@ -# gmapping(slam_gmapping) 建图参数 —— 改自 lzu_robot/src/slam_gmapping/params/slam_gmapping.yaml -# 帧:base_frame=base_footprint(与 chassis_odometry 一致),odom_frame=odom,map_frame=map -# 适配 385×385cm 小场地:maxUrange 4m 足够覆盖;delta 0.05 = 5cm 栅格 -# 用 /** 通配键确保参数无论节点全限定名如何都能生效(lzu 用 /slam_gmapping 键, -# 其 TF 树恰好有 base_link 才掩盖了键不匹配、参数全默认的问题;我们没有 base_link 会直接报错) +# gmapping(slam_gmapping) 建图参数 —— 为 4×4m 场地优化 +# 帧:base_frame=base_footprint, odom_frame=odom, map_frame=map +# 地图缩减到 5×5m(场地 4×4m + 各 0.5m 余量),栅格分辨率 2cm /**: ros__parameters: base_frame: base_footprint @@ -10,11 +8,11 @@ map_frame: map map_update_interval: 5.0 maxUrange: 4.0 - maxRange: 6.0 - delta: 0.05 - particles: 30 - linearUpdate: 0.3 - angularUpdate: 0.5 + maxRange: 5.0 + delta: 0.02 + particles: 50 + linearUpdate: 0.1 + angularUpdate: 0.2 temporalUpdate: 1.0 resampleThreshold: 0.5 minimum_score: 0.0 @@ -36,11 +34,11 @@ llsamplestep: 0.01 lasamplerange: 0.005 lasamplestep: 0.005 - # 地图范围(米) - xmin: -10.0 - xmax: 10.0 - ymin: -10.0 - ymax: 10.0 + # 地图范围(米)—— 4×4m 场地 + 0.5m 余量 + xmin: -0.5 + xmax: 4.5 + ymin: -0.5 + ymax: 4.5 occ_thresh: 0.25 transform_publish_period: 0.05 use_sim_time: false