Is there a WPILibPi image that runs on the Raspberry Pi 5?
Not yet. Iām hoping to get to it this weekend.
Wow, thatās what I call service! Thank you.
is there an any update about the new version? if so we would appreciate a link to download the image.
Iām working on a PR (Update to bookworm by PeterJohnson Ā· Pull Request #233 Ā· wpilibsuite/WPILibPi Ā· GitHub). It builds an image that mostly works, but the network settings page in the webpage is broken because the new OS version switched to NetworkManager.
Thanks for working on this Peter! We canāt wait to try out our new Pi5s for this yearās tag and game piece recognition.
Weāre hoping for fewer false positives with the new tags, and faster frame rates with the new Pis and libraries.
We really appreciate your efforts!
Is there a new wpilibpi image for 2024? I canāt see any updates on the git. The 2023 version does not seem to have the robotpy with wpimathās objectToRobotPose, so what weāve been testing on windows updating the pose from tags canāt easily be transfered to the pi.
Thanks!
I stalled out on making the webserver changes, but I can release a ābetaā 2024 image (with the latest 2024 released libraries) on Friday.
I just released a 2024.1.1-beta-1 release. This bookworm-based image has WPILib and RobotPy 2024.3.1, as well as Raspberry Pi 5 support. The main thing that I know is broken is the ability to change network settings via the webdash.
Thanks!
I downloaded and put on our code. So far it works great. No problem configuring cameras despite messages about
mount: /boot: mount point not mounted or bad option. dmesg(1) may have more information after failed mount system call.
Still trying to figure out how to assign a static IP on bookworm . It didnāt allow me to save changes with sudo nmtui, so I just made a /etc/network/interfaces.d/eth0 with the following contents (Weāre 2429, and I like having the pis at 12, 13, etc):
allow-hotplug eth0
iface eth0 inet static
address 10.24.29.12/24
netmask 255.255.255.0
gateway 10.24.29.1
I hope Iām missing something obvious here but when I attach local Module 3 Standard 12MP cameras to either/both camera connectors I receive the following error
CS: ERROR: ioctl VIDIOC_QBUF failed at UsbCameraImpl.cpp:723: Invalid argument (UsbUtil.cpp:156)
CS: WARNING: rPi Camera 0: could not queue buffer 0 (UsbCameraImpl.cpp:724)
Thanks for any pointers that can lead me down the proper path.
Has anyone tested cscore with the new libcamera stack? You might be stuck using libcamera directly
Iirc we had a quick fix for photon at some point for an issue like this before we just did full libcam.
Maybe the WPILib Apriltag detector and pose estimator are out of scope of the WPILibPi. It looks like it would be close to working but I have a few jar
files missing on the example project. Maybe the native files donāt exist and the detector and estimator will never be part of WPILibPi. They are too slow on the roboRIO and I thought the RPi might be workable.
The intent is for them to be there. Iāll look into it. Itās probably just a miss from the build script to get them copied over.
To get the example Java to show well in VSCode āprecompileā on my Windows 10 PC and to build I added
build.gradle implementation files('jackson-annotations.jar') implementation files('wpiunits.jar')
(stolen from a roboRIO project)
Opencv version was 460 in build.gradle so I changed to 480.
Then I ran the build on the RPi and got this error
Starting camera ārPi Camera 0ā on /dev/video0
CS: rPi Camera 0: Attempting to connect to USB camera on /dev/video0
CS: rPi Camera 0: Connected to USB camera on /dev/video0
CS: rPi Camera 0: SetConfigJson: setting video mode to pixelFormat 1, width 160, height 120, fps 30
could not load class edu/wpi/first/math/geometry/Quaternion
Exception in thread āmainā java.lang.NoClassDefFoundError: us/hebi/quickbuf/ProtoMessage
at edu.wpi.first.math.geometry.Quaternion.(Quaternion.java:411)
at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:388)
at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:232)
at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:174)
at java.base/jdk.internal.loader.NativeLibraries.findFromPaths(NativeLibraries.java:315)
at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:287)
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2427)
at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:818)
at java.base/java.lang.System.loadLibrary(System.java:1993)
at edu.wpi.first.util.RuntimeLoader.loadLibrary(RuntimeLoader.java:91)
at edu.wpi.first.apriltag.jni.AprilTagJNI.(AprilTagJNI.java:54)
at edu.wpi.first.apriltag.AprilTagDetector.(AprilTagDetector.java:213)
at AcquireApriltagThread.(AcquireApriltagThread.java:21)
at Main.main(Main.java:345)
Caused by: java.lang.ClassNotFoundException: us.hebi.quickbuf.ProtoMessage
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
ā¦ 15 more
Without the two added implementations
I get this build error:
Task :compileJava
warning: unknown enum constant Visibility.NONE
reason: class file for com.fasterxml.jackson.annotation.JsonAutoDetect$Visibility not found
warning: unknown enum constant Visibility.NONE
warning: unknown enum constant Visibility.NONE
warning: unknown enum constant Visibility.NONE
warning: unknown enum constant Visibility.NONE
C:\Users\RKT\frc\FRC2024\Code\java-multiCameraServer\src\main\java\AcquireRobotPoseThread.java:317: error: cannot access Measure
new Translation3d(
^
class file for edu.wpi.first.units.Measure not found
1 error
5 warningsTask :compileJava FAILED
FAILURE: Build failed with an exception.
Does it also work on Orange Pi?
Iāve never tested it, but I doubt it, although I know aarch64 is more standardized than armv7.
@Peter_Johnson I also attempted to build the Java example on my RPi 4 hopeful that the error if using the laptop VSCode would go away. The RPi will not resolve Internet names but URL and *.local works. Thus the ./gradlew build
failed because it wants to download a zip from services.gradle.org
. The RPi can access that gradle address 104.16.73.101
which doesnāt help me, of course.
Using the same Ethernet port on my WI-Fi extender my laptop can resolve names. The WPILibPi was configured to use DHCP. The laptop has two options that must be selected - Obtain an IP address automatically and Obtain DNS server address automatically.
Thanks for your help.