C++ C
Permalink
Failed to load latest commit information.
.gitignore
CMakeLists.txt
Defines.h
Doxyfile
Doxyfile2
HsvThreshold.h
HsvThresholdQt.h
ImageBufferManager.cxx
ImageBufferManager.h
ImageCapture.cxx
ImageCapture.h
ImageUtils.cxx
ImageUtils.h
Main.cxx
MainWindow.cxx
MainWindow.h
MainWindow.ui
Makefile
Messaging.cxx
Messaging.h
Mutex.cxx
Mutex.h
OptionsProcess.cxx
OptionsProcess.h
PoleTarget.cxx
PoleTarget.h
PoleTargetMeasured.cxx
PoleTargetMeasured.h
Process.cxx
Process.h
ProcessNoTarget.cxx
ProcessNoTarget.h
ProcessPoleTarget.cxx
ProcessPoleTarget.h
ProcessRectTarget.cxx
ProcessRectTarget.h
ProcessTargetBase.cxx
ProcessTargetBase.h
README.markdown
RectTarget.cxx
RectTarget.h
RectTargetMeasured.cxx
RectTargetMeasured.h
Semaphore.cxx
Semaphore.h
Thread.h
TimeUtils.cxx
TimeUtils.h
VisionDefines.h

README.markdown

Our FIRST robotic team (FIRST Team 1768, Nashoba Robotics) came up with the goal of having a COTS system board that plugs into the wireless switch and preprocesses the images from the camera. As such, we had to write code to faciliate communication between the camera, the coprocessor, and the cRIO. We route this information all over ethernet, through the switch.

Our plan is to have the coprocessor run a version of Arch Linux and C++ with image parsing provided by OpenCV.

The cRIO

The robot code is fairly simple: set up a UDP connection and poll the coprocessor for targets. This code depends on the networking and concurrency components of our main robot code.

The Coprocessor

The coprocessor connects to both the cRIO and the Camera, requesting images from the camera, parsing them, and providing the robot with feedback. It gets images from the camera over a TCP connection and hosts a UDP server for the robot to listen on.