Banks T 1149bf9c55 Pipeline Bringup (#94)
* Refactor package structure, various cleanups

* Add pipeline classes, settings, separate enums

* updated Largest ContourSortMode and added centermost

* Add DriverPipeline classes, apply spotless

* Add crosshair to DriverMode, cleanups

* Add FrameStaticProperties as member in Frame

Add FrameStaticProperties as member in Frame

* Finish ReflectivePipeline, various tweaks

* Apply Spotless

* Move test images

* add Releasable interface, implement in classes

* add TestUtils class, move testimages

* Refactor CVPipeline, add ReflectivePipelineTest

* Fix ConcurrentModificationException bug in group contours pipe with potential targets

* Resolve memory leaks due to unnecessary instantiation of Points

* Apply spotless

* Add CVMat, ReflectionUtils to help track rogue Mats

* various cleanups, add DummyFrameConsumer

* Add logback

* Add slv4j logger to replace the current debugLogger

I'm waiting on stuff to be less skeletoned to add more

* Add perimeter, MatOfPoint2f getters to Contour

* Create CornerDetectionPipe based on old solvePNPPipe

* Add ContourShape class for approxPolyDp Start on ColoredShape tracking

* Add point detection, fix convex hull calculation in Contour

* Make Draw2dContours pipe respect showMultiple

* Update Contour.java

* Clean up draw 3d, fix convex hull bug in corner detection

* Update geometry classes

* Add lifecam calibration data

* Implement solvePNP, bounding box top and bottom

* Fix JSON mat bug and lifecam default calibration for tests, fix 3d drawing

* run spotless

* Refactor calibration into `common.calibration`

* Update .gitignore

* Add offset method to get2020Target

* Various cleanups, add PipelineType enum

* Apply spotless

Co-authored-by: ori agranat <oriagranat9@gmail.com>
Co-authored-by: Matt <matthew.morley.ca@gmail.com>
2020-04-12 18:37:14 -04:00
2020-03-30 14:13:42 -04:00
2020-03-29 01:30:44 +03:00
2020-04-12 18:37:14 -04:00
2020-04-12 18:37:14 -04:00
2020-03-21 01:00:34 +02:00
2020-01-22 21:53:11 +02:00

Chameleon-Vision

CircleCI CircleCI

Chameleon Vision is free open-source software for FRC teams to use for vision proccesing on their robots.

There instructions are for compiling (contributing) and running the source-code of the project. This is NOT intended for the co-processor setup or your testing PC. To run the program normally (from a build .jar file), take a look at our ReadTheDocs documentation for installation here

These instruction are for the Chameleon Vision's backend/server in Java

To run the UI's sourcecode (optional) see the UI's readme

Hardware

Currently any 64-Bit devices (Windows, Linux and Mac OS) are supported.
32 Bit devices are not supported.

At least one USB camera (supported one is recommended)

Development setup

Prerequisites

  • Java Development Kit 12: Follow the correct instructions for your platform from BellSoft
  • Chameleon-vision source code Clone via a git client or download as zip and extract the source code into a empty folder

For the co-processor(Linux system)

  • Avahi Daemon: sudo apt-get install avahi-daemon avahi-discover avahi-utils libnss-mdns mdns-scan

For the driver station

  • Bonjour Download and install Bonjour from here
  • VC++ Redistributable (Windows only) Download and install this

Importing to IDEA

We recommend the use of Intellij Idea for running the source-code

  1. Import Project

  2. Choose the path to chameleon-server inside the copy of Chameleon-Vision that you cloned or downloaded

  1. Import the project as a Maven project

  1. Under JDK for importer choose the JDK 12 you downloaded earlier
  2. Maven will automatically download the necessary dependencies
  3. Run Main under src/main/java/com/chameleonvision/

Authors

  • Sagi Frimer - initial work - websocket, settings manager, UI

  • Ori Agranat - main coder - project manager, vision loop, UI, websocket, networktables

  • Omer Zipory - developer - vision loop, websocket, networking, documentation, UI

  • Banks Troutman - developer - vision loop, websocket, networking, project structue

  • Matt Morley - developer - vision loop, project structue, documentation, solvePNP

Acknowledgments

License

Usage of Chameleon Vision must fall under all terms of Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International

Description
PhotonVision - FRC Vision Processing
Readme GPL-3.0 640 MiB
Languages
Java 56.5%
C++ 14.9%
Vue 9.2%
Python 7.9%
TypeScript 7.9%
Other 3.4%