face_track_servo_node:
  ros__parameters:
    # PID gains — pan axis
    kp_pan: 1.5              # proportional gain (°/s per ° error)
    ki_pan: 0.1              # integral gain
    kd_pan: 0.05             # derivative gain (damping)

    # PID gains — tilt axis
    kp_tilt: 1.2
    ki_tilt: 0.1
    kd_tilt: 0.04

    # Camera FOV
    fov_h_deg: 60.0          # horizontal field of view (degrees)
    fov_v_deg: 45.0          # vertical field of view (degrees)

    # Servo limits
    pan_limit_deg: 90.0      # mechanical pan range ± (degrees)
    tilt_limit_deg: 30.0     # mechanical tilt range ± (degrees)
    pan_vel_limit: 45.0      # max pan rate (°/s)
    tilt_vel_limit: 30.0     # max tilt rate (°/s)
    windup_limit: 15.0       # integral anti-windup clamp (°·s)

    # Tracking behaviour
    dead_zone: 0.02          # normalised dead zone (fraction of frame width/height)
    control_rate: 20.0       # control loop frequency (Hz)
    lost_timeout_s: 1.5      # seconds before face considered lost
    return_rate_deg_s: 10.0  # return-to-centre speed when no face (°/s)

    faces_topic: "/social/faces/detected"
