Giter VIP home page Giter VIP logo

photonvision / photonvision Goto Github PK

View Code? Open in Web Editor NEW
262.0 17.0 169.0 137.43 MB

PhotonVision is the free, fast, and easy-to-use computer vision solution for the FIRST Robotics Competition.

Home Page: https://photonvision.org

License: GNU General Public License v3.0

HTML 0.01% Vue 7.97% Java 65.98% Shell 0.42% SCSS 0.02% C++ 13.69% TypeScript 10.08% Batchfile 0.01% Python 1.77% C 0.03%
frc vision java opencv wpilib vision-processing computer-vision

photonvision's Introduction

PhotonVision

CI codecov Discord

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. You can find our comprehensive documentation here.

The latest release of platform-specific jars and images is found here.

If you are interested in contributing code or documentation to the project, please read our getting started page for contributors and join the Discord to introduce yourself! We hope to provide a welcoming community to anyone who is interested in helping.

Authors

Documentation

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.

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. Instructions for running these examples directly from the repo are found in the docs.

Gradle Arguments

Note that these are case sensitive!

  • -PArchOverride=foobar: builds for a target system other than your current architecture. Valid overrides are:
    • linuxathena
    • linuxarm64
    • arm64
    • x86-64
    • x86
  • -PtgtIp: Specifies where ./gradlew deploy should try to copy the fat JAR to
  • -Pprofile: enables JVM profiling

Out-of-Source Dependencies

PhotonVision uses the following additonal out-of-source repositories for building code.

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. Thank you to everyone who worked on the original project.

License

PhotonVision is licensed under the GNU General Public License.

Meeting Notes

Our meeting notes can be found in the wiki section of this repository.

photonvision's People

Contributors

1revenger1 avatar agasser avatar amquake avatar auscompgeek avatar bankst avatar bytingbulldogs3539 avatar calcmogul avatar crschardt avatar cttdev avatar devonrd avatar gerth2 avatar hadley31 avatar jackpittenger avatar juniormunk avatar lavirz avatar mcm001 avatar mdurrani808 avatar neel-j-dev avatar omerz7 avatar oriagranat9 avatar pietroglyph avatar prateekma avatar prensing avatar r4stered avatar rzblue avatar sagifrimer avatar sarah-e-c avatar shueja avatar srimanachanta avatar thetriplev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

photonvision's Issues

Log File Auto-Delete

Add logic to keep the last N logs (say 100) but delete older ones beyond that. The goal is to prevent disk space from getting used up by log files

LED Dimming Doesn't Work on Gloworm

In the latest dev build (photonvision-dev-dev-13-g66a5fa8.jar), the Brightness slider in the Settings page doesn't dim a Gloworm's LEDs properly. If the slider is set to 100, the LEDs are fully on. If the slider is set to any other value, the LEDs are fully off.

Contour Simplification value is incorrect type

[2020-08-23 13:26:35] [WebServer - SocketHandler] [DEBUG] Got WS message: [SMT_PIPELINESETTINGCHANGE] ==> [changePipelineSetting], [{cornerDetectionAccuracyPercentage=88, cameraIndex=0}]
[2020-08-23 13:26:35] [WebServer - Server] [DEBUG] Got WebSockets binary message from host /127.0.0.1:51733
[2020-08-23 13:26:35] [VisionModule - VisionModuleChangeSubscriber - WPI2020] [ERROR] Unknown exception when setting PSC prop!
[2020-08-23 13:26:35] [VisionModule - VisionModuleChangeSubscriber - WPI2020] [ERROR] java.lang.ClassCastException: class java.lang.Integer cannot be cast to class java.lang.Double (java.lang.Integer and java.lang.Double are in module java.base of loader 'bootstrap')
	at org.photonvision.vision.processes.VisionModuleChangeSubscriber.onDataChangeEvent(VisionModuleChangeSubscriber.java:172)
	at org.photonvision.common.dataflow.DataChangeService.dispatchFromQueue(DataChangeService.java:66)
	at java.base/java.lang.Thread.run(Thread.java:835)

Refreshing webpage during calibration does not produce proper UI state

Procedure:

Start calibration, take a 25 snapshots, then refresh the page.

Snapshot count goes back to 0 and UI button returns to "cancel calibration".

Clicking "Cancel" actually starts to perform the calibration

Taking an additional snapshot does reset the GUI state. I think snapshot count just needs to be sent as part of the vue data sent on initial page load when a calibration is in process?

Camera path matching is too lenient

image
A new camera that is at the same path as a previously connected camera will match to the previous camera config, even if the base name is different.

Camera Exposure Control Doesn't Work on Gloworm

The camera shutter speed seems to be 0 (or very small) when the exposure slider is set to 0, and some fixed value when the slider is greater than 1.

The shutter should be able to be set from 1 to 6,000,000 microseconds (or some subset of that range).

Populate frontend's dropdown 3D target models from backend

Right now, there's a requirement that PnPTab.vue and TargetModel.java are manually kept in sync to ensure the user has the ability to select from any of the available target models.

Update the backend transmit a list of nice human-readable strings naming the target models to the frontend, and use them to populate the correct dropdowns.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.