diff --git a/README.md b/README.md index 1e13ed2a7..4fcf69c59 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ -# Photon Vision +# PhotonVision [![CI](https://github.com/PhotonVision/photonvision/workflows/CI/badge.svg)](https://github.com/PhotonVision/photonvision/actions?query=workflow%3ACI) [![codecov](https://codecov.io/gh/PhotonVision/photonvision/branch/master/graph/badge.svg)](https://codecov.io/gh/PhotonVision/photonvision) [![Discord](https://img.shields.io/discord/725836368059826228?color=%23738ADB&label=Join%20our%20Discord&logo=discord&logoColor=white)](https://discord.gg/wYxTwym) PhotonVision is the free, fast, and easy-to-use computer vision solution for the *FIRST* Robotics Competition. You can read an overview of our features [on our website](https://photonvision.org). You can find our comprehensive documentation [here](https://docs.photonvision.org). -A copy of the latest Raspberry Pi image is available [here](https://github.com/PhotonVision/photon-pi-gen/releases). A copy of the latest standalone JAR is available [here](https://github.com/PhotonVision/photonvision/releases). If you are a Gloworm user you can find the latest Gloworm image [here](https://github.com/gloworm-vision/pi-gen/releases). +The latest release of platform-specific jars and images is found [here](https://github.com/PhotonVision/photonvision/releases). If you are interested in contributing code or documentation to the project, please [read our getting started page for contributors](https://docs.photonvision.org/en/latest/docs/contributing/index.html) and **[join the Discord](https://discord.gg/wYxTwym) to introduce yourself!** We hope to provide a welcoming community to anyone who is interested in helping. @@ -14,6 +14,19 @@ If you are interested in contributing code or documentation to the project, plea +## Documentation + +- Our main documentation page: [docs.photonvision.org](https://docs.photonvision.org) +- Photon UI demo: [demo.photonvision.org](https://demo.photonvision.org) (or [manual link](https://photonvision.github.io/photonvision/built-client/)) +- Javadocs: [javadocs.photonvision.org](https://javadocs.photonvision.org) (or [manual link](https://photonvision.github.io/photonvision/built-docs/javadoc/)) +- C++ Doxygen [cppdocs.photonvision.org](https://cppdocs.photonvision.org) (or [manual link](https://photonvision.github.io/photonvision/built-docs/doxygen/html/)) + +## Building + +Gradle is used for all C++ and Java code, and NPM is used for the web UI. Instructions to compile PhotonVision yourself can be found [in our docs](https://docs.photonvision.org/en/latest/docs/contributing/photonvision/build-instructions.html?highlight=npm%20install#compiling-instructions). + +You can run one of the many built in examples straight from the command line, too! They contain a fully featured robot project, and some include simulation support. The projects can be found inside the [`photonlib-java-examples`](photonlib-java-examples) and [`photonlib-cpp-examples`](photonlib-cpp-examples) subdirectories, respectively. Instructions for running these examples directly from the repo are found [in the docs](https://docs.photonvision.org/en/latest/docs/contributing/photonvision/build-instructions.html#running-examples). + ## Gradle Arguments Note that these are case sensitive! @@ -27,36 +40,6 @@ Note that these are case sensitive! - `-PtgtIp`: Specifies where `./gradlew deploy` should try to copy the fat JAR to - `-Pprofile`: enables JVM profiling -## Building - -Gradle is used for all C++ and Java code, and NPM is used for the web UI. Instructions to compile PhotonVision yourself can be found [in our docs](https://docs.photonvision.org/en/latest/docs/contributing/photonvision/build-instructions.html?highlight=npm%20install#compiling-instructions). - -You can run one of the many built in examples straight from the command line, too! They contain a fully featured robot project, and some include simulation support. The projects can be found inside the `photonlib-java-examples` and `photonlib-cpp-examples` subdirectories, respectively. The projects currently available include: - -- photonlib-java-examples: - - aimandrange:simulateJava - - aimattarget:simulateJava - - getinrange:simulateJava - - simaimandrange:simulateJava - - simposeest:simulateJava -- photonlib-cpp-examples: - - aimandrange:simulateNative - - getinrange:simulateNative - -To run them, use the commands listed below. Photonlib must first be published to your local maven repository, then the `copyPhotonlib` task will copy the generated vendordep json file into each example. After that, the simulateJava/simulateNative task can be used like a normal robot project. Robot simulation with attached debugger is technically possible by using simulateExternalJava and modifying the launch script it exports, though unsupported. - -``` -~/photonvision$ ./gradlew publishToMavenLocal - -~/photonvision$ cd photonlib-java-examples -~/photonvision/photonlib-java-examples$ ./gradlew copyPhotonlib -~/photonvision/photonlib-java-examples$ ./gradlew :simulateJava - -~/photonvision$ cd photonlib-cpp-examples -~/photonvision/photonlib-cpp-examples$ ./gradlew copyPhotonlib -~/photonvision/photonlib-cpp-examples$ ./gradlew :simulateNative -``` - ## Out-of-Source Dependencies PhotonVision uses the following additonal out-of-source repositories for building code. @@ -67,10 +50,17 @@ PhotonVision uses the following additonal out-of-source repositories for buildin - Custom build of OpenCV with GStreamer/Protobuf/other custom flags: https://github.com/PhotonVision/thirdparty-opencv - JNI code for aruco-nano: https://github.com/PhotonVision/aruconano-jni +## Additional packages + +For now, using mrcal requires installing these additional packages on Linux systems: + +``` +sudo apt install libcholmod3 liblapack3 libsuitesparseconfig5 +``` ## Acknowledgments -PhotonVision was forked from [Chameleon Vision](https://github.com/Chameleon-Vision/chameleon-vision/). Thank you to everyone who worked on the original project. +PhotonVision was forked from [Chameleon Vision](https://github.com/Chameleon-Vision/chameleon-vision/). Thank you to everyone who worked on the original project. * [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). @@ -83,25 +73,9 @@ PhotonVision was forked from [Chameleon Vision](https://github.com/Chameleon-Vis * [FasterXML](https://github.com/FasterXML) - Specifically [jackson](https://github.com/FasterXML/jackson) ## License -PhotonVision is licensed under the [GNU General Public License](https://www.gnu.org/licenses/gpl-3.0.html) + +PhotonVision is licensed under the [GNU General Public License](https://www.gnu.org/licenses/gpl-3.0.html). ## Meeting Notes -Our meeting notes can be found in the wiki section of this repository. -* [2020 Meeting Notes](https://github.com/PhotonVision/photonvision/wiki/2020-Meeting-Notes) -* [2021 Meeting Notes](https://github.com/PhotonVision/photonvision/wiki/2021-Meeting-Notes) - -## Additional packages - -For now, using mrcal requires installing these additional packages on Linux systems: - -``` -sudo apt install libcholmod3 liblapack3 libsuitesparseconfig5 -``` - -## Documentation - -- Our main documentation page: [docs.photonvision.org](https://docs.photonvision.org) -- Photon UI demo: [demo.photonvision.org](https://demo.photonvision.org) (or [manual link](https://photonvision.github.io/photonvision/built-client/)) -- Javadocs: [javadocs.photonvision.org](https://javadocs.photonvision.org) (or [manual link](https://photonvision.github.io/photonvision/built-docs/javadoc/)) -- C++ Doxygen [cppdocs.photonvision.org](https://cppdocs.photonvision.org) (or [manual link](https://photonvision.github.io/photonvision/built-docs/doxygen/html/)) +Our [meeting notes](https://github.com/PhotonVision/photonvision/wiki/PhotonVision-Meeting-Notes) can be found in the wiki section of this repository.