# 底盘标定现场数据配置模板。
# 该文件只定义底盘标定数据输入和落盘边界，真实底盘控制由车端 agent 执行。

csv_contract_version: 1
chassis_type: ackermann
action_profile_file: src/site_deployment/workshop_chassis_calibration_real/config/chassis_action_profile.yaml
session_id: replace_with_session_id
site_id: replace_with_site_or_line_id
vehicle_id: replace_with_real_vehicle_id
session_dir: /data/agv_calib/replace_with_site_or_line_id/session_xxx
dataset_index_path: /data/agv_calib/replace_with_site_or_line_id/session_xxx/dataset_index.yaml

# 这些文件会写入 dataset_index.yaml 的 data_inputs.chassis。
files:
  chassis_motion_data_file: chassis/chassis_motion.csv
  actuator_command_file: chassis/actuator_commands.csv
  truth_trajectory_file: external/truth_trajectory.csv
  diagnostics_file: chassis/chassis_diagnostics.json

# 现场采集话题配置。
capture:
  chassis_telemetry_topic: /chassis/telemetry
  external_pose_topic: /workshop/external_localization/vehicle/pose
  ackermann_command_topic: /vehicle/replace_with_real_vehicle_id/internal/ackermann_cmd
  command_source: auto

# 当前底盘标定保留阿克曼、差速轮、单舵轮、多舵轮四类入口。
# 已确认差速轮底盘标定目标：左轮半径、右轮半径、驱动轮轮距。
calibration_targets:
  ackermann:
    - ackermann.front_left_steer_zero_offset_deg
    - ackermann.front_right_steer_zero_offset_deg
    - ackermann.rear_left_wheel_radius_m
    - ackermann.rear_right_wheel_radius_m
    - ackermann.steering_ratio
  differential:
    - differential.left_wheel_radius_m
    - differential.right_wheel_radius_m
    - differential.axle_track_width_m
  single_steer_wheel:
    - single_steer.drive_wheel_radius_m
    - single_steer.steer_zero_offset_deg
    - single_steer.steering_ratio
    - single_steer.drive_encoder_scale
  multi_steer_wheel:
    - multi_steer.modules[].wheel_radius_m
    - multi_steer.modules[].steer_zero_offset_deg
    - multi_steer.modules[].module_pos_x_m
    - multi_steer.modules[].module_pos_y_m

# 离线自检和现场采集收尾时使用的最小检查阈值。
validation:
  min_chassis_motion_samples: 2
  min_actuator_command_samples: 1
  min_truth_trajectory_samples: 2
  min_motion_distance_m: 0.01
  max_time_gap_ms: 200.0

# 没有传入真实 CSV 时，replay_chassis_smoke.py 会生成一段最小合成数据，只用于链路自检。
synthetic:
  enabled: true
  sample_period_ms: 100
  target_speed_ms: 0.1
  target_distance_m: 0.2
