BlueJayADAL / JayRadar

JayRadar - Vision Pipelines
GNU Affero General Public License v3.0
9 stars 0 forks source link

Modules Update #10

Closed Klinefelters closed 1 year ago

Klinefelters commented 1 year ago

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.