emotion_node:
  ros__parameters:
    # Path to the TRT FP16 emotion engine (built from emotion_cnn.onnx).
    # Build with:
    #   trtexec --onnx=emotion_cnn.onnx --fp16 --saveEngine=emotion_fp16.trt
    # Leave empty to use landmark heuristic only (no GPU required).
    engine_path: "/models/emotion_fp16.trt"

    # Minimum smoothed confidence to publish an expression.
    # Lower = more detections but more noise; 0.40 is a good production default.
    min_confidence: 0.40

    # EMA smoothing weight applied to each new observation.
    #   0.0 = frozen (never updates)   1.0 = no smoothing (raw output)
    # 0.30 gives stable ~3-frame moving average at 10 Hz face detection rate.
    smoothing_alpha: 0.30

    # Comma-separated person_ids that have opted out of emotion tracking.
    # Empty string = everyone is tracked by default.
    # Example: "1,3,7"
    opt_out_persons: ""

    # Skip face crops smaller than this side length (pixels).
    # Very small crops produce unreliable emotion predictions.
    face_min_size: 24

    # If true and TRT engine is unavailable, fall back to the 5-point
    # landmark heuristic.  Set false to suppress output entirely without TRT.
    landmark_fallback: true

    # Camera names matching saltybot_cameras topic naming convention.
    camera_names: "front,left,rear,right"

    # Number of active CSI camera streams to subscribe to.
    n_cameras: 4

    # Publish /social/emotion/context (JSON string) for conversation_node.
    publish_context: true
