Skip to content

WPILibPi 2021.2.1 Release

Compare
Choose a tag to compare
@PeterJohnson PeterJohnson released this 19 Jan 05:20
5ae5603

About WPILibPi (formerly 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, pynetworktables, Java 11, etc). New for 2021, WPILibPi now comes in two variants, the "base" image for vision coprocessors, and an image designed for use with Pololu Romi 32U4 based robots.

The image has been tested with the Raspberry Pi 4 and 3B, but should also work on other models. Note: due to the mechanical mounting configuration of the Romi, there is minimal space for a heatsink on the Pi, so the 3 is recommended for Romi use.

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 as well as camera switching; 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
  • All wireless functionality disabled (both WiFi and Bluetooth), so legal for competition use out of the box.

Romi Features

  • Built-in WebSockets-based interface to robot code running on a desktop computer
  • Web-based configuration of WiFi networking; supports both bridge and AP mode (including DHCP server in AP mode)
  • The Romi image is preconfigured as a WiFi Access Point network with SSID "WPILibPi-########", WPA2 passphrase "WPILib2021!", and default IP of 10.0.0.2
  • 32U4 firmware imaging through web dashboard

Getting Started

See https://docs.wpilib.org/en/stable/docs/software/vision-processing/wpilibpi/index.html (for the base image) or https://docs.wpilib.org/en/stable/docs/romi-robot/index.html (for the Romi) for visual step-by-step installation instructions and additional documentation.

  1. Download WPILibPi_image-2021.1.1.zip (or WPILibPi_image-2021.1.1-Romi.zip for the Romi image) and use Etcher (https://www.balena.io/etcher/) to image a micro SD card. The micro SD card needs to be at least 8 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.

  2. Put the micro SD card in a rPi and apply power. The initial boot may take as long as a couple of minutes (depending on SD card size), but later boots will be much faster (20 seconds or less).

Base image: Connect the rPi ethernet to a LAN or PC. Open a web browser and connect to http://wpilibpi.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.

Romi image: Connect to the WiFi SSID "WPILibPi-########" (the number is unique based on the Pi's internal serial number), WPA2 passphrase "WPILib2021!". Open a web browser and connect to either http://10.0.0.2/ or http://wpilibpi.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 2021.1.1)

  • Romi: vision programs will now automatically connect NetworkTables to the robot program (#187)
  • Romi Web Service updated to 1.1.1
    • [breaking] IMU axes have been updated to follow NED + Right Hand Rule conventions
    • [bugfix] Fixed a bug in gyro calibration which resulted in incorrect offsets being calculated and saved
    • [feature] Gyro rate smoothing to help with accuracy
  • WPILib updated to 2021.2.1 (#188)
  • Added machine learning dependencies to image (#186)

Hashes

MD5 Hashes

25ab2f64465ac92b1a4fe538ff3e7066  cpp-multiCameraServer.zip
0f2eb54806add61d84dccd7dc6b5c0b0  java-multiCameraServer.zip
11dadc88c86c754d33006f95292ed4a7  python-multiCameraServer.zip
858b2dd0dac161ce6e8444fb09a033f4  WPILibPi_image-v2021.2.1-Romi.zip
15e1ad60d32f80aa3df2fd6c5c45364e  WPILibPi_image-v2021.2.1.zip

SHA256 Hashes

a34519bb0530acc226f0a03d81998812d27d2a2b1c263c19c71b69b3a30bd42c  cpp-multiCameraServer.zip
6c865df32429db778e19f75faf108aa53a4e5716962acb211529a861a4b2e503  java-multiCameraServer.zip
79dbf16817794a18fde57398eb047d588ca36b66f59a14ae35eab2dbbf75c7e3  python-multiCameraServer.zip
746d3ebf73188a9537aeb90cb2380eab134296aec9dead312de82d913ec58f20  WPILibPi_image-v2021.2.1-Romi.zip
f75671d02475b8dbec2dc69007b58df09b89ad70c49f58771218baba2fdc511f  WPILibPi_image-v2021.2.1.zip