Our team is thinking about using the raspberry pi this year for vision. We are not really thinking about doing any heavy processing on video since this year’s game does not really require it. Most likely only on a single frame at a time. My main concern isn’t really speed but the image. It’s pretty new and not heavily tested. If it does work as expected then we will most likely be using the pi. What have your thoughts been on the image?
We also have a Jetson TK1 which I think is about 3-4 years old. I am mostly worried about sending video as I hear mjpeg streamer (or gstreamer) is somewhat hard to set up. I’m also not entirely sure how to go about doing that. We are also quite inexperienced in using the jetson.
Which would you recommend?
Without answering your question directly since I haven’t used the image myself… if you’re planning on doing any processing on the image (target detection, modifications, etc), then both mjpg-streamer and cscore will work. However, cscore is significantly easier to develop for and is more reliable to things like camera disconnects.
If you just want to see a camera stream, mjpg-streamer is fine, but won’t show up on shuffleboard/etc without manual configuration.
I believe cscore requires OpenCV 3.x, and the accelerated OpenCV that comes with the Jetson is 2.x. The python bindings for cscore definitely require OpenCV 3.x.
Since I’m the person who created the FRCVision image, I’m clearly biased here, and won’t make a direct recommendation. A couple things to point out:
- The 2019.2.1 image has been downloaded over 750 times, and hopefully at least some percentage of those people have actually tried it
- All of the C++ and Java libraries on the image are pretty battle-tested by now; they’re built from the same source code that is used in WPILib on the RoboRIO. The Python libraries are also the same as those used for RobotPy.
The whole point of creating the image was to make it easy to use for teams by including all of the standard robot libraries. The Jetson TK1 provides much more processing power, but requires a lot of manual setup.