Skip to content

Releases: Team537/OceanView

OceanView v0.1.0

02 Feb 03:05
0372fe6

Choose a tag to compare

OceanView v0.1.0 Changelog

Release Date: February 1, 2025

This initial release introduces a complete, ground‐up implementation of OceanView with a new object‐oriented codebase. All features and modules are added from scratch. Highlights include a full vision processing pipeline, integrated map management, network communications, and a web-based status/dashboard system.

Added

  • Vision Processing Pipeline
    • Built a complete pipeline integrating DepthAI for undistorted RGB and depth streams.
    • Developed an OpenCV processor for color masking, contour detection, bounding box extraction, and 3D position estimation (including bilinear depth sampling and subpixel accuracy).
    • Added separate HSV thresholds and Canny edge detection settings for detecting both algae and coral.
  • Project Architecture & Code Structure
    • Reworked project structure into an object-oriented design.
    • Introduced core classes such as DepthAIPipeline, MainController, OpenCVProcessor, and ImageSaver.
    • Added module initialization files (__init__.py) to support a clean package hierarchy for data transmission, file handling, map management, and vision processing.
  • Map Management and Scoring
    • Implemented map management components: Branch, BranchManager, and KDTreeManager (with SciPy integration) to support efficient spatial queries.
    • Added a BlockDetectionManager to assess whether scoring locations are blocked by algae or coral based on distance thresholds.
    • Loaded scoring positions and branch configuration from a YAML file.
  • Data Transmission & Communication
    • Replaced legacy NetworkTables integration with new TCP/UDP communication modules:
    • TCPReceiver to handle incoming control commands and robot pose updates.
    • UDPSender to send processed data (with packet numbering) to a target (e.g., RoboRIO).
    • Enhanced Flask-based server (FlaskServerHandler) to stream processed video frames and provide a real-time status dashboard.
  • Dashboard and Monitoring
    • Added a Raspberry Pi status dashboard showing CPU, memory, disk usage, GPU information, and terminal log output.
    • Implemented video streaming from the vision processing pipeline accessible on the network.
  • Image Saving
    • Enabled photo capture and saving from multiple frame sources (input, output, depth) with images saved as PNG files in a cross-platform “Photos” folder.
  • Documentation and IDE Support
    • Improved the README.md to better explain setup, usage, and project structure.
    • Added IDE configuration files and updated .gitignore to streamline development.

Improved

  • Processing Enhancements
    • Enhanced depth and color processing settings:
    • Upgraded camera resolution to 1080p with adjusted preview sizes.
    • Tuned HSV thresholds and adjusted camera configuration for more accurate algae and coral detection.
    • Refactored code across modules for clearer import structures, enhanced comments, and overall maintainability.
  • Cross-Platform Compatibility
    • Adjusted file path separators and updated image format handling for better cross-platform support.
  • Logging and Error Handling
    • Added detailed logging and error handling throughout key modules (e.g., during pipeline start/stop, TCP/UDP communication, and Flask server operations).

Fixed

  • Corrected typos and YAML indentation issues in configuration files.
  • Updated import paths and removed deprecated methods to streamline the codebase.

Breaking Changes

  • Architecture Overhaul
    • The entire codebase has been converted to an object-oriented approach. Previous standalone scripts have been replaced by modular classes such as DepthAIPipeline, MainController, and OpenCVProcessor.
  • Data Transmission
    • NetworkTables integration has been removed in favor of new TCP/UDP communication modules.
  • Camera & Image Handling
    • The camera resolution change and image saving adjustments (now saving PNGs instead of JPGs) may affect downstream processing that depends on the previous settings.