This update will rewrite JayRadar. The following is a summary of the changes:
Pipeline Class
This class adds a formal structure to our vision pipeline. With a source, output and series of pipes, you can easily create and tune a new pipeline. You can also create and expand upon the pipeline with custom sources, outputs and pipes.
Source
This class is responsible for retrieving frames and timestamps from the camera. It serves as the source for the data pipeline.
Pipes
These are transformations applied to the data in the pipeline. An example is an RGB transformation that adjusts the color balance, or a grey scale transformation to remove color. You can also extract data from the frames using the Ultralytics Yolov8 pipe.
Outputs
These are caps on the end of the pipeline. They handle the path that the final frame will take to be displayed if it will be displayed. It also handles where the data will be sent, with examples that send the data to networktables.
Variable Pipeline Class
This class extends the pipeline class and allows the user to add and remove pipes in the pipeline.
Pipeline Manager
This class provides the user with an easier way to interact with the variable pipeline. Using a number of predefined pipes, you can add, remove, and swap where they are in the pipeline.
Interfaces
This package has a series of interfaces to interact with the pipelines. They all take a pipeline manager as an argument, and use that manger to interact with the pipeline. The one used in main.py is the web UI.
Modules Update
This update will rewrite JayRadar. The following is a summary of the changes:
Pipeline Class
This class adds a formal structure to our vision pipeline. With a source, output and series of pipes, you can easily create and tune a new pipeline. You can also create and expand upon the pipeline with custom sources, outputs and pipes.
Source
This class is responsible for retrieving frames and timestamps from the camera. It serves as the source for the data pipeline.
Pipes
These are transformations applied to the data in the pipeline. An example is an RGB transformation that adjusts the color balance, or a grey scale transformation to remove color. You can also extract data from the frames using the Ultralytics Yolov8 pipe.
Outputs
These are caps on the end of the pipeline. They handle the path that the final frame will take to be displayed if it will be displayed. It also handles where the data will be sent, with examples that send the data to networktables.
Variable Pipeline Class
This class extends the pipeline class and allows the user to add and remove pipes in the pipeline.
Pipeline Manager
This class provides the user with an easier way to interact with the variable pipeline. Using a number of predefined pipes, you can add, remove, and swap where they are in the pipeline.
Interfaces
This package has a series of interfaces to interact with the pipelines. They all take a pipeline manager as an argument, and use that manger to interact with the pipeline. The one used in main.py is the web UI.