2019-12-02 01:37:53 +02:00
2019-08-13 23:43:50 +03:00
# Chameleon-Vision
2019-08-29 00:01:40 +03:00
2019-11-27 23:52:10 -05:00
[](https://circleci.com/gh/Chameleon-Vision/workflows/chameleon-vision/tree/dev)
[](https://circleci.com/gh/Chameleon-Vision/workflows/chameleon-vision/tree/master)
2019-11-20 08:53:11 +02:00
2019-09-24 19:14:52 +00:00
Chameleon Vision is free open-source software for FRC teams to use for vision proccesing on their robots.
2019-08-29 00:01:40 +03:00
2019-12-02 01:37:53 +02:00
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 ](https://chameleon-vision.readthedocs.io/en/latest/installation/coprocessor-setup.html )
2019-03-23 19:04:32 +00:00
2019-08-29 00:01:40 +03:00
2019-12-02 01:37:53 +02:00
These instruction are for the Chameleon Vision's backend/server in Java
2019-12-02 01:38:50 +02:00
2019-12-02 01:37:53 +02:00
To run the UI's sourcecode (optional) see the UI's [readme ](https://github.com/Chameleon-Vision/chameleon-vision/blob/master/chameleon-client/README.md )
2019-08-13 23:43:50 +03:00
2019-12-02 01:37:53 +02:00
## Hardware
Currently any 64-Bit devices (Windows, Linux and Mac OS) are supported.
32 Bit devices are not supported.
2019-08-29 00:01:40 +03:00
2019-12-02 01:46:31 +02:00
At least one USB camera ([supported ](https://chameleon-vision.readthedocs.io/en/latest/hardware/supported-hardware.html#supported-cameras ) one is recommended)
2019-12-02 01:37:53 +02:00
## Development setup
2019-08-29 00:01:40 +03:00
2019-12-02 01:37:53 +02:00
### Prerequisites
2019-08-29 00:01:40 +03:00
2019-12-02 01:37:53 +02:00
- Java Development Kit 12:
Follow the correct instructions for your platform from [BellSoft ](https://bell-sw.com/pages/liberica_install_guide-12.0.2/ )
- 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`
2019-08-29 00:01:40 +03:00
2019-12-02 01:37:53 +02:00
#### For the driver station
2019-08-29 00:01:40 +03:00
2019-12-02 01:37:53 +02:00
- Bonjour
Download and install Bonjour [from here ](https://support.apple.com/kb/DL999?locale=en_US )
- VC++ Redistributable (Windows only)
Download and install [this ](https://aka.ms/vs/16/release/vc_redist.x64.exe )
2019-09-25 14:49:46 +00:00
2019-12-02 01:37:53 +02:00
## Importing to IDEA
We recommend the use of [Intellij Idea ](https://www.jetbrains.com/idea/ ) for running the source-code
2019-09-25 14:49:46 +00:00
2019-12-02 01:37:53 +02:00
1. Import Project
2019-09-25 14:49:46 +00:00
2019-12-02 01:37:53 +02:00
2. Choose the path to `chameleon-server` inside the copy of Chameleon-Vision that you cloned or downloaded
2019-08-29 00:01:40 +03:00
2019-12-02 01:37:53 +02:00

2019-08-29 00:01:40 +03:00
2019-12-02 01:37:53 +02:00
3. Import the project as a `Maven` project
2019-08-13 23:43:50 +03:00
2019-12-02 01:37:53 +02:00

2019-08-29 00:01:40 +03:00
2019-12-02 01:37:53 +02:00
4. Under `JDK for importer` choose the JDK 12 you downloaded earlier
5. Maven will automatically download the necessary dependencies
6. Run `Main` under `src/main/java/com/chameleonvision/`
2019-09-24 19:14:52 +00:00
## Authors
2019-08-29 00:01:40 +03:00
2019-09-24 19:14:52 +00:00
* **Sagi Frimer ** - * initial work * - websocket, settings manager, UI
2019-08-13 23:43:50 +03:00
2019-12-02 01:42:10 +02:00
* **Ori Agranat ** - * main coder * - project manager, vision loop, UI, websocket, networktables
2019-08-29 00:01:40 +03:00
2019-12-02 01:42:10 +02:00
* **Omer Zipory ** - * developer * - vision loop, websocket, networking, documentation, UI
2019-08-29 00:01:40 +03:00
2019-12-02 01:42:10 +02:00
* **Banks Troutman ** - * developer * - vision loop, websocket, networking, project structue
2019-08-29 00:01:40 +03:00
2019-12-02 01:42:10 +02:00
* **Matt Morley ** - * developer * - vision loop, project structue, documentation, solvePNP
2019-08-29 00:01:40 +03:00
2019-08-13 23:43:50 +03:00
## Acknowledgments
2019-08-29 00:01:40 +03:00
2019-09-24 19:14:52 +00:00
* [WPILib ](https://github.com/wpilibsuite ) - Specifically [cscore ](https://github.com/wpilibsuite/allwpilib/tree/master/cscore ), [CameraServer ](https://github.com/wpilibsuite/allwpilib/tree/master/cameraserver ), [NTCore ](https://github.com/wpilibsuite/allwpilib/tree/master/ntcore ), and [OpenCV ](https://github.com/wpilibsuite/thirdparty-opencv ).
* [Apache Commons ](https://commons.apache.org/ ) - Specifically [Commons Math ](https://commons.apache.org/proper/commons-math/ ), and [Commons Lang ](https://commons.apache.org/proper/commons-lang/ )
2019-08-29 00:01:40 +03:00
2019-09-24 19:14:52 +00:00
* [Javalin ](https://javalin.io/ )
2019-09-18 17:18:31 +03:00
2019-09-24 19:14:52 +00:00
* [JSON ](https://json.org )
2019-09-18 17:18:31 +03:00
2019-09-24 19:14:52 +00:00
* [Google ](https://github.com/google ) - Specifically [Gson ](https://github.com/google/gson )
2019-09-18 17:18:31 +03:00
2019-09-24 19:14:52 +00:00
## License
Usage of Chameleon Vision must fall under all terms of [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International ](https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode )