Just thought I would give a quick update:
After I ordered it, I dove right in with the basics of getting it setup on a Windows computer. I thought I needed Linux to program it, but it’s possible to do it on a Windows computer if you’re ok with taking slightly more time.
The steps I followed to get it working with the basics using the Jevois Quickstart guide:
- Find a 16gb micro SD card and mini USB cable
- Download the Jevois OS image
- Flash image to microSD (I used Win32 Disk Imager to do this)
- Plug in microSD and the miniUSB cable to computer
- Use AMCap to view the Jevois video stream. AMCap lets you switch between camera modes easily.
- Open Arduino software and open the Serial monitor to start the command interface with the Jevois. Make sure to set the “Newline” line ending instead of the default “None”; this confused me for a few minutes.
- Send the “help” command and get a list of all commands and the current settings. You can control exposure, contrast, gain, brightness, color balance, and set them to be automatic or manual. The settings aren’t saved so I have to resend it upon bootup.
All of the above took me 2 hours, of which 1/2 hour was finding a uSD and 1/2 hour was finding out that you had to use “newline” mode in the Arduino Serial monitor.
If you are using Windows or Mac to program the Jevois you have to run Python code instead of C++. You also can’t run it easily on Windows as far as I know; you just have to let the Jevois find runtime errors. This can be frustrating if you are looking to get a lot of custom code working.
I viewed some of the resources on the Jevois website, but for FRC I wanted to be able to take code generated in Python by a GRIP pipeline and just deploy that to the Jevois. Specifically, I wanted to take an image, run an HSV filter on it, erode it, dilate it, find the contours, and filter the contours. This pipeline works for recognizing retroreflective tape in 99% of situations with the proper bright green LED ring and low exposure settings. I took the PythonSandbox example and experimented with copy/paste solutions, and finally found one that worked every time. I just took all the grip code and copied over the stuff in the “Process” function into the “Process” function of the Jevois, put the constants in the constructor, and put all static methods below all of that. Ran the filter with 0 runtime errors, and all I have to do now is plug in constants that GRIP gets me. My LED rings are coming in the mail in a few days, and once I confirm that this works consistently I’ll write up a whitepaper.
All of that took me roughly 5 hours, of which most of was just tracking down syntax errors and finding out how to use the output settings of the Jevois. There’s still some things I’m not sure about, such as how to change the resolution and FPS and how to run code not in the “sandbox” directory; I know it’s possible but I haven’t worked on this in a few days due to time crunch.
TL;DR: Jevois works great and I would 8/10 recommend it to teams, particularly those who have Linux programmers. I’ll be putting up a whitepaper soon enough about using this.