# Unified Raspberry Pi Requirements for All RoboVision Servers # Vision Server + Motor Server + Audio Server # Install with: pip install -r requirements_pi_unified.txt # ============================================================================ # SYSTEM DEPENDENCIES (Install these first with apt) # ============================================================================ # sudo apt-get update # sudo apt-get install -y python3-opencv python3-numpy python3-pil # sudo apt-get install -y libatlas-base-dev libopenblas-dev # sudo apt-get install -y libhdf5-dev libhdf5-serial-dev libhdf5-103 # sudo apt-get install -y libqt5gui5 libqt5widgets5 libqt5test5 # sudo apt-get install -y portaudio19-dev libsndfile1 alsa-utils # sudo apt-get install -y bluetooth bluez bluez-tools pulseaudio pulseaudio-module-bluetooth # sudo apt-get install -y python3-pyaudio # ============================================================================ # WEB FRAMEWORKS # ============================================================================ # Flask - For Vision Server Flask==3.0.0 Flask-CORS==4.0.0 # FastAPI - For Motor Server and Audio Server fastapi==0.104.1 uvicorn[standard]==0.24.0 python-multipart==0.0.6 # ============================================================================ # COMPUTER VISION & OBJECT DETECTION # ============================================================================ # Note: Use system python3-opencv instead of pip opencv-python # opencv-python - DO NOT INSTALL via pip, use system package # NumPy - Compatible version for ARM numpy==1.24.3 # Image processing Pillow==10.1.0 # YOLO Object Detection (optional, for advanced vision features) ultralytics==8.0.196 # ============================================================================ # AUDIO PROCESSING (For Audio Server) # ============================================================================ # Note: python3-pyaudio should be installed via apt (see system dependencies above) sounddevice==0.4.6 soundfile==0.12.1 # ============================================================================ # AI & CAPTION SERVICES # ============================================================================ # Google Generative AI for image captioning (optional) google-generativeai==0.3.1 # ============================================================================ # MOTOR CONTROL (For Motor Server) # ============================================================================ # GPIO control for Raspberry Pi lgpio==0.2.2.0 # Pydantic for data validation pydantic==2.5.0 # ============================================================================ # NETWORKING & HTTP # ============================================================================ # HTTP requests requests==2.31.0 groq>=0.11 # CORS support python-multipart==0.0.6 # ============================================================================ # UTILITIES # ============================================================================ # Python dotenv for environment variables python-dotenv==1.0.0 # ============================================================================ # OPTIONAL DEPENDENCIES # ============================================================================ # Ngrok for tunneling (optional, for remote access) # pyngrok==7.0.1 # Pi Camera Module support (optional, only if using Pi Camera Module) # picamera2 # ============================================================================ # NOTES # ============================================================================ # 1. Always install system dependencies FIRST before pip packages # 2. Use system python3-opencv instead of pip opencv-python (it's pre-built for ARM) # 3. Create venv with --system-site-packages to access system opencv: # python3 -m venv venv --system-site-packages # 4. For Bluetooth audio, make sure to pair devices first # 5. For GPIO motor control, user must be in 'gpio' group: # sudo usermod -a -G gpio $USER # 6. For Bluetooth, user must be in 'bluetooth' group: # sudo usermod -a -G bluetooth $USER