Releases: Team537/OceanView
Releases · Team537/OceanView
OceanView v0.1.0
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
DepthAIfor undistorted RGB and depth streams. - Developed an
OpenCVprocessor 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.
- Built a complete pipeline integrating
- Project Architecture & Code Structure
- Reworked project structure into an object-oriented design.
- Introduced core classes such as
DepthAIPipeline,MainController,OpenCVProcessor, andImageSaver. - 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, andKDTreeManager(withSciPyintegration) to support efficient spatial queries. - Added a
BlockDetectionManagerto assess whether scoring locations are blocked by algae or coral based on distance thresholds. - Loaded scoring positions and branch configuration from a YAML file.
- Implemented map management components:
- Data Transmission & Communication
- Replaced legacy NetworkTables integration with new TCP/UDP communication modules:
TCPReceiverto handle incoming control commands and robot pose updates.UDPSenderto 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.mdto better explain setup, usage, and project structure. - Added IDE configuration files and updated
.gitignoreto streamline development.
- Improved the
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, andOpenCVProcessor.
- The entire codebase has been converted to an object-oriented approach. Previous standalone scripts have been replaced by modular classes such as
- 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.