Commit Graph
76 Commits
Author SHA1 Message Date
Peter Johnson a4a684b540 Add FIRST BSD license to repo and include with examples (#109) 2019-02-17 18:10:49 -08:00
Peter Johnson 33ff927f3d Install gstreamer (#105)
This also builds OpenCV with gstreamer support.
2019-02-15 22:00:40 -08:00
Peter Johnson 6cf8391b76 Simplify OpenCV cmake flags (#104)
Now that we're building in a more standard way it's not necessary to
manually override these.  The only override kept is to build jpeg (as
we are tweaking it to not output JPEG decompression errors).
2019-02-11 01:37:13 -08:00
Peter Johnson 4c3f217ffa Build libraries with Release (#103)
In particular, OpenCV has a significant performance difference (14x) on key
operations (RGB to HSV conversion) between -O2 and -O3.
2019-02-11 01:35:54 -08:00
Peter Johnson 909d94c7de Run python3 explicitly for python applications (#102)
This avoids the need for a shebang line.
2019-02-11 00:09:19 -08:00
Peter Johnson 01f025ac12 Add libpixy2 (C++ and Python) to image (#85) 2019-02-09 21:52:28 -08:00
Peter Johnson ee70b90853 Python example: Use UTF-8 encoding when opening frc.json (#101) 2019-02-09 21:51:55 -08:00
Peter Johnson 6ad1d2eb92 Bundle Windows make with C++ example (#84) 2019-02-05 20:37:48 -08:00
Peter Johnson c85fd9f33c Revamp image to build dependencies as part of stages (#83)
Fixes #17.

Stage 2 is fairly minimal, stage 3 builds/installs OpenCV and WPILib et al, and stage 4
builds/installs the FRCVision webdash and adds the vision examples.

Other changes:
- OpenCV compiled with ffmpeg, OpenBLAS, and libgtk (fixes #79, fixes #80)
- OpenBLAS added to image (fixes #65)
- C++ Makefile is more easily extensible (fixes #71)
- Sources for everything are bundled into image into /usr/src
- README updated (fixes #16)
- pkg-config files for wpilibc et al are now installed and C++ Makefile uses them (if compiled local to Pi)
- Both dynamic and static libs are included in image

The only downside of all these changes (particularly the ffmpeg, OpenBLAS, and libgtk inclusion)
is the image size is now over 3GB (800MB compressed). The previous image didn't quite fit on a
2GB card however.
2019-02-02 23:37:18 -08:00
Peter Johnson 08163c0681 Fix ordering between CameraServer.getInstance and UsbCamera creation (#69)
If the CameraServer instance is started after the UsbCamer is created, it
never gets the source created event to actually build the NetworkTable table.
2019-01-13 21:23:44 -08:00
Peter Johnson 64b9491e15 Include libopenblas-base in image (#66) 2019-01-13 18:26:54 -08:00
Peter Johnson c36a761a33 Java example README: note that Java 11 is required (#68) 2019-01-13 17:44:38 -08:00
Peter Johnson 03dae15ddf Add stream settings to webdash and examples (#61) 2019-01-13 16:59:08 -08:00
Peter Johnson 42d270870e Fix C++ example Makefile for cross-compilation (#67)
CXX can't be conditional.
2019-01-13 16:45:39 -08:00
Peter Johnson 4d2e328b12 List available cameras on web dashboard (#63)
- Available cameras can be added with a specific path
- Individual cameras show connection status
- Individual cameras show a list of alternate paths
2019-01-13 15:44:59 -08:00
Peter Johnson b0ecb03407 Handle large file uploads (#62)
Previously the upload function only handled files of less than 128 KB.
2019-01-11 23:14:41 -08:00
Peter Johnson f0982f2f17 Update example README.txt files (#57)
* C++ libraries are now included in the downloaded zip

* It's no longer necessary to override CXX
2019-01-11 13:21:20 -08:00
Peter Johnson 47c38400d1 Add all opencv libraries to C++ example (#58) 2019-01-11 13:16:27 -08:00
Peter Johnson e17886dafc Include libs and includes in C++ example zip file (#59)
- Fix up C++ Makefile for cross-compilation
- Put java depedency jars in correct location in java example zip file
2019-01-11 13:16:00 -08:00
Peter Johnson 63120aee69 Build wpilibc and wpilibj and include in image (#54)
This is mainly useful for Shuffleboard and SmartDashboard classes.
2019-01-11 13:13:15 -08:00
Peter Johnson f533ffcb59 Update dependencies to latest (2019.2.1) (#55) 2019-01-11 11:15:36 -08:00
Peter Johnson f511557b89 Default Python output to unbuffered (#52) 2019-01-11 03:20:41 -08:00
Peter Johnson f904336fb8 Build multiCameraServer as part of "all" target (#56) 2019-01-11 03:18:55 -08:00
Peter Johnson 63f3040f00 Include opencv headers in the image (#38)
They were built, but not extracted to the actual filesystem.
2019-01-11 01:17:20 -08:00
Peter Johnson 7ff15793cc Disable extraneous data warning from libjpeg (#53)
These are common with some USB cameras.
2019-01-11 01:14:51 -08:00
Peter Johnson f2e493831a Reboot at end of one-time filesystem resize (#42)
This results in the first "real" boot being read-only instead of half
writable (/boot read-only but / writable).
2019-01-11 01:14:24 -08:00
Peter Johnson 0e9d2fbb99 Set connection strategy to keep open
Apply to both default camera server and examples.
2019-01-11 01:13:09 -08:00
Peter Johnson 3f2ab23563 Move default multiCameraServer from allwpilib to tools 2019-01-11 01:13:09 -08:00
Peter Johnson e78e471f97 Fix application directory for on-Pi examples (#47) 2019-01-11 01:11:03 -08:00
Peter Johnson bb71953788 Convert windows EOL to unix EOL in Python uploads (#48) 2019-01-11 01:10:37 -08:00
Peter Johnson 7c5b84d7ef Fix the C++ example (#41)
- Build with -pthread
- Detach the thread to avoid std::thread exception
- Remove __RASPBIAN__ check (it's not defined by the on-Pi compiler)
2019-01-10 00:10:42 -08:00
Peter Johnson ddbf6b4b22 Update pybind11 package to latest raspbian version (#44) 2019-01-08 19:41:41 -08:00
Peter Johnson 319af970ba Fix copy camera settings (#30) 2019-01-03 15:58:19 -08:00
Peter Johnson c702b9421a Add hooks for image processing to examples (#27)
Fixes #23.
2019-01-02 23:12:32 -08:00
Peter Johnson aaf6f88c9c Add button to copy camera settings from camera (#26)
Fixes #24.
2019-01-02 22:31:55 -08:00
Peter Johnson d0a2bf8deb Update dependencies (#25) 2019-01-02 20:33:28 -08:00
Peter Johnson c6a2a7a326 Change hostname from raspberrypi to frcvision (#22)
This will help avoid conflicts with other raspberrypi's that may be on
the local network.
2019-01-01 22:25:11 -08:00
Peter Johnson 5c8fb97259 Remove NOOBS export (#20) 2019-01-01 22:00:02 -08:00
Peter Johnson d174460384 Add gdb to image (#19) 2018-12-30 11:47:28 -08:00
Peter Johnson c73d97c9aa Fix java example download (#18)
The socket needed to be in blocking mode for sendfile to work with large
file lengths.
2018-12-30 09:12:12 -08:00
Peter Johnson 43c710ec39 Build wpilib with cmake instead of gradle (#15)
* Move java lib install to /usr/local/frc/java
* Build and install both debug and normal OpenCV libraries
* Install OpenCV cmake files
* Build OpenCV Java with version 8 target
* Build static OpenCV for static allwpilib binaries
* Move netconsoleTee install to /usr/local/frc/bin
* Move multiCameraServer default app install to /usr/local/frc/bin
* Install more FRC binaries
* Fix /home/pi/zips/java-multiCameraServer.zip owner to pi:pi
* Remove azure 60 minute timeout
* Add openjdk-8-jdk to Azure docker image (this is needed for cmake to find javah as only cmake 3.9 is available)
2018-12-30 02:07:22 -08:00
Peter Johnson 0c1008defa Set UID, GID, and executable bits on uploaded application (#12)
Also remove old application rather than replacing directly, so it can be replaced while running.
2018-12-30 00:13:52 -08:00
Peter Johnson de6f59548a Persist vision log enabled setting on client side (#13) 2018-12-28 22:48:07 -06:00
Peter Johnson 170962deff Enable rPi camera by default (#7)
Fixes #3.
2018-12-28 22:47:31 -06:00
Peter Johnson b1877d5365 Add azure pipeline (#10)
Closes #6.
2018-12-25 15:57:40 -06:00
Peter Johnson 3a1ecb9c97 Add config 2018-12-21 22:33:23 -08:00
Peter Johnson a204f295b9 Remove stage3 and stage4 (#8) 2018-12-21 22:27:03 -08:00
Peter Johnson 7a7125b4f3 Properly symlink supervise in /service/camera/log 2018-12-21 01:24:11 -08:00
Peter Johnson ced1d8b736 Fix zips directory 2018-12-21 00:37:10 -08:00
Peter Johnson 2c8ecf21b5 Add application uploading 2018-12-21 00:08:34 -08:00
Peter Johnson a6b151e7bd Fix vision settings save 2018-12-20 14:13:11 -08:00
Peter Johnson 1e09760688 Move FRC_JSON and DHCPCD_CONF to Makefile 2018-12-20 13:36:38 -08:00
Peter Johnson c559efc53a Implement vision settings and start adding app settings 2018-12-20 13:26:14 -08:00
Peter Johnson ee8ffe0636 rpiConfigServer: Force brand icon to fixed size
This fixes the size across all browsers.
2018-12-18 22:17:19 -08:00
Peter Johnson af4bf84185 frcvision.js: Fix tabs vs spaces 2018-12-17 02:15:11 -08:00
Peter Johnson 8d2e358ea3 rpiConfigServer: add gnu-debuglink 2018-12-17 01:54:20 -08:00
Peter Johnson b674a68516 Ignore multiCameraServer source files
These are copied from allwpilib during build
2018-12-17 00:56:37 -08:00
Peter Johnson e33285763c rpiConfigServer: Add NetworkSettings, other cleanups 2018-12-17 00:54:25 -08:00
Peter Johnson 7b78c412b0 Update rpiConfigServer formatting 2018-12-14 16:36:56 -08:00
Peter Johnson bea3ad80b1 Build multiCameraServer 2018-12-11 20:13:14 -08:00
Peter Johnson d37d27d2e1 Update .gitignore 2018-12-11 20:04:11 -08:00
Peter Johnson 98842b6728 Add rpiConfigServer to tools 2018-12-11 20:04:00 -08:00
Peter Johnson 88f549108f Add java, cpp, and python examples 2018-12-08 00:45:27 -08:00
Peter Johnson 1768bdaa4c Build external dependencies local to tree 2018-12-03 00:04:18 -08:00
Peter Johnson 4632d11a1e Tweak cscore.so build a bit 2018-11-30 21:55:41 -08:00
Peter Johnson 26d7b94837 Use service log feature for robust kill/terminate 2018-11-30 21:26:58 -08:00
Peter Johnson 78f99637b9 Add pynetworktables and robotpy-cscore 2018-11-30 21:05:14 -08:00
Peter Johnson a0a68d9a7a Use netconsoleTee instead of netconsoleServer 2018-11-30 20:03:52 -08:00
Peter Johnson bc480f82ca Put the jar files in /home/pi/javalibs/ 2018-11-30 20:01:28 -08:00
Peter Johnson e2e18ddbc0 Use setuidgids instead of sudo -u for setting groups 2018-11-30 19:58:54 -08:00
Peter Johnson d0c39e088b Use sudo instead of setuidpid
This keeps the supplementary groups, most importantly video, which is
needed to access the video devices.
2018-11-30 14:09:18 -08:00
Peter Johnson 90e5ced278 Include the opencv jar in the image. 2018-11-30 12:01:43 -08:00
Peter Johnson 1427b998cc Put jars in /home/pi so they're on the default classpath 2018-11-30 11:45:19 -08:00
Peter Johnson 363cd449d2 Fix configServer supervise for read only filesystem 2018-11-30 03:22:07 -08:00
Peter Johnson dd04f57093 Various updates, start including rpiConfigServer
* Provide shell script to copy in external dependencies
* Install Python 3 and build-essential
* Install OpenCV libraries including Python 3 bindings
* Install rpiConfigServer as service
* Improve service scripts with exec, netconsoleServer
* Don't include JDK debug info (shrinks zip size a lot)
* Include libraries, headers, and jars for wpiutil, cscore, ntcore
2018-11-30 02:40:39 -08:00
Peter Johnson d687acb744 Initial FRCVision commit. 2018-11-16 00:52:05 -08:00