- Added Ninja Build System to provide faster build times and better diagnosis of errors. To use it in other repositories:
- Install Ninja:
apt install ninja-build
(not needed if using sonia_common as base image)
- Replace
catkin_make
with catkin_make --use-ninja
- Added remote containers configuration for VSCode to support both CPU and GPU modes
- Added SonarCloud for code quality analysis. To use it in other repositories:
- For projects not based on C/C++, simply follow the instructions on the SonarCloud UI (only copy-pasting abilities are required)
- For projects based on C/C++, you need to create a Dockerfile based on your current one. Use the same technique we did with proc_image_processing
- Added CUDA support for OpenCV
- Added unit tests
- Added support for CLion with Docker
- Added docker-compose files to simplify local development
- Added basic benchmarking tools to compare OpenCV with and without CUDA using multiple strategies
- Added Factory Generator
- ROS Bags:
- Added docker-compose file to run bags easily
- Added CI workflow for Octopus-Telemetry in order to use it with the docker-compose file
- Added CLAHE filter
- Added a way to run bags using Docker (both Windows and Linux compatible)
- Added handling of errors for VisionServer since Telemetry could bring down proc_image_processing with a bad request
- Added performance profiling of filters by allowing to output the execution time of them
- Added ROS bag playback for Windows
- Unused filters (archived)
- Unused filter chains (archived)
- Unused fields and functions
- Improved Docker architecture:
- Improved
.dockerignore
file
- Improved Dockerfile layers and efficiency
- Improved README.md documentation
- Cleaned up GitHub Actions workflows:
- Removed unused Slack job
- Fixed typos and inconsistencies
- C++ standard upgraded to 2017
- Container Registry switched to ghcr.io (docker.pkg.github.com is deprecated)
- Code refactor:
- Functions renamed with first character as a lower case
- Filters renamed to provide better syntax and semantics
- Extracted duplicated code blocks into functions
- Build type defaults to Release (optimized build for production)
- Optimized code efficiency by using better data structures (for example a map instead of a vector to search unique elements)
- Filters are classified (eg.: custom, low pass, high pass, transformations, etc.).
- Acceleration of filter execution (eg.: ContrastAndBrigthnessFilter)
- Moved common fields to filter.h instead of adding them in all the filters
- Normalized filter parameters names
- Moved responsabilities to increase coherence
- Reduced duplication code percentage (9.7% to 4.3%)
- ROS core now does not need to be started manually when using VSCode
- Fixed bugs (4) found by SonarCloud
- Fixed many code smells (from 1100 to about 575)
- Fixed bugs that were found with unit tests
- Fixed the path to config chainfilters
- Fixed CI so that failing tests actually stops the workflow