Does anyone have any experience with the XRP? Do you feel it is a worthwhile purchase for training FIRST Programmers? Is there a better option available at a similar price point?
It is a great option for training programmers, especially as you can use it with WPILib. Note there is a discount for educators and FIRST teams to buy it at $65 instead of list price (see the note on the SparkFun page).
I got 2 for my programmers last year using the Sparkfun link @Peter_Johnson mentioned. You do have to email them and request the educator/FIRST price.
My programmers loved it and went to town learning on their own. I only had to answer a few questions it was great. I do think though that assembling the XRP made them more invested in it, so when we reuse them this year the new kids may not be quite as into it, unless I have them disassembled before the new programmers get them.
Does the XRP use the WPILIB Raspberry Pi image?
I highly recommend this approach and then customizing the system so that they can learn just how their programming interacts with the robot physically.
It actually has a separate firmware (GitHub - wpilibsuite/xrp-wpilib-firmware) since the main processor on the XRP is a Raspberry Pi Pico, and not a full blown Pi
Thanks. While I’m asking, what about the Romi? What rpi image would you recommend we use for building our own minibots for FRC training?
The Romi version of the WPILibPi image is the one to use with the Romi, it’s what it was designed for. For now, use the 2023.2.1 release; the 2024 beta release is broken in several ways.
Is the Romi or xrp a better purchase? Xrp’s been on back order for a while but the Romi is older correct?
I would recommend the XRP if making a new purchase; it’s easier to get started with (less assembly required), less expensive, has a larger support network and curriculum, and is a more open platform (so easy to 3D print additions to, etc).
I wouldn’t pay too much attention to the fact it’s backordered–my understanding is it’s essentially in continuous production, it’s just constantly a month or two behind demand. The long pole seems to be that the chassis is 3D printed.
If I wanted to print my own chassis is there a place that sells just the electronics as a kit?
Indeed there is: https://www.sparkfun.com/products/24045
Remember to email SparkFun before hand to get the education/FIRST discoutn applied
Heh not to mention that the batteries in the XRP last a lot longer than in the Romis
OK. We’ve been making our own minibots for some time and we’ve been porting selected parts of WPILIB into our own image. That makes it hard for us to keep up with latest developments in WPILIB or expand our coverage, so we’re exploring whether it would make more sense to start with the official image and adapt it for our use.
It really boils down to whether you want to run WPILib code on the minibot, or do what the Romi and XRP do, which is run the WPILib code on the desktop and the robot side is just a lightweight I/O to network implementation. The Romi uses WebSockets for transport and the XRP uses UDP, but in both cases a major advantage of this approach is that as long as the network protocol is stable (which they are, neither has changed in a breaking way since their introduction), you can upgrade WPILib and not change the robot side implementation at all (e.g. the 2023 Romi Pi image works just fine with 2024 WPILib). Thus, if you use either the Romi or XRP protocols and implement it for your minibots, you can get future WPILib upgrades for “free”.
Ah. I hadn’t realised that. That makes a lot more sense. We were puzzling over how you got Java onto a Pico. So it sounds like you don’t really recommend trying to run full WPILIB on the minibot, at least not one based on a Raspberry Pi.
I found documentation for the XRP protocol. It looks like it only supports four motors and four encoders, which would not work well for our in-development swerve minibot. Also, I don’t see anything about cameras. Can you point me at documentation for the Romi protocol?
You can, and it’s something we’ve looked into in the past. We even build WPILib binaries for the Pi platform, and we provide a WPILib installer for the Pi too. We just don’t have a HAL targeted for anything on the Pi, so that would be something that would have to be maintained for any specific piece of hardware to run it “fully native”. The other tricky bit is the driver station bits; one nice thing about using the simulation mode for this is we have a simulated DS built into the sim GUI already.
The XRP doesn’t have camera support as the Pico doesn’t have enough processor power to run one. For the Romi, we have the built-in WPILibPi camera streaming and co-processor type vision separate application support. It connects to the robot program with NetworkTables just like a coprocessor, the only tricky bit is that the robot program is running on a PC with a dynamic IP, so we mock the DS robot IP notification protocol in the Romi I/O server and it gives the PC’s IP to any NT clients running on the Romi (note this also requires firewall openings on the PC so those clients can connect).
The Romi uses the full HAL simulation WebSockets interface. allwpilib/simulation/halsim_ws_core/doc/hardware_ws_api.md at main · wpilibsuite/allwpilib · GitHub
Thanks. Can you point me at an example of what the code on the minibot would look like for that?
This is the Romi implementation: GitHub - wpilibsuite/wpilib-ws-robot-romi
One notable thing about the protocol is you can create your own device classes that use SimDevice interfaces for higher level controls or sensors that you want to offload to the minibot server side. It’s up to you how far you take this. An example might be to offload closed loop control to the minibot server similar to how CAN motor controllers do it.
FYI you can go to XRP Mountain Mayhem and see a simulation using XRP’s in the Mountain mayhem game.