fix(craic_localization): tune AMCL params and propagate lidar args across launch files

- Tune AMCL: widen sigma_hit (0.05→0.2), z_hit (0.5→0.9), z_rand, likelihood_max_dist,
  laser_max_range (5.0→8.0) for better convergence on 4x4m field
- Propagate lidar_x/y/z/yaw/intensity/sample_rate/baudrate through bringup,
  localization, and mapping launch files so overrides reach the driver
- Fix default lidar_z (0.0→0.02) in lidar.launch.py
- Change rviz Fixed Frame odom→map to stop map jumping on AMCL corrections
- Fix broken teach_points command in docs/localization.md; add troubleshooting
  entries for AMCL convergence and rf2o drift
- Add ros2/AGENTS.md with ROS workspace build/style guidelines
This commit is contained in:
2026-06-20 14:13:54 +08:00
parent 13f26e2453
commit 74396f48a0
8 changed files with 137 additions and 14 deletions

View File

@@ -29,12 +29,41 @@ def generate_launch_description():
default_rviz = os.path.join(pkg_share, 'rviz', 'localization.rviz')
use_rviz = LaunchConfiguration('use_rviz')
lidar_x = LaunchConfiguration('lidar_x')
lidar_y = LaunchConfiguration('lidar_y')
lidar_z = LaunchConfiguration('lidar_z')
lidar_yaw = LaunchConfiguration('lidar_yaw')
intensity = LaunchConfiguration('intensity')
sample_rate = LaunchConfiguration('sample_rate')
baudrate = LaunchConfiguration('baudrate')
return LaunchDescription([
DeclareLaunchArgument('use_rviz', default_value='true'),
DeclareLaunchArgument('lidar_x', default_value='0.0',
description='base_footprint -> laser_frame 平移 X (m)'),
DeclareLaunchArgument('lidar_y', default_value='0.0',
description='base_footprint -> laser_frame 平移 Y (m)'),
DeclareLaunchArgument('lidar_z', default_value='0.02',
description='base_footprint -> laser_frame 平移 Z (m)'),
DeclareLaunchArgument('lidar_yaw', default_value='-3.14159',
description='base_footprint -> laser_frame 偏航角 (rad)'),
DeclareLaunchArgument('intensity', default_value='true'),
DeclareLaunchArgument('sample_rate', default_value='4'),
DeclareLaunchArgument('baudrate', default_value='230400'),
# 激光 + 静态外参(base_footprint->laser_frame, base_footprint->base_link)
IncludeLaunchDescription(PythonLaunchDescriptionSource(lidar_launch)),
IncludeLaunchDescription(
PythonLaunchDescriptionSource(lidar_launch),
launch_arguments={
'lidar_x': lidar_x,
'lidar_y': lidar_y,
'lidar_z': lidar_z,
'lidar_yaw': lidar_yaw,
'intensity': intensity,
'sample_rate': sample_rate,
'baudrate': baudrate,
}.items(),
),
# 激光里程计:从 /scan 连续输出 odom -> base_footprint建图运动来源
Node(