When we attempted to run GRIP with an HSV filter, find contours, and filter contours we found GRIP was taking up just over 50%. With that we decided to use the information available in the
GRIP wiki and the source code to port our working GRIP implementation to OpenCV C++ and run it directly in our robot code. We decided GRIP is a great tool for rapid prototyping vision algorithms but deploying it as is has major drawbacks. Other than being a CPU hog there is no way to pause it or control the frame rate. For our specific application we just need to grab a single frame and process it maybe 10 times the entire match. We are okay with having high CPU for a short period of time but the only way we could figure out how to do this with GRIP was to kill the process and restart it when we weren't using it and that seemed like a hack.