2019.2.1 Update Release
About FRCVision
This Raspbian-based Raspberry Pi image includes C++, Java, and Python libraries required for vision coprocessor development for FRC (e.g. opencv, cscore, ntcore, robotpy-cscore, Java 11, etc).
The image has been tested with both the Raspberry Pi 3 Model B and B+.
Features
- Web dashboard for configuring the rPi (e.g. changing network settings), monitoring the vision program (console, restart), changing CameraServer and NetworkTables settings, and uploading vision processing applications, all without the need for SSH
- Default application that performs simple streaming of multiple cameras; the image is "plug and play" for FRC dashboard streaming (just set your team number in the rPi web dashboard)
- Includes example C++, Java, and Python programs to use as a basis for vision processing code
- Designed for robustness to hard power offs by defaulting the filesystem to read only mode; safe to power directly from the VRM without an external battery
- Boots (power applied to vision program running) in less than 20 seconds
Getting Started
See http://wpilib.screenstepslive.com/s/currentCS/m/85074/l/1027253-what-you-need-to-get-the-pi-image-running for visual step-by-step installation instructions and additional documentation.
-
Download the .zip and use Etcher (https://www.balena.io/etcher/) to image a micro SD card. The micro SD card needs to be at least 4 GB. Note: a micro SD to USB dongle such as https://www.amazon.com/gp/product/B0779V61XB works well for writing to micro SD cards.
-
Put the micro SD card in a rPi and apply power. The initial boot may take as long as a minute, but later boots will be much faster (20 seconds or less).
-
Connect the rPi ethernet to a LAN or PC. Open a web browser and connect to http://frcvision.local/ to open the web dashboard. Note the image boots up read-only by default, so it's necessary to click the "writable" button to make changes.
What's Changed In This Release (since 2019.1.1)
Web dashboard
- Available USB cameras are now listed on the web dashboard, and cameras can be easily switched between different path options (e.g. by-id or by-path). Camera connection status has also been added. (#63)
- Windows EOLs are now properly converted to Unix style when uploading a Python application (#48)
- C++ applications or other applications greater than 128KB (that would be a big Python program!) can now successfully be uploaded (#62)
- Default stream settings can now be set (if custom application is used, requires updates to work; see examples section) (#61)
- Application directory fixed for on-Pi example applications (#47)
Image
- The full WPILib libraries are now installed (#54)
- Extraneous warnings from libjpeg seen with some cameras have been removed (#53)
- The first time the image is used, the Pi is now automatically rebooted after resizing the root filesystem. This ensures it's properly read only at first use (#42)
- Python console output is now unbuffered by default, making Python prints visible in the console window (#52)
- OpenCV headers are now included in the image (#38)
- BLAS has been replaced by OpenBLAS, which should improve numpy performance (#66)
Built-in streaming application
- Cameras are now kept open by default (#43)
- Implements the default stream settings set by dashboard (#61)
Examples
Note: Benefiting from these changes requires downloading the updated example .zip from the dashboard and merging your code changes into it.
- Several fixes to the C++ example. Required dependency libs and includes are now bundled in the .zip file (#41, #58, #59, #67)
- Java example required dependency .jar files are now put into the correct location in the .zip file (#59)
- Cameras are now kept open by default (#43)
- All examples implement the default stream settings set by dashboard (#61)
- Example README.txt files have been updated with instructions for building/deploying from desktop using the web dashboard (#57)
- The full WPILib libraries are now included in the dependencies provided with the example .zips (#54)