FIRST Python
Simple example of FIRST Robotics image processing pipeline using OpenCV in Python on JeVois.
By Laurent Ittiitti@usc.eduhttp://jevois.orgGPL v3
 Language: PythonSupports mappings with USB output: YesSupports mappings with NO USB output: Yes 
 Video Mapping:   YUYV 640 252 60.0 YUYV 320 240 60.0 JeVois FirstPython
 Video Mapping:   YUYV 320 252 60.0 YUYV 320 240 60.0 JeVois FirstPython

Module Documentation

This module is a simplified version of the C++ module FirstVision. It is available with JeVois v1.6.2 or later.

This module implements a simple color-based object detector using OpenCV in Python. Its main goal is to also demonstrate full 6D pose recovery of the detected object, in Python.

This module isolates pixels within a given HSV range (hue, saturation, and value of color pixels), does some cleanups, and extracts object contours. It is looking for a rectangular U shape of a specific size (set by parameters owm and ohm for object width and height in meters). See screenshots for an example of shape. It sends information about detected objects over serial.

This module usually works best with the camera sensor set to manual exposure, manual gain, manual color balance, etc so that HSV color values are reliable. See the file script.cfg file in this module's directory for an example of how to set the camera settings each time this module is loaded.

This module is provided for inspiration. It has no pretension of actually solving the FIRST Robotics vision problem in a complete and reliable way. It is released in the hope that FRC teams will try it out and get inspired to develop something much better for their own robot.

Using this module

Check out this tutorial first, for the FirstVision module written in C++ and also check out the doc for FirstVision. Then you can just dive in and start editing the python code of FirstPython.

See http://jevois.org/tutorials for tutorials on getting started with programming JeVois in Python without having to install any development software on your host computer.

Trying it out

Edit the module's file at JEVOIS:/modules/JeVois/FirstPython/FirstPython.py and set the parameters self.owm and self.ohm to the physical width and height of your U-shaped object in meters. You should also review and edit the other parameters in the module's constructor, such as the range of HSV colors.

ParameterTypeDescriptionDefaultValid Values
This module exposes no parameter
script.cfg file
# Demo configuration script for FirstPython module.

# Set camera to fixed color balance, gain, and exposure, so that we get more reliable colors than we would obtain under
# automatic mode:
setcam presetwb 0
setcam autowb 0
setcam autogain 0
setcam autoexp 0
setcam redbal 110
setcam bluebal 170
setcam gain 16
setcam absexp 500

# Send info log messages to None, Hard, or USB serial port - useful for debugging:
#setpar serlog None
#setpar serlog Hard
#setpar serlog USB

# Send serial strings with detected objects to None, Hard, or USB serial port:
#setpar serout None
#setpar serout Hard
#setpar serout USB
Detailed docs:FirstPython
Copyright:Copyright (C) 2018 by Laurent Itti, iLab and the University of Southern California
License:GPL v3
Distribution:Unrestricted
Restrictions:None
Support URL:http://jevois.org/doc
Other URL:http://iLab.usc.edu
Address:University of Southern California, HNB-07A, 3641 Watt Way, Los Angeles, CA 90089-2520, USA