Scripts to build OpenCV for the RoboRIO
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore Better .gitignore Sep 19, 2017
README.md Update build for 2019/3.4.5 Jan 4, 2019
build.sh Update build for 2019/3.4.5 Jan 4, 2019
deps Update build for 2019/3.4.5 Jan 4, 2019
fetch.sh Update build for 2019/3.4.5 Jan 4, 2019
launch.sh Update build for 2019/3.4.5 Jan 4, 2019
toolchain.cmake Update build for 2019/3.4.5 Jan 4, 2019

README.md

OpenCV 3.4.5 build for RoboRIO

This is a set of scripts that will build OpenCV for the RoboRIO with bindings for:

  • C++
  • Python 3.7

The result of the compilation process is a zipfile that can be turned into IPK files using the roborio-packages repository.

NOTE: For 2017+, OpenCV 3.x is well-supported for C++ and Java by WPILib, so if you're looking to use those languages you should use their stuff instead.

RoboRIO Installation

The easiest way to install these packages is to set up the RobotPy opkg feed on your RoboRIO. Create a .conf file in /etc/opkg (e.g. /etc/opkg/robotpy.conf) containing the following line:

src/gz robotpy http://www.tortall.net/~robotpy/feeds/2019

Once the feed is added, issue an opkg update and then you can install packages using the following commands (requires internet access).

For Python3:

opkg install python37-opencv3

For C++:

opkg install opencv3

For Java (Java programming support must be installed separately):

opkg install opencv3-java

Offline Installation

You can use the RobotPy Installer Script to do offline opkg installs. First, download the package:

python3 installer.py download-opkg python37-opencv3

Then, connect to the network with the RoboRIO, and install it:

python3 installer.py install-opkg python37-opencv3

Manual Installation

TODO: document this

Usage

For detailed information about OpenCV, see their website. There's lots of documentation and tutorials/etc available.

Using the Python bindings

See the image processing section of the Programmer's Guide at the RobotPy documentation site for details.

Building your own version of OpenCV

You probably just want to use the compiled version on our releases page or from our opkg feed. This build has only been tested on Linux using docker as directed below.

Build steps

First, install docker. Then run:

./launch.sh

This will give you a shell in the docker container. You can then run:

./fetch.sh
./build.sh

If you're building on your own Linux host that has cmake and the FRC toolchain installed, you can probably just execute the following:

./fetch.sh
./build.sh

But... I'd recommend using the docker image instead.

Troubleshooting

  • zlib.h: No such file or directory: For some reason if zlib1g-dev is installed on the system, the cmake included with Ubuntu 14.04 messes up the configuration and it breaks. Uninstall zlib1g-dev and it will work.

Contributing new changes

This is intended to be a project that all members of the FIRST community can quickly and easily contribute to. If you find a bug, or have an idea that you think others can use:

  1. Fork this git repository to your github account
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push -u origin my-new-feature)
  5. Create new Pull Request on github