Commit Graph

157 Commits

Author SHA1 Message Date
Xzibit
81e5eef7ae Status LEDs (#104)
* Don't start metrics thread if not on linux

* Add statusLED support

* [Hardware] Add status LED support

* [Hardware] Invalid LED port checks

* [Hardware] Check if statusLED exists in config
2020-08-27 14:53:02 -04:00
Banks T
b6d9fe216a Robot offset point (#98)
* Add offset point calculation in backend

* Add pipeline result caching

* Add dual offset unit test
2020-08-27 11:41:03 -07:00
Matt
9f0e89ea29 UI 3d mode, ConfigManager bugfixes (#103)
* stupid bugs I guess idk where else to put this commit

* Run spotless

* Fix config file loading

Splits load into own method

* Run spotless
2020-08-26 13:03:56 -04:00
Matt
fea72e18bf Create FPS limited streamers (#97) 2020-08-20 19:42:39 -04:00
Banks T
072075508c Disable drawing during color picking (#96)
Replaces showThreshold with shouldDraw
2020-08-20 11:45:28 -07:00
Matt
0f8507e6b3 Implement NetworkTables (#95)
* Implement NetworkTables stuff

* Update RequestHandler.java

* run spotless

* Address review

* fix comments and cleanup more
2020-08-19 20:08:24 -04:00
Xzibit
1bcf58fc51 Don't start metrics thread if not on linux (#93) 2020-08-18 13:15:54 -04:00
Matt
87186809c9 Buffer setting save (#51)
This makes it so that settings are written to disk 1 second after settings have stopped being changed. This means that while dragging sliders in the UI, settings won't be written repeatedly. This reduces wear on system storage and improves performance, as saving is expensive.
2020-08-17 13:25:28 -07:00
Banks T
38099e79cf Fix and unit test TimedTaskManager (#91)
Adds TimedTaskManager unit test and switches back to standard executor instead of the custom subclass.
2020-08-17 13:24:15 -07:00
Banks T
832d8413e1 Fix selective send (#90)
* Move VisionSettingsChangeSubscriber to own class

* Use selective sending on simple PSCs

* Fix origin context skip logic
2020-08-17 13:20:36 -07:00
Matt
b3436765e1 3d, camera calibration, backend settings hookup (#80)
* Implement new UI backend stuff

* Kinda partially add resolution accuracy list

* camera calibration go brrrrrrrr

* ayyyy calibration works

* Maybe fix grouping

* Reorganize camera view

* Fix settings not getting sent

* Make pretty (#4)

* Reorganize camera view

* Apply some cosmetic layout changes to the cameras page

* Fix pipeline rollback bug when starting on non-dashboard pages

Co-authored-by: Matt <matthew.morley.ca@gmail.com>

* Fix naming mismatch

* Mostly make stuff work

* rename robot-relative pose to camera-relative pose

* SolvePNP memes, fix isFovConfigurable

* Change config path to photonvision_config

* netmask go poof, fix zip download?

* Update index.js

* Fix multi cam stuff?

* Use LinearFilter instead

* Fix multicam

* aaa

* start adding restart device and restart program, fix square size bug

* Add some debug stuff

* oop

* Start fixing tests

* Fix tests

* Make target box proportinal

* run spotless

* Make crosshair h o t p i n k

* Address review comments

* Address review 2 electric booaloo

* Possibly implement vendor FOV?

* Make centroid crosshair gren

* actually use FOV

* Fix tests

* actually fix tests

Co-authored-by: Declan Freeman-Gleason <declanfreemangleason@gmail.com>
2020-08-14 12:39:21 -07:00
Banks T
86ea661ed9 Fix camera matching (#87)
* Add name matching

* Remove index matching

* Add name-only matching fallback

* Fix debug log location, fix name matching

* Apply LessSpot
2020-08-08 21:30:39 -04:00
Banks T
ff58381056 WPI Image Test Mode (#81)
* Add camera config for calibration to test mode

* Add 3D capabilities to test mode

* Add resources to main for jar testmode

* Refactor path utilities for test mode

* Apply spotless
2020-08-08 14:21:38 -04:00
Banks T
10fb1619ea Add CLI options (#74)
* Added CLI options

* Wording fix
2020-08-06 01:42:53 -04:00
Banks T
7b457efc55 Add FileVisionSource (#71) 2020-08-05 18:43:56 -04:00
Xzibit
dea68041fb Calibration and metrics clean up. (#68)
* Add more calibration metrics
* Cleanup metrics
* Rename PWM fields to match convention
2020-08-04 13:19:40 -07:00
Xzibit
0b98dc3c9f Hardware Management, Metrics, PWM/GPIO support. (#12)
* [Server] Hardware Management

* [Server] Hardware Management

* [Server] Hardware Management

* [Server] Hardware Management

* [Server] Hardware Management

* [Server] Hardware Management

* Added metricsPublisher

* [Server] Hardware Management

* [Server] Hardware Management

* Fill in HardwareConfig, allow JSON Comments

* Use hardware config

* [Hardware Management] Use Hardware Config

* [Hardware Management] Use softPWM for dimming

* [Hardware] Added HardwareConfig Test

* [Hardware] Started HardwareManager

* Start metrics thread in hardwareManager

* [Hardware] Added Hardware Manager Test

* [Hardware] Spotless

* [Hardware] Added logging, cleaned up HardwareConfig

* [Hardware] Added logging to PWM class

* [Hardware] Rebase off master, fix merge conflicts

* [Hardware] Ignore metrics commands if on pi

* [Hardware] Remove GPIO provision after shutdown

* [Hardware] Switch over to diozero

* [Hardware] Use broadcom pins

* [Hardware] Fix PWM port

* [Hardware] Use jpi instead of pigpio

* [Hardware] Use dizero-core

* [Hardware] No need to close LED

* [Hardware] Switch to jpigpio

* [Hardware] Initalize JPiGPIO in unit tests

* [Hardware] Use dutyCycle for LED dimming

* [Hardware] Add blink test to HardwareManager

* [Hardware] Fix PWM port

* [Hardware] Fix HardwareManagerTest

* [Hardware] Fix HardwareManagerTest

* [Hardware] Use waves for LED blinking

* [Hardware] Make blinking part of PWM

* [Hardware] Add API methods to hardware Manager

* [Hardware] Only start pigpio if on pi

* [Hardware] Merge PWM classes into GPIO

* [Hardware] Add Hardware stuff to VisionModules

* [Hardware] Remove random semicolon

Co-authored-by: Banks Troutman <btrout.dhrs@gmail.com>
2020-07-31 15:43:58 -04:00
Banks T
3f5898e73d Camera gain (#62)
* Add default QuirkyCamera, make quirks public in USBCameraSource

* Add gain send, fix PS3Eye VID/PID

* Fix ps3eye test
2020-07-28 20:18:04 -07:00
Banks T
429241f838 Stream FPS Cap (#64) 2020-07-28 21:24:36 -04:00
Banks T
48851470ae Various logging cleanups (#65)
* Various logging cleanups

* Move device info to string, apply spotless
2020-07-28 21:20:54 -04:00
Banks T
a6dc41f4da Fix VisionSource device filtering (#60)
* Fix VisionSource filtering

* Apply spotless

* Change method ordering

* change one single character
2020-07-28 02:54:42 -04:00
Banks T
37a6d4e424 Catch VideoException when setting camera properties (#58)
* Catch VideoException when setting camera properties

* Fix test settables, add log message
2020-07-24 16:46:33 -04:00
Banks T
91c1f8000e TimedTaskManager Exception Handling (#56)
* Refactor of TimedTaskManager to use custom Executor

* Apply spotless

* Fix exception logging

* Apply spotless

* Fix bad reference
2020-07-24 12:05:48 -07:00
Banks T
77fd6a84c8 Logging additions 2 (#55)
* Add overload to logger.error() for Throwable to print stack trace

* Replaced all e.printStackTrace() with logger.error()

* Log level dependent on dev or release
2020-07-24 09:06:54 -07:00
Banks T
22d7ccc74d Add camera name blacklist for bad devices (#54) 2020-07-23 22:37:25 -07:00
Banks T
0ca6fcc744 Task scheduling (#53)
* Add TimedTaskManager

* Remove LoopingRunnable, refactor ScriptManager

Refactored ScriptRunner as a runnable to be used with TimedTaskManager

* Add task cancellation

* Apply Spotless

* Fix scriptmanager call
2020-07-23 21:44:55 -07:00
Matt
c5be2941e8 Point config test to testconfigdir instead of default config dir (#49) 2020-07-19 19:43:02 -07:00
Prateek Machiraju
a6b5112faf Improve data flow to NetworkTables (#52)
Adds Packet class to represent byte-packed data.
2020-07-19 19:42:45 -07:00
Matt
82bb8c6e3c Add date to version (#46)
* Add date to version

* Include build date, use new format

* Use version string in main

* Fix hours/mins/secs
2020-07-19 13:41:41 -04:00
Banks T
ffec3ac4eb Pipe profiling (#50)
This class helps profile pipelines by measuring individual pipe processing times
2020-07-19 10:04:52 -07:00
Matt
9f18467a08 Covert to BGR before drawing on output (#48) 2020-07-18 20:27:07 -04:00
Matt
dde5674ac9 Change user list to CopyOnWriteArrayList (#47)
Prevents concurrent modification exceptions
2020-07-18 20:25:24 -04:00
Banks T
1b7ece994a Add MutatingPipe (#44)
* Add MutatingPipe, use references in MutatingPipes

* Apply spotless

* Fix NPE in ColoredShapePipeline
2020-07-18 17:15:58 -07:00
Banks T
7c35f3b975 OutputMatPipe fixes (#43)
* Fix OutputMatPipe, 3d target list

* Cleanup and reordering, re-add colorspace conversion
2020-07-18 02:28:08 -04:00
Matt
1c5712aa39 Draw contour index, fix frame provider static properties (#41)
* Fix frame provider's static properties not updating

* Draw contour index on stream

* Refactor magic numbers into params
2020-07-17 23:00:21 -07:00
Matt
768964c8fc Misc bugfixes (#39)
* Selectively send pipeline changes

* Make input and output both rotated

* Notify UI of driver mode change over NT

* Fix "show multiple"

* Rename extent to fullness, fix area filtering

This is a breaking change to docs (make sure we note area is out of 100 and is percentage)

* Apply stream divisor to both streams

Co-authored-by: Banks T <btrout.dhrs@gmail.com>
2020-07-17 20:05:03 -07:00
Matt
0d155d9c6a Add skew to NT API (#38)
* Add skew to NT API

* Delete old entries

* Fix NPE
2020-07-17 14:03:34 -07:00
Banks T
bac09bf430 Fix PSC causing lag via selective update broadcasting (#28)
* Fix PSC causing lag via selective update broadcasting

* add logging, update key

* Fix current pipeline setting selective send

Co-authored-by: Matt <matthew.morley.ca@gmail.com>
2020-07-16 22:37:18 -07:00
Banks T
53783d88d7 Fix NT driver mode set/get (#37) 2020-07-16 22:43:29 -04:00
Matt
061385f0b6 Add skew calculation support (#36)
This is a breaking change to PhotonLib.
2020-07-16 20:50:40 -04:00
Matt
264fb1570d Add default reflective pipeline (#35) 2020-07-16 19:18:01 -04:00
Declan Freeman-Gleason
8b46ad1cab UI Redesign (#22)
* Rework UI into a new, responsive layout

* Send two streams (only one is currently downscaled)
2020-07-13 19:34:31 -07:00
Matt
aed92e7132 [backend] Check file existance, use underscores in camera unique name (#33)
* Add more comments and logging, fix configManager barf, add underscores

* apply spotless

* Add more verbose logging

* Update VisionSourceManager.java
2020-07-13 19:41:36 -04:00
Xzibit
7a7f2ff91c ColourShape benchmark and moar docs (#11)
* Added benchmark

* Rebase

* [Server] ColouredShapePipeline Benchmarks and Documentation

* [Server] ColouredShapePipeline Benchmarks and Documentation

* Added benchmark

* Rebase

* [Server] ColouredShapePipeline Benchmarks and Documentation

* [Server] ColouredShapePipeline Benchmarks and Documentation

* [Server] ColouredShapePipeline Benchmarks and Documentation

* [CSP] Rebase off master

* [CSP] Remove unused variables

* [CSP] Make circles Mat private and final
2020-07-12 14:36:45 -04:00
Matt
54445dad35 [backend] Fix FPS calculation, display latency in UI (#31) 2020-07-12 13:37:04 -04:00
Banks T
30b4b8d111 Add keyed NT Data and listeners (#27)
* Add most of the missing NT data to NTDataConsumer

* Clean up unused data classes, refactor DataConsumer to CVPipelineResultConsumer

* Fix root table name and reference

* Update NTDataPublisher and VisionModule for listeners

* NPE fix, attempt to remove old NT Table on name change

* Fix NT connected log spam

* Apply spotless

* Move NT flush, fix raw data name
2020-07-12 12:29:30 -04:00
Banks T
0763e36b81 Pipe cleanups (#29)
* Pipe cleanups

* Remove redundant this qualifier
2020-07-12 11:58:01 -04:00
Banks T
b69ac3af2f Filter undesired video modes (#30) 2020-07-12 11:47:59 -04:00
Xzibit
03b2a66ecd [backend] Camera calibration (#10)
* Fleshed out pipeline

* Fixed pipeline empty mat

* Remove orig pipeline

* Remove gradle changes

* Added docs

* [Server] Camera Calibration

* [Server] Camera Calibration

* [Server] Camera Calibration

* [Server] Camera Calibration w/ PerViewErrors

* [Server] Camera Calibration w/ PerViewErrors

* [Server] Camera Calibration w/ PerViewErrors

* [Server] Camera Calibration w/ PerViewErrors

* [Server] Camera Calibration

* [Server] Camera Calibration

* [Server] Added logging to Camera Calibration
2020-07-11 19:44:22 -07:00
Banks T
9f1899b081 [backend] Logging additions (#24)
* Remove de_pest log level, add instanced shouldLog

* Rename Server, VisionProcess LogGroup to WebServer, VisionModule

* Rename Level to LogLevel

* Added lambda logger methods

* Updated Platform util class, added bootup logging

* Naming fix

* Fix errors, apply spotless

* Apply spotless
2020-07-11 19:43:19 -07:00