Thanks for all the good thoughts. My Eclipse WPILib plugins updated automatically last night and the vision samples now work perfectly without any code changes. (Not sure the 2 events had anything to do with each other.)
The only time I get that error message now is if the camera is unplugged (unusual message but probably reflects what's really happening in the background to attempt to restart the camera which it does do just fine.)
Was able to get Grip embedded running on roboRIO, albeit slowly (2 frames per second for our 5 steps) and only after fixing all the coding errors in the generated code.
Only question left is what's
VisionRunner do for me? I'm not knowingly using it and processing is working.
Repeating what others have found but with my actual code posted herein:
Generate C++ code
WITHOUT the checkmark for VisionPipeline.
Generated code has a missing cv:: in the SimpleBlobDetector code.
Generated code has a spurious include for contrib.
Generated code has an extra setsource0 method definition or a missing method declaration. Removing the method seems to be fine.
Code:
In robot.cpp of the Intermediate Vision Example:
add my Pipeline class name:
#include "Pipeline.h" // Base Name matches generated file name. NO Checkmark on the Grip generate C++ code! (creates reference to parent class VisionPipeline that doesn't exist in C++)
add to VisionThread:
grip::Pipeline Gripper; // Class Name matches generated file name.
add after rectangle(....):
Gripper.process(mat); // run the Grip pipeline
// Give the output stream a new image to display
// outputStream.PutFrame(mat);
outputStream.PutFrame(*Gripper.getblurOutput());
Remove from generated code Pipeline.cpp:
//void Pipeline::setsource0(cv::Mat &source0){ // removed. method doesn't have a declaration and its function seems to be redundant with the parameter
// source0.copyTo(this->source0); // removed. on the constructor so remove this method instead of fixing it
//} // removed.
Fix generated code Pipeline.cpp:
cv::Ptr<cv::SimpleBlobDetector> detector = cv::SimpleBlobDetector::create(params); // Add cv:: in front of 2nd SimpleBlobDetector
Remove from generated code Pipeline.h:
//#include <opencv2/contrib/contrib.hpp> // removed. file doesn't exist. Possibly an OpenCV artifact that WPILib has no need for now