Commit Graph

303 Commits (c85fd9f33c1765f5abdf297c988caa1491e59ab1)

Author SHA1 Message Date
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
David Vo 02d5c468a2 Fix docstrings in Python example (#78) 2019-01-18 22:38:41 -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
Błażej Sowa 2d70ac83f8 Allow custom deploy zip filename 2019-01-01 22:00:28 -08:00
Błażej Sowa 4a0f5e87b7 Allow custom image filename 2019-01-01 22:00:28 -08:00
Sam Tygier 9436cb7f94 Add commandline argument for config file
A config file can be specified when running build, e.g.:

  ./build.sh myconfig
2019-01-01 22:00:28 -08:00
Sam Tygier c80e5e9100 Allow enabling ssh server from config
Add ENABLE_SSH option
2019-01-01 22:00:28 -08:00
Sam Tygier acb0612ea4 Allow setting up wifi from config
Add WPA_ESSID, WPA_PASSWORD and WPA_COUNTRY options to config.
2019-01-01 22:00:28 -08:00
Sam Tygier bc7971ef03 Allow setting user name and password from config
Add FIRST_USER_NAME and FIRST_USER_PASS variables that can be set
in the config (or enviroment). Defaults to the standard pi and
raspberry.
2019-01-01 22:00:28 -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