- Aruco pipeline now infers tag width from tag family like the AprilTag pipeline
- Removes unused Aruco and 200mm AprilTag models
- `VisionEstimation.estimateCamPosePNP()` now requires a target model instead of assuming 16h5
- Multitarget pipeline similarly infers target model of tag family now
- `PhotonPoseEstimator` can have target model set for on-rio multitarget
---------
Co-authored-by: amquake <noleetarrr@gmail.com>
- Fixes ArUco on picam
- Adds `ArucoPoseEstimatorPipe` for single-tag pose estimation
- Previously, `Aruco.estimatePoseSingleMarkers()` was used for tag pose estimation. This uses the default `SOLVEPNP_ITERATIVE` solver and I believe the method is removed in opencv 4.8. The `SOLVEPNP_IPPE_SQUARE` solver implemented is more appropriate for markers.
- Pipeline architecture cleanup
- Re-enables ArUco pipeline in UI
- Multi-tag support
ArUco detector support is still considered experimental at this time. This should enable a baseline of support for initial testing, but expect some quirks to remain across platforms.
closes#965
Had to disable the eslint rule that was causing the bug.
Disallows disabling driver mode when there are no other pipelines to swap to
Also adds icons for saving and canceling name edits
Adds the option to create a new pipeline in driver mode if there are no other pipelines
Adds disable prop to the driver mode switch on the camera settings page
* fix an issue where the fov isnt reset on error
* Fix issue with incorrectly reading fov on update
* Properly handle NPE in case of error
* Fix issue with vuetify comps not converting strings to numbers
* Formatting fixes
Fixes leftover bugs from #767 and #856
- Because new URLs aren't based on hash URL schemas, all the routes need to be updated to final paths instead of relative ones that were previously caught by the hash URL
- Fixed misc Vue warnings pointed out by @mcm001
Currently, there is a difficult-to-reproduce bug where the backend reports that camera calibration was successful in logs via the logger but then throws an exception causing the backend to return a 500 error code with no request body which causes the frontend to interpret this as a failed calibration attempt. This ultimately leads to the entire instance of photonvision crashing and requiring the entire pi to be restarted. It is believed this issue resides inside the ConfigManager's saving action following the calibration update but is not confirmed.
* Reordered ov video modes to be lowest-to-highest res
* Save off sensor model on init. Guard against low, crashy exposures.
* Pulled in matt's fixups from https://github.com/PhotonVision/photon-libcamera-gl-driver/suites/10144555465/artifacts/495489276
* Further autoexposure tweaks for picam v1
* Allow undercores in camera rename
* Additional guarding against output images being empty
* lock out auto-exposure on ov9281's
* Guarding stream pipelines against empty frames from cameras. Rearranged driver stream to resize first, then draw crosshairs (matchces with other pipelines now).
* NT Priority fixup - if client is sending commands on NT, its nt value should win over anything done from the UI
* Synchronous pipline adjustmet fix, method cleanup
* lint
* circle pipe and data publish bugfixes
* lint
* Pulled in matt's latest .so and re-enabled auto exposure on 9281's
* Reverted to front end using MJPEG streams. Added FPS limiting to the stream.
* formatting
* fixup - got handlers getting called on error to reload
* revised architecture to let a click open a new tab
Co-authored-by: Matt <matthew.morley.ca@gmail.com>
* wip support for a stats overlay
* WIP adding stream stats. But.... eeeh. Corporate.
* kbits over mbytes
* A ton more tweaks:
- Increased thread priority for streaming to reduce "stutter/slow" issues
- revised client side URL creation order to prevent the possibility of repeat-identical URL's
- Improved overlay to only be visible on mouseover, and fully centered in the screen
* wpiformat on js
* WIP adding second websocket handling for cameras
* just more WIP
* even more wip. Most java-side framework completed, but not yet debugged
* IT LIVES. Still needs lots of cleanup. But we're transferring and displaying data!
* moved down an architecture layer. Improved multiple-camera handling
* Additional WIP to help improve smoothness and performance, though not yet tested
* bugfixes galore
* tweak compression
* spotless
* more tweaks for handling slow/intermittent streams
* wpilibformat maybe?
* clang-format maybe?
* WIP - adding thinclient. I don't like it yet, it should be more auto-generated than it is.
* thinclient formatting fixups
* Reduced amount of empty send data by limiting to only one stream per client (which is all we really need). Framerate is up slightly, overhead is down.
* bugfixes, faster streaming, better mjpeg compression settings, thinclient working
* spotless and formatting
* cmon wpiformat....
* re-added mjpg streams
* added a loading GIF to imporve the feeling of responsiveness
* formatting
* urlparams and built-in thinclient
* wpiformat
* prevent wpiformat complaints
* Removed uint8 array and base64 conversion from client side
* Synced up js implementations for ws streaming
* formatting/spotless
* Add UI-side changes for invertable hue slider
* Add hue inverted range
* Add new slider backgrounds to threshold tab
* Run spotless
* Updated libpicam.so to artifact built from commit c458bab87740 in that repo on gerth2's pi.
* undo the java-side hack since isVCSMSupported is fixed
* Hook up hue inversion frontend to backend and UI tweaks
* Remove unused .flipped class
* Fix hueInverted name in Vue.js store
Co-authored-by: Declan Freeman-Gleason <declanfreemangleason@gmail.com>
Co-authored-by: Matt <matthew.morley.ca@gmail.com>
Co-authored-by: Chris Gerth <chrisgerth010592@gmail.com>
* Fixup colored shape backend code
* More colored shape stuff
* Start adding shape change to drawing
* Mostly works!
* Add powercell image for shape test mode
* Make super-duper-sure to release stuff
Fixes colored shape leak
* Move approx poly dp into Contour
* Adjust epsilon threshold
* Add dialog to change pipeline type
* Run spotless
* Make yes red :>
* Move "no" button
* Fix duplication/deletion name logic and switching
* Fix compilation errors from rebase
* Update VisionSourceManager.java
* Update type dialog, remove duplicate popup
The dropdown still switches even if the user says "no" tho
Co-authored-by: Banks Troutman <btrout.dhrs@gmail.com>