# Issue #506: Outdoor Launch Profile
# Optimized for outdoor environments: wide spaces, GPS-enabled, moderate speed
#
# Parameters:
#   - Max speed: 0.5 m/s (open outdoor terrain)
#   - Geofence: wide (e.g., park boundary: ~20m radius)
#   - GPS: enabled via outdoor_nav with EKF fusion
#   - Costmap inflation: moderate (0.55m standard)
#   - Recovery behaviors: moderate distances
#   - Tricks: enabled (safe for outdoor social features)

profile: outdoor
description: "Wide outdoor spaces, GPS-enabled navigation, moderate speed (0.5 m/s)"

# ── Navigation & Velocity ──────────────────────────────────────────────────────
max_linear_vel: 0.5            # m/s — open outdoor terrain
max_angular_vel: 0.5           # rad/s — moderate rotation
max_vel_theta: 0.5             # rad/s — Nav2 controller (same as above)

# ── Costmap Configuration ──────────────────────────────────────────────────────
costmap:
  inflation_radius: 0.55       # 0.35m robot + 0.20m padding (standard)
  cost_scaling_factor: 10.0
  obstacle_layer:
    inflation_radius: 0.55
    clearing: true
    marking: true

# ── Behavior Server (Recovery) ─────────────────────────────────────────────────
behavior_server:
  spin:
    max_rotational_vel: 1.5
    min_rotational_vel: 0.4
    rotational_acc_lim: 3.2
  backup:
    max_linear_vel: 0.15        # moderate backup speed
    min_linear_vel: -0.15
    linear_acc_lim: 2.5
    max_distance: 0.5           # 50cm max backup distance
  wait:
    wait_duration: 2000         # 2 second waits

# ── Geofence (if enabled) ──────────────────────────────────────────────────────
geofence:
  enabled: true
  mode: "wide"                  # wide geofence for outdoor exploration
  radius_m: 20.0                # 20m radius max (park boundary)

# ── SLAM Configuration ─────────────────────────────────────────────────────────
slam:
  enabled: false                # no SLAM outdoors — use GPS instead
  mode: "gps"
  gps_enabled: true             # GPS nav via outdoor_nav + EKF

# ── Outdoor Navigation (EKF + GPS) ────────────────────────────────────────────
outdoor_nav:
  enabled: true
  use_gps: true
  ekf_config: "ekf_outdoor.yaml"

# ── Person Follower ────────────────────────────────────────────────────────────
follower:
  follow_distance: 2.0          # meters (slightly further for outdoor)
  max_linear_vel: 0.5
  min_linear_vel: 0.05
  kp_linear: 0.4                # slightly lower gain for stability
  kp_angular: 0.25              # slightly lower gain for outdoor

# ── Trick Behaviors (Social) ───────────────────────────────────────────────────
tricks:
  enabled: true
  available: ["spin", "dance", "celebrate"]  # subset safe for outdoor
