# GoWelcome runtime dependencies.
#
# Install for off-robot / mock development:
#     pip install -r requirements.txt
# (The HARDWARE-ONLY block at the bottom is NOT needed for `python main.py --mock`.)

# --- Perception ----------------------------------------------------------
numpy                 # arrays / math (light, imported at top level everywhere)
opencv-python         # camera capture, HSV road mask, debug overlay window (cv2)
ultralytics           # YOLOv8 person/vehicle detection

# --- Audio (optional) ----------------------------------------------------
# Host-side greeting playback. If absent, the host audio backend falls back to
# an external player command (config.AudioConfig.host_player_cmd, e.g. `aplay`).
simpleaudio           # optional; pure-host WAV playback

# --- GPS geofence (external receiver on the onboard computer) -------------
# The Go2 has NO built-in GPS. For `--gps serial` (NMEA off a USB receiver):
pyserial              # optional; only for the serial NMEA GPS source
# For `--gps gpsd`, install the system gpsd daemon instead (sudo apt install gpsd);
# GoWelcome talks to it over its socket with no extra Python dependency.

# --- HARDWARE: WebRTC transport (DEFAULT; real Go2, skip for --mock) ------
# App-protocol WebRTC driver: camera + sport + obstacle-avoid + AudioHub audio,
# works on Go2 AIR/PRO/EDU over wifi. Pulls in aiortc. Also needs PortAudio:
#     sudo apt install -y portaudio19-dev
unitree_webrtc_connect   # default transport (--transport webrtc)

# --- HARDWARE: DDS transport (alternative; --transport dds) ---------------
# Official Unitree SDK + DDS. NOT on PyPI in a usable form -- install from the
# official repo on the robot's host (pulls cyclonedds):
#     https://github.com/unitreerobotics/unitree_sdk2_python
#     unitree_sdk2py     # SportClient / VideoClient / ObstaclesAvoidClient
#     cyclonedds         # DDS transport used by unitree_sdk2py
#
# NOTE: pyserial is NOT required by GoWelcome (no direct serial link to the Go2).
