# attention_params.yaml — Social attention controller configuration.
#
# ── Proportional gain ─────────────────────────────────────────────────────────
# angular_z = clamp(kp_angular * bearing_rad, ±max_angular_vel)
#
# kp_angular  : 1.0 → 1.0 rad/s per 1 rad error (57° → full speed).
#   Increase for snappier tracking; decrease if robot oscillates.
kp_angular:       1.0         # rad/s per rad

# ── Velocity limits ──────────────────────────────────────────────────────────
# Hard cap on rotation output. In social mode the balance loop must not be
# disturbed by large sudden angular commands; keep this ≤ 1.0 rad/s.
max_angular_vel:  0.8         # rad/s

# ── Dead zone ────────────────────────────────────────────────────────────────
# If |bearing| ≤ dead_zone_rad, rotation is suppressed.
# 0.15 rad ≈ 8.6° — prevents chattering when person is roughly centred.
dead_zone_rad:    0.15        # radians

# ── Control loop ─────────────────────────────────────────────────────────────
control_rate:     20.0        # Hz

# ── Lost-target timeout ───────────────────────────────────────────────────────
# If no /social/persons message arrives for this many seconds, publish zero
# and enter IDLE state. The cmd_vel bridge deadman will also kick in.
lost_timeout_s:   2.0         # seconds

# ── Master enable ─────────────────────────────────────────────────────────────
# Toggle at runtime: ros2 param set /attention_node attention_enabled false
attention_enabled: true
