Commit Graph

1715 Commits

Author SHA1 Message Date
Craig Schardt
8ff0d93c1f Improve network management (#1478)
This PR changes the way that photonvision interacts with nmcli to control networking on the coprocessor. Instead of modifying an existing connection, Photonvision adds new connections for DHCP and Static IP configurations. It then activiates the proper one at startup and any time that the network configuration is changed.


It also now uses the interface name and not the connection name and checks that the interface is available before making any changes. If the saved interface is not found, it updates the stored interface name and applies the network settings to the current interface. This should minimize the failure to control the network if the network interface wasn't available when PhotonVision first booted.

One other benefit of not altering the default configuration is that, if PhotonVision fails to run for any reason, the device can be accessed using the original networking configuration.

The code has been tested on an OrangePi5 and and a Raspberry Pi 4.

Addresses: #1261
2024-10-20 22:23:50 -05:00
Cameron (3539)
b38de6b506 Calibration Rotation! (#1464)
Rotate camera calibration coefficients based on camera rotation. Probably. Seems to work. Maybe.

---------

Co-authored-by: Matt <matthew.morley.ca@gmail.com>
2024-10-19 01:23:23 -04:00
Cameron (3539)
388b3fa2ef Default 36h11 (#1470) 2024-10-14 22:33:03 -04:00
Cameron (3539)
028b6ea62f Fix reflective null points (#1469) 2024-10-14 20:31:19 -04:00
Cameron (3539)
c961f1e22e Fix apriltag detection draw bug (#1467)
We accidentally copied more settings then we wanted. This adds an
annotation that we can mark variables with that will prevent them from
being copied when we switch pipeline types.
2024-10-14 20:30:27 -04:00
Cameron (3539)
189da52a77 Fix aruco draw (#1468)
Someone hard-coded the 16h5 model. Additionally, the April tag pipeline
redistorts the points before drawing them, so let's do that as well.
2024-10-14 20:15:08 -04:00
Cameron (3539)
48fc88c5e9 ChArUco: adjust detector params, hide unused (#1463) 2024-10-13 16:42:53 -04:00
Matt
30ee91379e Copy common fields when changing pipeline type (#1461)
Preserve common AdvancedPipelineSettings fields when switching pipeline types. This includes camera resolution, exposure settings, and stuff
2024-10-13 14:52:13 -04:00
Matt
353a8eaaec Add FMS info to snapshot names (#1460)
Supersedes #464

Co-authored-by: Ofir Siboni <050ofir@gmail.com>
2024-10-13 12:47:57 -04:00
Cameron (3539)
09b1bb9e22 Fix client log view (#1459)
Someone forgot to add the timestamp.
2024-10-13 02:13:21 -04:00
Matt
26f3a9977b Create AprilTag pipeline by default (#1458) 2024-10-13 01:38:25 -04:00
Cameron (3539)
0766d0e802 Fix large calibration datasets crashes (#1453)
The target list in networktables is limited to 127 items. When you
capture more than 127 calibration images it breaks this limit and errors
out and dies. Do not publish calibration targets to nt. And also move cal images into their own folder
2024-10-13 01:29:17 -04:00
Cameron (3539)
d9b6199cf0 Dont send SolvePNPEnabled in drivermode. (#1454)
There are no settings for solvePNPEnabled while in driver mode but the
UI tries to set it. Let us not do that.
Fixes #1377

Co-authored-by: Chris Gerth <gerth2@users.noreply.github.com>
2024-10-10 23:27:16 -05:00
Chris Gerth
91da7af171 latest is correct is not correct (#1455)
Ubuntu 24 borked for most of our CI. something to do with glibc


https://discord.com/channels/725836368059826228/725846784131203222/1294138369177157832

it always should have been at a fixed version. Now it is.
2024-10-10 23:13:58 -05:00
Cameron (3539)
471c90e8fa UI Message Passing (#1448)
Bring the UI setting changes in thread with the camera.
2024-10-08 23:06:43 -04:00
Cameron (3539)
142e22ff24 Object detection OOM crash (#1451)
Don't return before we release the object.
2024-10-08 22:01:51 -04:00
Cameron (3539)
c4b273e737 Reduce pipeline use-after-free errors (#1447) 2024-10-07 11:35:18 -04:00
Stephen Just
cd9dd07282 Camera view updated to better respond to state (#1437) 2024-10-05 22:26:14 -07:00
George Horsey
3225c079d3 Update calibration.md OpenCV Docs Link (#1445)
Link had ">" at the end of the URL causing a 404 error.
2024-09-30 23:40:41 -04:00
Craig Schardt
95d55dc977 Add-OrangePi5max-image (#1444)
Completes #1420
2024-09-30 22:21:44 -05:00
Jade
95236e5045 [docs] Fix usage of getTagPose (#1442) 2024-09-29 11:43:02 -04:00
Jade
30e930f051 [docs] Fix invalid max error bits recommendation (#1443) 2024-09-29 11:42:19 -04:00
Jade
68adfe6034 [docs] Remove gerth2 links (#1441)
Resolves https://github.com/PhotonVision/photonvision/issues/1418
2024-09-29 09:55:36 -04:00
Christopher Mahoney
abe95dfaa0 Update poseest.md (#1439)
This space is the root cause of failures in #1437.

RE: #1430
2024-09-29 06:55:46 -05:00
Chris Gerth
354f11a6d6 Fix broken links (#1430) 2024-09-24 18:19:49 -05:00
Banks T
b7cab0431d See3Cam_24CUG Quirks (#1302)
Co-authored-by: Matt <matthew.morley.ca@gmail.com>
Co-authored-by: Chris Gerth <chrisgerth010592@gmail.com>
2024-09-24 18:18:59 -05:00
Chris Gerth
a8daff3ed4 Revised 9782 defaults (#1431)
revised order to prevent some randomness around init
2024-09-24 00:02:16 -05:00
Matt
a0c85fc95f Create photon-targeting-JNI framework (#1428)
Initial framework for adding JNI libraries. Auto generated JNI headers and sticks native libraries into the JAR (and adds to class path for testing)
2024-09-23 22:44:09 -04:00
Matt
f33218c49c Add message UUID and type names to hash and message defintion (#1409) 2024-09-22 22:27:13 -04:00
Stephen Just
360298cc24 Fix error being printed to console on Chrome when navigating UI (#1429)
Chrome prints an error to the console when you have `<img src="null" />`

The path `//:0` can be used for an empty image and Chrome will not raise
an error.
2024-09-21 16:11:58 -04:00
Christopher Mahoney
27cb69c094 Support selecting Object Detection models (#1359)
This PR is for part 1 of #1354. It focuses on adding a model selection
interface for models that exist in `photonvision_config/models/`. Upon
completion we can ship more than 1 model and users could upload their
own through `ssh` without deleting the shipped model. This PR also adds
the abstractions need to support more DNN backends (say OpenCV, or RPI
AI Kit)

Up next is adding a CRUD interface for managing models through the UI.
2024-09-21 16:08:00 -04:00
Craig Schardt
24fb6af5f4 Fix setting gain to max on cameras that don't have a gain quirk (#1424) 2024-09-15 23:40:27 -04:00
Cameron (3539)
546058593e Roll Back to 2024.3.2 (#1423)
Roll back to 2024.3.2 to get some good testing on actual robots.
2024-09-15 20:01:11 -04:00
Chris Gerth
9e6a066561 Examples Clean-Up (#1408) 2024-09-15 00:10:02 -04:00
Christopher Mahoney
596c87519c fix: reflection bug in onDataChangeEvent (#1416) 2024-09-12 14:08:57 -04:00
Drew Williams
06f0f7d66f Fixes windows not allowing auto exposure prop for the ov2311 (#1407) 2024-09-03 22:17:10 -04:00
Devon Doyle
c38b50911d [photon-client] Log Viewer Improvements (#1385)
Fixes the following issues with the client log viewer:
- Inconsistent and excessive spacing between log entries
- Lack of responsiveness to window size or scaling

Adds the following features to the log viewer:
- Auto-scroll if scrolled to the bottom
- Ability to clear logs on button click
- Search function to filter logs
- Displays the time the frontend captured a log and displays that timestamp in hh::mm::ss in the log viewer
- Allows logs to be filtered to be after a certain time
- General styling refinements to increase usability

---------

Co-authored-by: Sriman Achanta <68172138+srimanachanta@users.noreply.github.com>
2024-08-31 18:22:07 -04:00
Matt
169595e56e Auto-generate packet dataclasses with Jinja (#1374) 2024-08-31 13:44:19 -04:00
Mohammad Durrani
c19d54c633 Removed CalibDB (#1396) 2024-08-31 12:31:49 -04:00
Matt
738e3646f7 Photonlibpy - Best Target Function #1223 (#1406)
Supercedes https://github.com/PhotonVision/photonvision/pull/1223

---------

Co-authored-by: vladb <vlad.bondar@frc5113.com>
2024-08-31 12:30:09 -04:00
Jade
50ea32c82d Fix getTarget docs (#1404) 2024-08-29 01:20:03 -04:00
Stephen Just
8c09cd2cb3 Populate CameraSettingsStore with placeholder value if no cameras are present (#1401) 2024-08-25 08:10:45 -04:00
Stephen Just
c33fd8362d [photon-client] Bump node to V18 (#1402)
* Bumps minimum NodeJS requirement to v18 (already used as part of
official builds)
* Prerequisite for latest VueJS
2024-08-24 22:58:33 -04:00
Cameron (3539)
2e4be684be Update RPI Image 7/4/24 (#1373)
Bump libcamera version to support new pi image.
2024-08-22 21:10:03 -04:00
Cameron (3539)
ed6cf0f5dc Document Charuco (#1398)
You know... I made those charuco changes now I need to document how it
works... basic stuff.

---------

Co-authored-by: Matt <matthew.morley.ca@gmail.com>
2024-08-19 20:35:02 -04:00
Mohammad Durrani
4643f86438 Switch from RST to MyST Markdown (#1395) 2024-08-18 14:05:23 -04:00
vic123
0493ef9133 Document how to install PhotonLib of specific version (#1392) 2024-08-18 00:37:45 -04:00
Craig Schardt
c5c2a7a6f9 Add OrangePi5b image to generated images (#1394) 2024-08-17 14:20:19 -04:00
Chris Gerth
f1d1d325e0 Move to using Absolute Exposure Range (#1352)
Uses logic in
https://github.com/PhotonVision/photon-libcamera-gl-driver/pull/16 to
push the ov9281 down to its true minimum exposure.

Updates UI to list the exposure settings in ~~microseconds.~~ Native
units - not everyone works in microseconds.

Does its darndest to actually try to set the exposure in
~~microseconds.~~ Native Units. To do this...

Lifecam is funky when doing this - [cscore limits the exposure settings
to certain quantized
values](https://github.com/wpilibsuite/allwpilib/blob/main/cscore/src/main/native/linux/UsbCameraImpl.cpp#L129).
Add a new camera quirk to allow that.

~~Updated camera quirks to re-evaluate every camera load (rather than
recalling from settings - this shouldn't be necessary)~~ This should be
rolled back, needed for arducam type selection.

Updated camera quirk matching logic to make PID/VID optional, and
basename optional (and only match trailing characters). This enables
mirroring CSCore's logic for identifying lifecams by name.

Updated the USBCamera to primarily use cscore's exposed property names.

Since camera manufacturers use a potpourri of names for the same
thing....

For nice-to-have settings: new soft-set logic to try all possible names,
but gracefully pass if the property isn't there.
For required settings: Search a list for the first setting that's
supported, fail if none are supported.

More logging of camera properties to help debug.

Note: most of this work is because cscore doesn't directly expose a
massaged exposure-setting-absolute API (and, given what we've seen,
probably _shouldn't_, this struggle is not for the faint of heart).

---------

Co-authored-by: Matt <matthew.morley.ca@gmail.com>
2024-08-17 10:02:59 -05:00
Craig Schardt
dbe566cb55 Update install.sh for OPi5 Ubuntu 24.04 (#1390)
This updates the install script to work correctly on Ubuntu 24.04
versions of the Orange Pi 5 images.

Changes include:
- installing libatomic1
- disabling networkd-wait-online if using Network Manager
- using systemctl instead of service to detect if photonvision is
running
- detecting if this is a RK3588 cpu and enabling all cores
2024-08-13 10:54:26 -04:00