6 #include <config_server/parameter.h>
7 #include <config_server/ParameterLoadTime.h>
9 #include <opencv2/opencv.hpp>
10 #include <ros/package.h>
12 #include <std_msgs/Time.h>
15 #define MAXIMGDIST 800
16 #define MAXCONSIDERDISTANCE 10.81
17 #define IMGBOX cv::Rect(0,0,IMGWIDTH,IMGHEIGHT)
18 #define IMGPYRDOWNBOX cv::Rect(0,0,320,240)
19 #define COLORED_OBJECT_COUNT 6
26 #define CSTR(x) prefix + GETS(x)
28 #define MP(x,...) x(CSTR(x),__VA_ARGS__)
30 #define MPT(x,y,...) y(prefix+#x+#y,__VA_ARGS__)
32 typedef config_server::Parameter<bool> pbool;
33 typedef config_server::Parameter<int> pint;
34 typedef config_server::Parameter<float> pfloat;
35 typedef config_server::Parameter<string> pstring;
39 vector<bool> lastDataState;
40 vector<config_server::Parameter<bool>*> data;
48 void add(config_server::Parameter<bool>* _in)
51 lastDataState.resize(data.size());
52 for (
size_t i = 0; i < data.size(); i++)
54 lastDataState[i] = data[i]->get();
60 int firstChange2True = -1;
61 int numberOf2TrueChange = 0;
62 for (
size_t i = 0; i < data.size(); i++)
64 if (data[i]->
get() && !lastDataState[i])
66 numberOf2TrueChange++;
67 if (firstChange2True == -1)
74 if (numberOf2TrueChange >= 1)
76 for (
size_t i = 0; i < data.size(); i++)
78 if ((
int) i == firstChange2True)
89 for (
size_t i = 0; i < data.size(); i++)
91 lastDataState[i] = data[i]->get();
111 inline T operator()()
const
138 #define GETHSVSTRUCT() \
139 hsvRangeC GetHSVRange() \
148 hsvRes.active=&active; \
174 pint maxContourCount;
176 pint maxDownDiffPixel;
178 pfloat maxAcceptDistance;
181 enable(CSTR(enable),
true), showMask(CSTR(showMask),
false), showResult(
182 CSTR(showResult),
false), showDebug(CSTR(showDebug),
false), h0(
183 CSTR(hsv/h0), 0, 1, 180, 0), h1(CSTR(hsv/h1), 0, 1, 180, 0), s0(
184 CSTR(hsv/s0), 0, 1, 255, 0), s1(CSTR(hsv/s1), 0, 1, 255, 0), v0(
185 CSTR(hsv/v0), 0, 1, 255, 0), v1(CSTR(hsv/v1), 0, 1, 255, 0), active(
186 CSTR(hsv/active),
false), erode(CSTR(morph/erode), 0, 1, 20,
187 1), dilate(CSTR(morph/dilate), 0, 1, 20, 1), erode2(
188 CSTR(morph/erode2), 0, 1, 100, 15), dilate2(
189 CSTR(morph/dilate2), 0, 1, 100, 0), maxContourCount(
190 CSTR(shape/maxContourCount), 1, 1, 10, 2), minArea(
191 CSTR(shape/minArea), 0, 1, IMGWIDTH * IMGHEIGHT, 0),MPT(shape/,maxDownDiffPixel,0,1,IMGHEIGHT,200), approxPoly(
192 CSTR(real/approxPoly), 0, 0.005, 1, 0.02),MPT(shape/,maxAcceptDistance,0,0.1,45,10.81),MPT(shape/,minAcceptX,-10.81,0.1,0,-1)
210 vector<Point3d> distSizeVec;
211 string distSizeVecPath;
212 vector<Mat> histList[3];
213 string histListcPath[3];
214 localParameter<float> radius;
250 pfloat houghCandWRatio;
251 pfloat houghCandHTopRatio;
252 pfloat houghCandHDownRatio;
255 pint notGreenPercent;
256 pint btnGCheckPercent;
259 pbool subResultFromCanny;
260 pfloat btnGCheckBoxtop;
261 pfloat btnGCheckBoxdown;
262 pfloat btnGCheckBoxW;
263 pbool addSizeDistance;
264 pbool popSizeDistance;
265 pbool clearDistSizeVec;
268 pbool clearHistogram;
271 pbool saveNegativeFull;
272 pint rectRotationMax;
273 pint rectRotationStep;
274 pint rectResizeWidth;
275 pint rectResizeHeight;
277 pint cascadeNinNeighbors;
278 pbool loadCascadeFile;
279 pbool printBallDetection;
282 radius(0.095), enable(CSTR(enable),
true), enableHog(
283 CSTR(cascade/enable),
true), showMask(CSTR(showMask),
284 false), showResult(CSTR(showResult),
false), showInput(
285 CSTR(showInput),
false), showAllCircle(CSTR(showAllCircle),
286 false), showCandidate(CSTR(showCandidate),
false), showBoxs(
287 CSTR(showBoxs),
false), h0(CSTR(hsv/h0), 0, 1, 180, 0), h1(
288 CSTR(hsv/h1), 0, 1, 180, 0), s0(CSTR(hsv/s0), 0, 1, 255, 0), s1(
289 CSTR(hsv/s1), 0, 1, 255, 0), v0(CSTR(hsv/v0), 0, 1, 255, 0), v1(
290 CSTR(hsv/v1), 0, 1, 255, 0), active(CSTR(hsv/active),
291 false), histogramH(CSTR(hsv/histogramH), 0, 0.05, 1, 0.5), histogramS(
292 CSTR(hsv/histogramS), 0, 0.05, 1, 0.5), histogramV(
293 CSTR(hsv/histogramV), 0, 0.05, 1, 0.5), erode(
294 CSTR(morph/erode), 0, 1, 20, 1), dilate(CSTR(morph/dilate),
295 0, 1, 20, 1), erode2(CSTR(morph/erode2), 0, 1, 20, 0), dilate2(
296 CSTR(morph/dilate2), 0, 1, 20, 0), BiggerRectHT(
297 CSTR(cascade/BiggerRectHT), 0, 0.1, 5, 1.4), BiggerRectHB(
298 CSTR(cascade/BiggerRectHB), 0, 0.1, 5, 2), BiggerRectW(
299 CSTR(cascade/BiggerRectW), 0, 0.1, 5, 2), histogramH_C(
300 CSTR(cascade/histogramH_C), 0, 0.05, 1, 0.7), histogramS_C(
301 CSTR(cascade/histogramS_C), 0, 0.05, 1, 0.7), histogramV_C(
302 CSTR(cascade/histogramV_C), 0, 0.05, 1, 0.7), dist2cascade(
303 CSTR(cascade/dist2cascade), 0, 1, IMGWIDTH, 220), houghDP(
304 CSTR(hough/DP), 0.1, 0.1, 10, 2), houghMaxDist(
305 CSTR(hough/maxDist), 2, 1,
306 IMGWIDTH, 100), houghCanny(CSTR(hough/canny), 1, 1, 255,
307 200), houghCircle(CSTR(hough/circle), 1, 1, 255, 100), houghMinR(
308 CSTR(hough/minR), 1, 1, IMGWIDTH, 1), houghMaxR(
309 CSTR(hough/maxR), 1, 1, IMGWIDTH, 1), houghCandWRatio(
310 CSTR(hough/houghCandWRatio), 1, 0.05, 5, 1), houghCandHTopRatio(
311 CSTR(hough/houghCandHTopRatio), 1, 0.05, 2.5, 1), houghCandHDownRatio(
312 CSTR(hough/houghCandHDownRatio), 1, 0.05, 2.5, 1), pyrDown(
313 CSTR(hough/pyrDown),
true), whitePercent(
314 CSTR(reject/whitePercent), 0, 1, 100, 10), notGreenPercent(
315 CSTR(reject/notGPercent), 0, 1, 100, 10), MPT(reject/,btnGCheckPercent,0,1,100,50), kernelBlur(
316 CSTR(hough/kernelBlur), 0, 1, 75, 15), sigmaBlur(
317 CSTR(hough/sigmaBlur), 0, 1, 150, 2), subResultFromCanny(
318 CSTR(subResultFromCanny),
true), MPT(reject/,btnGCheckBoxtop,0,0.1,1.5,0),
319 MPT(reject/,btnGCheckBoxdown,0,0.1,1.5,1.3), MPT(reject/,btnGCheckBoxW,0,0.1,1.5,1.3),
320 MPT(gui/,addSizeDistance,
false), MPT(gui/,popSizeDistance,
false), MPT(gui/,clearDistSizeVec,
false), MPT(gui/,addHistogram,
false),
321 MPT(gui/,popHistogram,
false), MPT(gui/,clearHistogram,
false), MPT(gui/,savePositive,
false), MPT(gui/,saveNegative,
false), MPT(gui/,saveNegativeFull,
false),
322 MPT(gui/,rectRotationMax,0,1,45,20), MPT(gui/,rectRotationStep,1,1,20,10), MPT(gui/,rectResizeWidth,0,1,IMGWIDTH,0), MPT(gui/,rectResizeHeight,0,1,IMGHEIGHT,0),
323 MPT(cascade/,cascadeScale,1,0.01,2,1.1), MPT(cascade/,cascadeNinNeighbors,0,1,20,10), MPT(cascade/,loadCascadeFile,
false),MP(printBallDetection,
false),MP(mergeResult,
false)
325 distSizeVecPath =
"ball_distSizeVec.yml";
326 histListcPath[0] =
"ballColorHist0.yml";
327 histListcPath[1] =
"ballColorHist1.yml";
328 histListcPath[2] =
"ballColorHist2.yml";
329 debugThisPos.x = debugThisPos.y = -1;
359 pfloat DistanceToMerge;
360 pint maxLineGapHough;
363 pint threasholdHough;
380 pint cannyThreadshold;
385 enable(CSTR(enable),
true), showMask(CSTR(showMask),
false), showResult(
386 CSTR(showResult),
false), showAllLine(CSTR(showAllLine),
387 false), showVote(CSTR(showVote),
false), showCanny(
388 CSTR(showCanny),
false), h0(CSTR(hsv/h0), 0, 1, 180, 0), h1(
389 CSTR(hsv/h1), 0, 1, 180, 0), s0(CSTR(hsv/s0), 0, 1, 255, 0), s1(
390 CSTR(hsv/s1), 0, 1, 255, 0), v0(CSTR(hsv/v0), 0, 1, 255, 0), v1(
391 CSTR(hsv/v1), 0, 1, 255, 0), active(CSTR(hsv/active),
392 false), MinLineLength(CSTR(hough/MinLineLength), 10, 1,
393 1000, 100), AngleToMerge(CSTR(shape/AngleToMerge), 0, 1, 90,
394 10), DistanceToMerge(CSTR(shape/DistanceToMerge), 0, 0.05,
395 1, 0.1), maxLineGapHough(CSTR(hough/maxLineGapHough), 0, 1,
396 150, 20), rhoHough(CSTR(hough/rhoHough), 0.01, 0.01, 2, 1), thetaHough(
397 CSTR(hough/thetaHough), 1, 1, 180, 45), threasholdHough(
398 CSTR(hough/threasholdHough), 1, 1, 255, 20), jumpMax(
399 CSTR(vote/jumpMax), 0, 1, 150, 20), jumpMin(
400 CSTR(vote/jumpMin), 1, 1, 20, 3), widthCheck(
401 CSTR(vote/widthCheck), 0.01, 0.01, 1, 0.07), aprxDist(
402 CSTR(vote/aprxDist),
true), doubleVote(
403 CSTR(vote/doubleVote), 0, 1, 100, 60), greenVote(
404 CSTR(vote/greenVote), 0, 1, 100, 60), colorVote(
405 CSTR(vote/colorVote), 0, 1, 100, 60), doubleVUse(
406 CSTR(vote/doubleVoteUse),
true), greenVUse(
407 CSTR(vote/greenVoteUse),
true), colorVUse(
408 CSTR(vote/colorVoteUse),
true), doubleVStart(
409 CSTR(vote/doubleVStart), 0, 0.1, 1, 0), greenVStart(
410 CSTR(vote/greenVStart), 0, 0.1, 1, 0), colorVStart(
411 CSTR(vote/colorVStart), 0, 0.1, 1, 0), doubleVEnd(
412 CSTR(vote/doubleVEnd), 0, 0.1, 1, 1), greenVEnd(
413 CSTR(vote/greenVEnd), 0, 0.1, 1, 1), colorVEnd(
414 CSTR(vote/colorVEnd), 0, 0.1, 1, 1), MPT(canny/,cannyThreadshold, 1, 1, 100, 23), MPT(canny/,blurSize, 1, 1, 20, 3), MPT(canny/,cannyaperture
431 vector<Point3d> distSizeVec;
432 string distSizeVecPath;
448 pfloat DistanceToMerge;
449 pfloat NearestDistance;
450 pfloat FarestDistance;
457 pint minDoubleLength;
458 pint minContinuesColor;
460 pbool addSizeDistance;
461 pbool popSizeDistance;
462 pbool clearDistSizeVec;
464 enable(CSTR(enable),
true), showMask(CSTR(showMask),
false), showResult(
465 CSTR(showResult),
false), showAllLines(CSTR(showAllLines),
466 false), showResLine(CSTR(showResLine),
false), showVote(
467 CSTR(showVote),
false), h0(CSTR(hsv/h0), 0, 1, 180, 0), h1(
468 CSTR(hsv/h1), 0, 1, 180, 0), s0(CSTR(hsv/s0), 0, 1, 255, 0), s1(
469 CSTR(hsv/s1), 0, 1, 255, 0), v0(CSTR(hsv/v0), 0, 1, 255, 0), v1(
470 CSTR(hsv/v1), 0, 1, 255, 0), active(CSTR(hsv/active),
true), MinLineLength(
471 CSTR(shape/MinLineLength), 40, 1, IMGWIDTH, 50), MaxOutField(
472 CSTR(shape/MaxOutField), -40, 1, 40, 0), DistanceToMerge(
473 CSTR(shape/DistanceToMerge), 0, 1, 100, 15), NearestDistance(
474 CSTR(shape/NearestDistance), 0, 0.1, 10.81, 0), FarestDistance(
475 CSTR(shape/FarestDistance), 0, 0.1, 10.81, 10.81), NearMinLen(
476 CSTR(shape/NearMinLen), 0, 1, IMGWIDTH, 0), NearMaxLen(
477 CSTR(shape/NearMaxLen), 0, 1, IMGWIDTH, IMGWIDTH), FarMinLen(
478 CSTR(shape/FarMinLen), 0, 1, IMGWIDTH, 0), FarMaxLen(
479 CSTR(shape/FarMaxLen), 0, 1, IMGWIDTH, IMGWIDTH), jumpMax(
480 CSTR(vote/JumpDouble), 0, 1, 64, 2), doubleVote(
481 CSTR(vote/VoteDouble), 0, 1, 100, 40), minDoubleLength(
482 CSTR(vote/minDoubleLength), 0, 1, 480, 3), minContinuesColor(
483 CSTR(vote/minContinuesColor), 0, 1, 480, 7), MPT(gui/,addSizeDistance,
false), MPT(gui/,popSizeDistance,
false), MPT(gui/,clearDistSizeVec,
false)
485 distSizeVecPath =
"goal_distSizeVec.yml";
512 pfloat decayConfidence;
513 pfloat maxPossibleJump;
519 enable(CSTR(enable),
true), mask(CSTR(showMask),
false), showResult(
520 CSTR(showResult),
false), h0(CSTR(hsv/h0), 0, 1, 180, 0), h1(
521 CSTR(hsv/h1), 0, 1, 180, 0), s0(CSTR(hsv/s0), 0, 1, 255, 0), s1(
522 CSTR(hsv/s1), 0, 1, 255, 0), v0(CSTR(hsv/v0), 0, 1, 255, 0), v1(
523 CSTR(hsv/v1), 0, 1, 255, 0), active(CSTR(hsv/active),
524 false), erode(CSTR(morph/erode), 0, 1, 20, 1), dilate(
525 CSTR(morph/dilate), 0, 1, 20, 1), minArea(
526 CSTR(shape/minArea), 0, 1,
527 IMGWIDTH * IMGHEIGHT, 500),MPT(model/,decayConfidence,0,0.001,1,0.99),MPT(model/,maxPossibleJump,0,0.01,10,0.4),
528 MPT(model/,lowPassCoef,0,0.01,1,0.9),MPT(shape/,minDistance,0,0.01,10.81,0),MPT(shape/,maxDistance,0,0.01,10.81,10.81)
554 active(CSTR(hsv/active),
false), h0(CSTR(hsv/h0), 0, 1, 180, 0), h1(
555 CSTR(hsv/h1), 0, 1, 180, 0), s0(CSTR(hsv/s0), 0, 1, 255, 0), s1(
556 CSTR(hsv/s1), 0, 1, 255, 0), v0(CSTR(hsv/v0), 0, 1, 255, 0), v1(
557 CSTR(hsv/v1), 0, 1, 255, 0)
576 localParameter<int> width;
577 localParameter<int> height;
578 localParameter<int> widthUnDistortion;
579 localParameter<int> heightUnDistortion;
580 pfloat diagonalAngleView;
582 localParameter<float> aspH;
585 flipHor(CSTR(flipHor),
false), flipVer(CSTR(flipVer),
false), width(
587 IMGHEIGHT), widthUnDistortion(0), heightUnDistortion(0), diagonalAngleView(
588 CSTR(diagonalAngleView), 1, 0.05, 180, 75), aspW(CSTR(aspW),
589 0, 0.1, 40, 4.0), aspH(3.0),MP(freezInput,
false)
591 freezInput.set(
false);
606 scale(CSTR(scale), 1, 0.5, 10, 3), width(CSTR(width), 200, 1, 10000,
626 pbool high_dimension;
629 filePath(CSTR(filePath),
"cCFile.yml"), MP(boardWidth, 1, 1, 15, 7), MP(boardHeight, 1, 1, 15, 10), MP(squareSize
630 , 1, 1, 200, 58), MP(delay, 1, 1, 3000,
631 200), MP(frameCount, 0, 1, 200, 60), MP(high_dimension,
true)
647 pbool showHorizonBox;
648 pbool showCameraPoints;
653 publishTime(CSTR(publishTime), 1, 1, 300, 1), webpublishTime(
654 CSTR(webpublishTime), 1, 1, 300, 7), showHorizonBox(
655 CSTR(showHorizonBox),
false), showCameraPoints(
656 CSTR(showCameraPoints),
false), showTopView(
657 CSTR(showTopView),
false),MP(showPCL,
false)
673 pfloat maxDistBetween2LS;
674 pfloat radiusMaxCoef;
675 pfloat radiusMinCoef;
676 pfloat confiusedDist;
677 pint minLineSegmentCount;
680 enable(CSTR(enable),
true), minLineLen(CSTR(minLineLen), 0, 0.01, 2,
681 0.2), maxLineLen(CSTR(maxLineLen), 0, 0.01, 3, 1.5), maxDistBetween2LS(
682 CSTR(maxDistBetween2LS), 0, 0.01, 2, 0.3), radiusMaxCoef(
683 CSTR(Coef/radiusMaxCoef), 0, 0.01, 3, 1.5), radiusMinCoef(
684 CSTR(Coef/radiusMinCoef), 0, 0.01, 2, 0.7), confiusedDist(
685 CSTR(confiusedDist), 0, 0.01, 3, 1), minLineSegmentCount(
686 CSTR(minLineSegmentCount), 0, 1, 10, 3)
705 pfloat VerLineMinDistanceToUpdate;
707 pbool forwardRobotTrackerXY;
708 pbool forwardRobotTrackerZ;
711 enable(CSTR(enable),
true), minLineLen(
712 CSTR(minLineLen), 0, 0.01, 5, 1.5), UPDATENORMAL(
713 CSTR(coef/UPDATENORMAL), 0, 0.01, 1, 0.1), UPDATESTRONG(
714 CSTR(coef/UPDATESTRONG), 0, 0.01, 1, 0.2), UPDATEWEAK(
715 CSTR(coef/UPDATEWEAK), 0, 0.01, 1, 0.05), TOTALGAIN(
716 CSTR(coef/TOTALGAIN), 0, 0.01, 1, 1), VerLineMinDistanceToUpdate(
717 CSTR(coefs/VerLineMinDistanceToUpdate), 0, 0.01, 2, 0.7), useKalman(
718 CSTR(useKalman),
false), forwardRobotTrackerXY(
719 CSTR(forwardRobotTrackerXY),
false), forwardRobotTrackerZ(
720 CSTR(forwardRobotTrackerZ),
false)
742 pbool calibrateKinematicHill;
743 pbool calibrateKinematicSimplex;
744 pbool precalculateProjection;
749 locationX(CSTR(location/x), -2, 0.005, 2, 0), locationY(
750 CSTR(location/y), -2, 0.005, 2, 0), locationZ(
751 CSTR(location/z), -2, 0.005, 2, 0), robotX(CSTR(robot/x),
752 -10, 0.01, 10, 0), robotY(CSTR(robot/y), -10, 0.01, 10, 0), robotZ(
753 CSTR(robot/z), -M_PI, 0.001,
754 M_PI, 0), orientationX(CSTR(orientation/x), -M_PI, 0.001,
755 M_PI, 0), orientationY(CSTR(orientation/y), -M_PI, 0.001,
756 M_PI, 0), orientationZ(CSTR(orientation/z), -M_PI, 0.001,
757 M_PI, 0), calibrateKinematicHill(CSTR(kinCalibHill),
false), calibrateKinematicSimplex(
758 CSTR(kinCalibSimplex),
false), precalculateProjection(
759 CSTR(precalculateProjection),
false), timeToShift(
760 CSTR(timeToShift), 0, 0.005, 3, 0.20), maxIteration(
761 CSTR(maxIteration), 1, 1, 100000, 100)
774 GroupParameter grpRviz;
775 GroupParameter grpGui;
777 pbool calibDistSize_Goal;
778 pbool calibDistSize_Ball;
779 pbool showDistSize_Goal;
780 pbool showDistSize_Ball;
784 pbool debugBallCandidates;
787 pbool rvizSetCalibTF;
788 pbool printUnderMouseInfo;
789 pbool rvizSetRobotTFOrigin;
791 guiC(
string prefix) :
792 MP(calibDistSize_Goal,
false), MP(calibDistSize_Ball,
false), MP(showDistSize_Goal,
false), MP(showDistSize_Ball,
false), MP(saveSample,
false),
793 MP(saveHistogram,
false), MP(debugCascade,
false), MP(debugBallCandidates,
false), MP(tfCalib,
false), rvizSetLoc(
794 CSTR(rviz/setLoc),
false), rvizSetCalibTF(
795 CSTR(rviz/setCalibTF),
false), MP(printUnderMouseInfo,
false) ,rvizSetRobotTFOrigin(
796 CSTR(rviz/setRobotTFOrigin),
false)
798 grpRviz.add(&rvizSetLoc);
799 grpRviz.add(&rvizSetCalibTF);
800 grpRviz.add(&rvizSetRobotTFOrigin);
803 grpGui.add(&calibDistSize_Goal);
804 grpGui.add(&calibDistSize_Ball);
805 grpGui.add(&showDistSize_Goal);
806 grpGui.add(&showDistSize_Ball);
807 grpGui.add(&saveSample);
808 grpGui.add(&saveHistogram);
809 grpGui.add(&debugCascade);
810 grpGui.add(&debugBallCandidates);
811 grpGui.add(&tfCalib);
812 grpGui.add(&printUnderMouseInfo);
814 debugCascade.set(
false);
830 vector<Point> clicked;
831 vector<Point2f> rvizClicked;
832 vector<Point3d> cameraLocation, opticalAngle;
835 return (rvizClicked.size() == clicked.size()
836 && clicked.size() == opticalAngle.size()
837 && opticalAngle.size() == cameraLocation.size()
838 && rvizClicked.size() > 0);
852 localParameter<int> maxrate;
853 localParameter<float> fps;
854 localParameter<unsigned long> counter;
873 ros::Time lastLoadTime;
875 ros::Subscriber loadTime_sub;
877 inited(
false), destroyed(
false), maxrate(30), fps(maxrate.get()), counter(
878 0), locClicked(Point2f(0, 0)), locIsClicked(
false), camCalibrator(), ball(
879 NULL), field(NULL), obstacle(NULL), goal(NULL), line(NULL), igus(
880 NULL), camera(NULL), topView(NULL), calib(NULL), debug(
881 NULL), circle(NULL), loc(NULL), tfP(NULL), gui(NULL)
883 configPath = ros::package::getPath(
"launch") +
"/config/vision/";
884 lastLoadTime.sec=lastLoadTime.nsec=0;
888 void loadTime_callback(
const config_server::ParameterLoadTimeConstPtr &msg)
890 if(lastLoadTime.sec!=0 && lastLoadTime.nsec!=0 && lastLoadPath!=
"" && msg->filename!=lastLoadPath && msg->stamp.sec!=lastLoadTime.sec && msg->stamp.nsec!=lastLoadTime.nsec)
892 ROS_ERROR(
"Config server reloaded, so this node will be shutdown intentionally.");
897 lastLoadTime=msg->stamp;
898 lastLoadPath=msg->filename;
902 void Init(ros::NodeHandle &nh)
908 loadTime_sub=nh.subscribe<config_server::ParameterLoadTime>(
"/config_server/load_time",10,&ParametersC::loadTime_callback,
this);
915 camera =
new cameraC(
"/vision/camera/");
916 topView =
new topViewC(
"/vision/topView/");
917 calib =
new calibC(
"/vision/calib/");
918 debug =
new debugC(
"/vision/debug/");
919 circle =
new circleC(
"/vision/circle/");
921 tfP =
new tfC(
"/vision/tf/");
922 gui =
new guiC(
"/vision/gui/");
Parameters container class for camera.
Definition: Parameters.hpp:571
Parameters container class for obstacle detection.
Definition: Parameters.hpp:496
Parameters container class.
Definition: Parameters.hpp:846
Parameters container class for camera calibration.
Definition: Parameters.hpp:827
Parameters container class for top view.
Definition: Parameters.hpp:599
Parameters container class for circle detection.
Definition: Parameters.hpp:667
Parameters container class for igus color.
Definition: Parameters.hpp:542
Parameters container class for camera calibration.
Definition: Parameters.hpp:617
Parameters container class for goal detection.
Definition: Parameters.hpp:428
Parameters container class for field detection.
Definition: Parameters.hpp:156
Parameters container class for ball detection.
Definition: Parameters.hpp:205
Parameters container class for localization.
Definition: Parameters.hpp:696
Parameters container class for gui.
Definition: Parameters.hpp:771
Parameters container class for debuging purposes.
Definition: Parameters.hpp:642
Parameters container class for tf calibration.
Definition: Parameters.hpp:730
HSV range class.
Definition: Parameters.hpp:126
Parameters container class for line detection.
Definition: Parameters.hpp:341