I’ve been working on this for a while and I’m finally to the point where I think it might be useful to other teams. This is still very young and will need a lot of work before it ever becomes really useful.
The basic idea for the project is to be able to use the power of inexpensive Android devices on FRC robots. Android devices are getting faster and cheaper and they include many sensors and also a mature code base to draw from.
What has been accomplished so far?
- Complied Android Debug Bridge (ADB) for the roboRIO
- Modified jadb and usb4java to work with the roboRIO
- A port forwarding solution between an Android Device and external ports on the roboRIO (This allows for IP Webcam apps to work on the Android device)
- Simple install script for copying over the needed files and installing needed packages on the roboRIO
- None of this requires a rooted android device, so it can be used with most cheap pre-paid phones, etc.
Project Home: RIOdroid on Github
What can you currently do?
- Forward ports from an Android device to the roboRIO and external ports
- Run ADB commands from your Java code (including running Android shell commands from Java)
- use LibUSB commands in Java (This will allow you to setup your roboRIO as an Android Accessory)
Most useful thing you can currently do.
- Auto start a webcam server (like IP Webcam) and forward that port so you can view the video on your driverstation laptop with the web interface controls
- RIOdroid-test project does this on boot, just have your android device running the webcam server on port 8080, connect the device to the roborio and power on the roborio, go to roborio-XXXX.local:8080 to view the video.
I’m not much of a programmer (anyone looking at the project can probably tell that) I just do it for FRC. If anyone with experience wants to help work on this please let me know. This is just a side project for me that I think could have some cool applications in the future.