feat(craic_localization): add package foundation, configs, and launch files

New ROS2 package for wheel odometry + LiDAR localization. Includes: AMCL config (omni model, likelihood_field), gmapping config (5cm grid, 30 particles), YDLiDAR TminiPro config, launch files for lidar bringup, SLAM mapping, AMCL localization, and sensor calibration, plus RViz config with Map/LaserScan/Odometry displays.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
2026-06-19 06:30:30 +08:00
parent 46a18f68bf
commit a546aff1a6
13 changed files with 695 additions and 0 deletions

View File

@@ -0,0 +1,56 @@
# P5 AMCL 定位参数 —— 改自 lzu_robot/maps/amcl_config.yaml
# 麦轮底盘用 omni 运动模型;帧与 chassis_odometry / 激光一致。
# 地图文件由 localization.launch.py 的 map:= 参数注入 map_server 的 yaml_filename。
map_server:
ros__parameters:
use_sim_time: false
yaml_filename: "" # 由 launch 的 map:= 覆盖
topic_name: "map"
frame_id: "map"
amcl:
ros__parameters:
use_sim_time: false
# ===== 帧 / 话题 =====
odom_model_type: "omni" # 麦轮全向;差速底盘改 "diff"
global_frame_id: "map"
base_frame_id: "base_footprint"
odom_frame_id: "odom"
scan_topic: "scan"
# ===== 运动模型噪声(按里程计实际精度调)=====
alpha1: 0.005
alpha2: 0.005
alpha3: 0.005
alpha4: 0.005
alpha5: 0.005
# ===== 粒子滤波 =====
min_particles: 500
max_particles: 1000
pf_err: 0.05
resample_interval: 5
# ===== 激光模型(匹配 TminiPro12m=====
laser_model_type: "likelihood_field"
laser_max_range: 12.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
# ===== 更新策略 =====
update_min_d: 0.05
update_min_a: 0.05
transform_tolerance: 0.5
# ===== 初始位姿(按机器人在场地中的起始点设置;可被 launch 覆盖)=====
set_initial_pose: true
initial_pose:
x: 0.0
y: 0.0
z: 0.0
yaw: 0.0