9 #include <plot_msgs/plot_manager.h>
14 #define PMSCALE_CYCLE 1000 // Scaler for the cycle plot variables
15 #define PMSCALE_HALT 0.9 // Scaler for the halt plot variables
16 #define PMSCALE_KICK 0.8 // Scaler for the kick plot variables
17 #define PMSCALE_DRIBBLE 1.0 // Scaler for the dribble plot variables
18 #define PMSCALE_HAVE 1.1 // Scaler for the have plot variables
19 #define PMSCALE_STABLE 0.8 // Scaler for the stable plot variables
20 #define PMSCALE_HAVETARGET 1.2 // Scaler for the have target plot variables
21 #define PMSCALE_OKTOKDB 0.7 // Scaler for the ok to kick/dribble plot variables
22 #define PMSCALE_STILLOKTOKDB 0.65 // Scaler for the still ok to kick/dribble plot variables
23 #define PMSCALE_COULDKDB 0.6 // Scaler for the could kick/dribble plot variables
24 #define PMSCALE_ALLOWKDB 0.5 // Scaler for the allow kick/dribble plot variables
25 #define PMSCALE_BALLACT 0.4 // Scaler for the ball action plot variables
26 #define PMSCALE_WTGPBOOL 0.95 // Scaler for the walk to global pose boolean plot variables
27 #define PMSCALE_WALK 0.85 // Scaler for the walk plot variables
28 #define PMSCALE_MOTION 0.75 // Scaler for the motion plot variables
29 #define PMSCALE_FOOTSEL 0.45 // Scaler for the foot selection plot variables
30 #define PMSCALE_LOCK 0.35 // Scaler for the lock plot variables
31 #define PMSCALE_FACINGOK 1.1 // Scaler for the facing ok plot variables
32 #define PMSCALE_FOOTOK 1.2 // Scaler for the foot ok plot variables
33 #define PMSCALE_ARRIVED 1.25 // Scaler for the arrived plot variables
34 #define PMSCALE_ISRESUMED 1.30 // Scaler for the is resumed plot variables
35 #define PMSCALE_COUNTER 0.01 // Scaler for the counter plot variables
36 #define PMSCALE_KICKOFF 0.8 // Scaler for the kickoff plot variables
37 #define PMSCALE_DROPBALL 0.9 // Scaler for the drop ball plot variables
38 #define PMSCALE_COMMSOK 1.15 // Scaler for the communications ok plot variables
39 #define PMSCALE_COLOR 0.85 // Scaler for the color plot variables
40 #define PMSCALE_PENALTY 0.95 // Scaler for the penalty plot variables
41 #define PMSCALE_LEGAL 0.75 // Scaler for the legal plot variables
44 namespace walk_and_kick
63 PM_GC_TIMESINCEPACKETBASE,
64 PM_GC_TIMESINCEPACKETEXTRA,
70 PM_GC_TIMEREMAINING_RAW,
71 PM_GC_TIMEREMAINING_SMOOTH,
72 PM_GC_SECONDARYTIME_RAW,
73 PM_GC_SECONDARYTIME_SMOOTH,
74 PM_GC_TIMETOBALLINPLAY_RAW,
75 PM_GC_TIMETOBALLINPLAY_SMOOTH,
76 PM_GC_OWNPENALTYSTATE,
77 PM_GC_OWNPENALTYTIME_RAW,
78 PM_GC_OWNPENALTYTIME_SMOOTH,
96 PM_SV_PLAYSTATEFIRSTIN,
97 PM_SV_PLAYSTATEFIRSTTOLD,
98 PM_SV_PLAYSTATELASTTOLD,
99 PM_SV_PLAYSTATETIMEOUT,
101 PM_SV_COMPASSHEADING,
104 PM_SV_ROBOTPOSETIMEAGO,
119 PM_SV_BALLPOSETIMEAGO,
123 PM_SV_BALLPOSESTABLE,
126 PM_SV_DIRECTGOALALLOWED,
130 PM_GV_DRIBBLEIFPOSSIBLE,
131 PM_GV_KICKIFPOSSIBLE,
132 PM_GV_DIVEIFPOSSIBLE,
133 PM_GV_HAVEBALLTARGET,
136 PM_GV_BALLTARGETCONF,
137 PM_GV_BALLTARGETDIST,
138 PM_GV_BALLTARGETANGLE,
139 PM_GV_BALLTARGETWEDGE,
140 PM_GV_BALLTARGETTYPE,
141 PM_GV_BALLTOTARGETDIST,
142 PM_GV_BALLTOTARGETANGLE,
143 PM_GV_BTTANGLEOFFSETKICK,
148 PM_GV_TARGETPOSEVALID,
167 PM_OBH_BALLTOOBSTDIST,
168 PM_OBH_ANGLEATBALLLOW,
169 PM_OBH_ANGLEATBALLHIGH,
170 PM_OBH_ANGLEATBALLSTD,
171 PM_OBH_TARGETANGLEADJUST,
172 PM_OBH_ANGLEADJUSTFORDRIBBLE,
173 PM_OBH_ANGLEADJUSTFORFOOTSEL,
174 PM_OBH_KICKIFPOSSIBLE,
181 PM_BM_OKTODRIBBLESTILL,
183 PM_BM_COULDDRIBBLENOW,
186 PM_BM_BALLACTIONISKICK,
234 PM_GBB_PROXIMITY_VALUE,
236 PM_GBB_FOOTDUETOLESSDIST,
237 PM_GBB_FOOTDUETOBALLPOSE,
238 PM_GBB_RECONSIDERFOOT,
246 PM_GBB_BALLACTIONTIP,
251 PM_DB_FACINGTARGETSTILL,
257 PM_DB_OKTODRIBBLESTILL,
258 PM_DBAPP_PREFERRIGHTFOOT,
259 PM_DBAPP_RECONSIDERFOOT,
260 PM_DBAPP_USERIGHTFOOT,
263 PM_DBAPP_LOCALPATHANGLE,
268 PM_KB_BALLERRORLEFTX,
269 PM_KB_BALLERRORLEFTY,
270 PM_KB_BALLERRORRIGHTX,
271 PM_KB_BALLERRORRIGHTY,
273 PM_KB_FACINGTARGETSTILL,
275 PM_KB_LEFTFOOTOKSTILL,
277 PM_KB_RIGHTFOOTOKSTILL,
290 inline void configurePlotManager(plot_msgs::PlotManagerFS* PM)
293 PM->setName(PM_WAK_TRUEDT,
"WalkAndKick/truedT");
294 PM->setName(PM_WAK_CYCLE,
"WalkAndKick/wakCycle");
297 PM->setName(PM_RI_COMMSOK,
"WAKRosInterface/commsOk");
298 PM->setName(PM_RI_PUBGAZEPITCH,
"WAKRosInterface/published/gazePitch");
299 PM->setName(PM_RI_PUBGAZEYAW,
"WAKRosInterface/published/gazeYaw");
300 PM->setName(PM_RI_PUBGCVX,
"WAKRosInterface/published/gcvX");
301 PM->setName(PM_RI_PUBGCVY,
"WAKRosInterface/published/gcvY");
302 PM->setName(PM_RI_PUBGCVZ,
"WAKRosInterface/published/gcvZ");
303 PM->setName(PM_RI_PUBWALK,
"WAKRosInterface/published/walk");
304 PM->setName(PM_RI_PUBKICKLEFT,
"WAKRosInterface/published/kickLeft");
305 PM->setName(PM_RI_PUBKICKRIGHT,
"WAKRosInterface/published/kickRight");
308 PM->setName(PM_GC_SEQID,
"GameController/seqID");
309 PM->setName(PM_GC_TIMESINCEPACKETBASE,
"GameController/timeSincePacketBase");
310 PM->setName(PM_GC_TIMESINCEPACKETEXTRA,
"GameController/timeSincePacketExtra");
311 PM->setName(PM_GC_EXTRAOUTOFDATE,
"GameController/extraOutOfDate");
312 PM->setName(PM_GC_GAMEPHASE,
"GameController/gamePhase");
313 PM->setName(PM_GC_GAMESTATE,
"GameController/gameState");
314 PM->setName(PM_GC_TIMEPLAYING,
"GameController/timePlaying");
315 PM->setName(PM_GC_KICKOFFTYPE,
"GameController/kickoffType");
316 PM->setName(PM_GC_TIMEREMAINING_RAW,
"GameController/timeRemaining/raw");
317 PM->setName(PM_GC_TIMEREMAINING_SMOOTH,
"GameController/timeRemaining/smooth");
318 PM->setName(PM_GC_SECONDARYTIME_RAW,
"GameController/secondaryTime/raw");
319 PM->setName(PM_GC_SECONDARYTIME_SMOOTH,
"GameController/secondaryTime/smooth");
320 PM->setName(PM_GC_TIMETOBALLINPLAY_RAW,
"GameController/timeToBallInPlay/raw");
321 PM->setName(PM_GC_TIMETOBALLINPLAY_SMOOTH,
"GameController/timeToBallInPlay/smooth");
322 PM->setName(PM_GC_OWNPENALTYSTATE,
"GameController/ownRobot/penaltyState");
323 PM->setName(PM_GC_OWNPENALTYTIME_RAW,
"GameController/ownRobot/penaltyTime/raw");
324 PM->setName(PM_GC_OWNPENALTYTIME_SMOOTH,
"GameController/ownRobot/penaltyTime/smooth");
325 PM->setName(PM_GC_OWNSCORE,
"GameController/ownTeam/score");
326 PM->setName(PM_GC_OPPSCORE,
"GameController/oppTeam/score");
327 PM->setName(PM_GC_OWNNUMPLAYING,
"GameController/ownTeam/numPlaying");
328 PM->setName(PM_GC_OPPNUMPLAYING,
"GameController/oppTeam/numPlaying");
331 PM->setName(PM_TC_NUMFRESH,
"TeamComms/numFresh");
332 PM->setName(PM_TC_NUMFRESHVALID,
"TeamComms/numFreshAndValid");
333 PM->setName(PM_TC_TIMESINCEDATA,
"TeamComms/timeSinceData");
336 PM->setName(PM_SV_ISPENALTYSHOOT,
"SensorVars/isPenaltyShoot");
337 PM->setName(PM_SV_ISPENALTYTAKER,
"SensorVars/isPenaltyTaker");
338 PM->setName(PM_SV_KICKOFFTYPE,
"SensorVars/kickoffType");
339 PM->setName(PM_SV_GOALSIGN,
"SensorVars/goalSign");
340 PM->setName(PM_SV_PLAYASCYAN,
"SensorVars/playAsCyan");
341 PM->setName(PM_SV_GAMECOMMAND,
"SensorVars/gameCommand");
342 PM->setName(PM_SV_GAMEROLE,
"SensorVars/gameRole");
343 PM->setName(PM_SV_PLAYSTATE,
"SensorVars/playState/playState");
344 PM->setName(PM_SV_PLAYSTATEFIRSTIN,
"SensorVars/playState/timeSinceFirstIn");
345 PM->setName(PM_SV_PLAYSTATEFIRSTTOLD,
"SensorVars/playState/timeSinceFirstTold");
346 PM->setName(PM_SV_PLAYSTATELASTTOLD,
"SensorVars/playState/timeSinceLastTold");
347 PM->setName(PM_SV_PLAYSTATETIMEOUT,
"SensorVars/playState/timeUntilTimeout");
348 PM->setName(PM_SV_TIMEPLAYING,
"SensorVars/timePlaying");
349 PM->setName(PM_SV_COMPASSHEADING,
"SensorVars/compassHeading");
350 PM->setName(PM_SV_ROBOTPOSECONF,
"SensorVars/robotPose/conf");
351 PM->setName(PM_SV_HAVEROBOTPOSE,
"SensorVars/robotPose/have");
352 PM->setName(PM_SV_ROBOTPOSETIMEAGO,
"SensorVars/robotPose/timeAgo");
353 PM->setName(PM_SV_ROBOTPOSEDUR,
"SensorVars/robotPose/duration");
354 PM->setName(PM_SV_ROBOTPOSEX,
"SensorVars/robotPose/x");
355 PM->setName(PM_SV_ROBOTPOSEY,
"SensorVars/robotPose/y");
356 PM->setName(PM_SV_ROBOTPOSEZ,
"SensorVars/robotPose/z");
357 PM->setName(PM_SV_BALLCONF,
"SensorVars/ball/conf");
358 PM->setName(PM_SV_HAVEBALL,
"SensorVars/ball/have");
359 PM->setName(PM_SV_BALLTIMEAGO,
"SensorVars/ball/timeAgo");
360 PM->setName(PM_SV_BALLDUR,
"SensorVars/ball/duration");
361 PM->setName(PM_SV_BALLX,
"SensorVars/ball/x");
362 PM->setName(PM_SV_BALLY,
"SensorVars/ball/y");
363 PM->setName(PM_SV_BALLANGLE,
"SensorVars/ball/angle");
364 PM->setName(PM_SV_BALLDIST,
"SensorVars/ball/dist");
365 PM->setName(PM_SV_BALLSTABLE,
"SensorVars/ball/stable");
366 PM->setName(PM_SV_HAVEBALLPOSE,
"SensorVars/ballPose/have");
367 PM->setName(PM_SV_BALLPOSETIMEAGO,
"SensorVars/ballPose/timeAgo");
368 PM->setName(PM_SV_BALLPOSEDUR,
"SensorVars/ballPose/duration");
369 PM->setName(PM_SV_BALLPOSEX,
"SensorVars/ballPose/x");
370 PM->setName(PM_SV_BALLPOSEY,
"SensorVars/ballPose/y");
371 PM->setName(PM_SV_BALLPOSESTABLE,
"SensorVars/ballPose/stable");
372 PM->setName(PM_SV_BALLHASMOVED,
"SensorVars/ballHasMoved");
373 PM->setName(PM_SV_BALLINPLAY,
"SensorVars/ballInPlay");
374 PM->setName(PM_SV_DIRECTGOALALLOWED,
"SensorVars/directGoalAllowed");
377 PM->setName(PM_GV_FORCEBEHSTATE,
"GameVars/forceBehState");
378 PM->setName(PM_GV_SUGGESTFOOT,
"GameVars/suggestFoot");
379 PM->setName(PM_GV_DRIBBLEIFPOSSIBLE,
"GameVars/dribbleIfPossible");
380 PM->setName(PM_GV_KICKIFPOSSIBLE,
"GameVars/kickIfPossible");
381 PM->setName(PM_GV_DIVEIFPOSSIBLE,
"GameVars/diveIfPossible");
382 PM->setName(PM_GV_HAVEBALLTARGET,
"GameVars/haveBallTarget");
383 PM->setName(PM_GV_BALLTARGETX,
"GameVars/ballTarget/x");
384 PM->setName(PM_GV_BALLTARGETY,
"GameVars/ballTarget/y");
385 PM->setName(PM_GV_BALLTARGETCONF,
"GameVars/ballTarget/conf");
386 PM->setName(PM_GV_BALLTARGETDIST,
"GameVars/ballTarget/dist");
387 PM->setName(PM_GV_BALLTARGETANGLE,
"GameVars/ballTarget/angle");
388 PM->setName(PM_GV_BALLTARGETWEDGE,
"GameVars/ballTarget/wedge");
389 PM->setName(PM_GV_BALLTARGETTYPE,
"GameVars/ballTarget/type");
390 PM->setName(PM_GV_BALLTOTARGETDIST,
"GameVars/ballToTarget/dist");
391 PM->setName(PM_GV_BALLTOTARGETANGLE,
"GameVars/ballToTarget/angle");
392 PM->setName(PM_GV_BTTANGLEOFFSETKICK,
"GameVars/ballToTarget/angleOffsetKick");
393 PM->setName(PM_GV_TARGETPOSEX,
"GameVars/targetPose/x");
394 PM->setName(PM_GV_TARGETPOSEY,
"GameVars/targetPose/y");
395 PM->setName(PM_GV_TARGETPOSEZ,
"GameVars/targetPose/z");
396 PM->setName(PM_GV_TARGETPOSETOL,
"GameVars/targetPose/tol");
397 PM->setName(PM_GV_TARGETPOSEVALID,
"GameVars/targetPose/valid");
400 PM->setName(PM_AV_GAZEPITCH,
"ActuatorVars/gazePitch");
401 PM->setName(PM_AV_GAZEYAW,
"ActuatorVars/gazeYaw");
402 PM->setName(PM_AV_GCVX,
"ActuatorVars/gcvX");
403 PM->setName(PM_AV_GCVY,
"ActuatorVars/gcvY");
404 PM->setName(PM_AV_GCVZ,
"ActuatorVars/gcvZ");
405 PM->setName(PM_AV_HALT,
"ActuatorVars/halt");
406 PM->setName(PM_AV_KICKLEFT,
"ActuatorVars/kickLeft");
407 PM->setName(PM_AV_KICKRIGHT,
"ActuatorVars/kickRight");
408 PM->setName(PM_AV_DIVE,
"ActuatorVars/dive");
411 PM->setName(PM_GM_STATECYCLE,
"GameFSM/Manager/stateCycle");
412 PM->setName(PM_GM_CURSTATE,
"GameFSM/Manager/curState");
413 PM->setName(PM_GM_POSELEGAL,
"GameFSM/Manager/poseLegalForKickoff");
416 PM->setName(PM_DG_SCORINGDIST,
"GameFSM/DefaultGoalie/scoringDist");
419 PM->setName(PM_OBH_ACTIVE,
"GameFSM/ObstacleBallHandling/active");
420 PM->setName(PM_OBH_BALLTOOBSTDIST,
"GameFSM/ObstacleBallHandling/ballToObstDist");
421 PM->setName(PM_OBH_ANGLEATBALLLOW,
"GameFSM/ObstacleBallHandling/angleAtBallLow");
422 PM->setName(PM_OBH_ANGLEATBALLHIGH,
"GameFSM/ObstacleBallHandling/angleAtBallHigh");
423 PM->setName(PM_OBH_ANGLEATBALLSTD,
"GameFSM/ObstacleBallHandling/angleAtBallWrapped");
424 PM->setName(PM_OBH_TARGETANGLEADJUST,
"GameFSM/ObstacleBallHandling/targetAngleAdjust");
425 PM->setName(PM_OBH_ANGLEADJUSTFORDRIBBLE,
"GameFSM/ObstacleBallHandling/angleAdjustForDribble");
426 PM->setName(PM_OBH_ANGLEADJUSTFORFOOTSEL,
"GameFSM/ObstacleBallHandling/angleAdjustForFootSel");
427 PM->setName(PM_OBH_KICKIFPOSSIBLE,
"GameFSM/ObstacleBallHandling/kickIfPossible");
428 PM->setName(PM_OBH_SUGGESTFOOT,
"GameFSM/ObstacleBallHandling/suggestFoot");
431 PM->setName(PM_BM_STATECYCLE,
"BehFSM/Manager/stateCycle");
432 PM->setName(PM_BM_CURSTATE,
"BehFSM/Manager/curState");
433 PM->setName(PM_BM_OKTOKICK,
"BehFSM/Manager/okToKick");
434 PM->setName(PM_BM_OKTODRIBBLE,
"BehFSM/Manager/okToDribble");
435 PM->setName(PM_BM_OKTODRIBBLESTILL,
"BehFSM/Manager/okToDribbleStill");
436 PM->setName(PM_BM_COULDKICKNOW,
"BehFSM/Manager/couldKickNow");
437 PM->setName(PM_BM_COULDDRIBBLENOW,
"BehFSM/Manager/couldDribbleNow");
438 PM->setName(PM_BM_ALLOWKICK,
"BehFSM/Manager/allowKick");
439 PM->setName(PM_BM_ALLOWDRIBBLE,
"BehFSM/Manager/allowDribble");
440 PM->setName(PM_BM_BALLACTIONISKICK,
"BehFSM/Manager/ballActionIsKick");
443 PM->setName(PM_WTGP_GBLTARGETX,
"BehFSM/WalkToGlobalPose/globalTargetX");
444 PM->setName(PM_WTGP_GBLTARGETY,
"BehFSM/WalkToGlobalPose/globalTargetY");
445 PM->setName(PM_WTGP_GBLTARGETZ,
"BehFSM/WalkToGlobalPose/globalTargetZ");
446 PM->setName(PM_WTGP_USEZ,
"BehFSM/WalkToGlobalPose/useTargetZ");
447 PM->setName(PM_WTGP_TARGETX,
"BehFSM/WalkToGlobalPose/targetX");
448 PM->setName(PM_WTGP_TARGETY,
"BehFSM/WalkToGlobalPose/targetY");
449 PM->setName(PM_WTGP_TARGETZERR,
"BehFSM/WalkToGlobalPose/targetZErr");
450 PM->setName(PM_WTGP_TARGETDIST,
"BehFSM/WalkToGlobalPose/targetDist");
451 PM->setName(PM_WTGP_TARGETANGLE,
"BehFSM/WalkToGlobalPose/targetAngle");
452 PM->setName(PM_WTGP_DISTCOST,
"BehFSM/WalkToGlobalPose/distCost");
455 PM->setName(PM_WTP_DISTCOST,
"BehFSM/WalkToPose/distCost");
456 PM->setName(PM_WTP_ARRIVED,
"BehFSM/WalkToPose/arrived");
459 PM->setName(PM_GAB_TS90,
"BehFSM/GazeAtBall/settlingTime90%");
462 PM->setName(PM_LA_GAZEMAG,
"BehFSM/LookAround/gazeMag");
463 PM->setName(PM_LA_GAZETARGETID,
"BehFSM/LookAround/gazeTargetID");
464 PM->setName(PM_LA_GAZETARGETX,
"BehFSM/LookAround/gazeTargetX");
465 PM->setName(PM_LA_GAZETARGETY,
"BehFSM/LookAround/gazeTargetY");
468 PM->setName(PM_LLR_GAZEFREQ,
"BehFSM/LookLeftRight/gazeFreq");
471 PM->setName(PM_SFB_SFBSTATE,
"BehFSM/SearchForBall/sfbState");
472 PM->setName(PM_SFB_ISREQUEST,
"BehFSM/SearchForBall/stateIsRequested");
473 PM->setName(PM_SFB_ISRESUMED,
"BehFSM/SearchForBall/stateIsResumed");
474 PM->setName(PM_SFB_SFBSTATETIME,
"BehFSM/SearchForBall/sfbStateElapsed");
475 PM->setName(PM_SFB_BALLHYPTYPE,
"BehFSM/SearchForBall/ballHypType");
476 PM->setName(PM_SFB_TIMEOUT,
"BehFSM/SearchForBall/timeout");
477 PM->setName(PM_SFB_TARGETX,
"BehFSM/SearchForBall/targetX");
478 PM->setName(PM_SFB_TARGETY,
"BehFSM/SearchForBall/targetY");
479 PM->setName(PM_SFB_DIRN,
"BehFSM/SearchForBall/dirn");
480 PM->setName(PM_SFB_FACTOR,
"BehFSM/SearchForBall/factor");
481 PM->setName(PM_SFB_FAILCOUNTER,
"BehFSM/SearchForBall/failCounter");
482 PM->setName(PM_SFB_DONECOUNTER,
"BehFSM/SearchForBall/doneCounter");
485 PM->setName(PM_GBB_BALLDIST,
"BehFSM/GoBehindBall/ballDist");
486 PM->setName(PM_GBB_BETA,
"BehFSM/GoBehindBall/beta");
487 PM->setName(PM_GBB_RADIUS_MIN,
"BehFSM/GoBehindBall/radius/minDesired");
488 PM->setName(PM_GBB_RADIUS_DES,
"BehFSM/GoBehindBall/radius/desiredHalo");
489 PM->setName(PM_GBB_RADIUS_HALO,
"BehFSM/GoBehindBall/radius/actualHalo");
490 PM->setName(PM_GBB_PATH_LEN,
"BehFSM/GoBehindBall/near/pathLength");
491 PM->setName(PM_GBB_WALK_SPEED,
"BehFSM/GoBehindBall/near/walkSpeed");
492 PM->setName(PM_GBB_PSI_BALL,
"BehFSM/GoBehindBall/lookAt/ballAngle");
493 PM->setName(PM_GBB_PSI_TARGET,
"BehFSM/GoBehindBall/lookAt/targetAngle");
494 PM->setName(PM_GBB_PSI_DES,
"BehFSM/GoBehindBall/lookAt/desiredAngle");
495 PM->setName(PM_GBB_PROXIMITY_VALUE,
"BehFSM/GoBehindBall/near/proximityValue");
496 PM->setName(PM_GBB_NEAR_FACTOR,
"BehFSM/GoBehindBall/nearFactor");
497 PM->setName(PM_GBB_FOOTDUETOLESSDIST,
"BehFSM/GoBehindBall/footSel/footDueToLessDist");
498 PM->setName(PM_GBB_FOOTDUETOBALLPOSE,
"BehFSM/GoBehindBall/footSel/footDueToBallPose");
499 PM->setName(PM_GBB_RECONSIDERFOOT,
"BehFSM/GoBehindBall/footSel/reconsiderFoot");
500 PM->setName(PM_GBB_USERIGHTFOOT,
"BehFSM/GoBehindBall/footSel/useRightFoot");
501 PM->setName(PM_GBB_REQBALLX,
"BehFSM/GoBehindBall/reqBallDir/x");
502 PM->setName(PM_GBB_REQBALLY,
"BehFSM/GoBehindBall/reqBallDir/y");
503 PM->setName(PM_GBB_GCVX,
"BehFSM/GoBehindBall/gcv/x");
504 PM->setName(PM_GBB_GCVY,
"BehFSM/GoBehindBall/gcv/y");
505 PM->setName(PM_GBB_GCVZ,
"BehFSM/GoBehindBall/gcv/z");
506 PM->setName(PM_GBB_GCVN,
"BehFSM/GoBehindBall/gcv/norm");
507 PM->setName(PM_GBB_BALLACTIONTIP,
"BehFSM/GoBehindBall/ballActionTip");
510 PM->setName(PM_DB_WEDGETOL,
"BehFSM/DribbleBall/wedgeTol");
511 PM->setName(PM_DB_WEDGETOLSTILL,
"BehFSM/DribbleBall/wedgeTolStill");
512 PM->setName(PM_DB_FACINGTARGET,
"BehFSM/DribbleBall/facingTarget");
513 PM->setName(PM_DB_FACINGTARGETSTILL,
"BehFSM/DribbleBall/facingTargetStill");
514 PM->setName(PM_DB_BALLXOK,
"BehFSM/DribbleBall/ballXOk");
515 PM->setName(PM_DB_BALLXOKSTILL,
"BehFSM/DribbleBall/ballXOkStill");
516 PM->setName(PM_DB_BALLYOK,
"BehFSM/DribbleBall/ballYOk");
517 PM->setName(PM_DB_BALLYOKSTILL,
"BehFSM/DribbleBall/ballYOkStill");
518 PM->setName(PM_DB_OKTODRIBBLE,
"BehFSM/DribbleBall/okToDribble");
519 PM->setName(PM_DB_OKTODRIBBLESTILL,
"BehFSM/DribbleBall/okToDribbleStill");
520 PM->setName(PM_DBAPP_PREFERRIGHTFOOT,
"BehFSM/DribbleBall/footSel/preferRightFoot");
521 PM->setName(PM_DBAPP_RECONSIDERFOOT,
"BehFSM/DribbleBall/footSel/reconsiderFoot");
522 PM->setName(PM_DBAPP_USERIGHTFOOT,
"BehFSM/DribbleBall/footSel/useRightFoot");
523 PM->setName(PM_DBAPP_ROBOTEX,
"BehFSM/DribbleBall/approach/robotEx");
524 PM->setName(PM_DBAPP_ROBOTEY,
"BehFSM/DribbleBall/approach/robotEy");
525 PM->setName(PM_DBAPP_LOCALPATHANGLE,
"BehFSM/DribbleBall/approach/localPathAngle");
526 PM->setName(PM_DBAPP_UFACTOR,
"BehFSM/DribbleBall/approach/sideStepFactorU");
527 PM->setName(PM_DBAPP_RATIOXY,
"BehFSM/DribbleBall/approach/gcvRatioXY");
530 PM->setName(PM_KB_WEDGETOL,
"BehFSM/KickBall/wedgeTol");
531 PM->setName(PM_KB_BALLERRORLEFTX,
"BehFSM/KickBall/ballError/leftX");
532 PM->setName(PM_KB_BALLERRORLEFTY,
"BehFSM/KickBall/ballError/leftY");
533 PM->setName(PM_KB_BALLERRORRIGHTX,
"BehFSM/KickBall/ballError/rightX");
534 PM->setName(PM_KB_BALLERRORRIGHTY,
"BehFSM/KickBall/ballError/rightY");
535 PM->setName(PM_KB_FACINGTARGET,
"BehFSM/KickBall/facingTarget");
536 PM->setName(PM_KB_FACINGTARGETSTILL,
"BehFSM/KickBall/facingTargetStill");
537 PM->setName(PM_KB_LEFTFOOTOK,
"BehFSM/KickBall/leftFootInPosition");
538 PM->setName(PM_KB_LEFTFOOTOKSTILL,
"BehFSM/KickBall/leftFootInPositionStill");
539 PM->setName(PM_KB_RIGHTFOOTOK,
"BehFSM/KickBall/rightFootInPosition");
540 PM->setName(PM_KB_RIGHTFOOTOKSTILL,
"BehFSM/KickBall/rightFootInPositionStill");
541 PM->setName(PM_KB_OKTOKICK,
"BehFSM/KickBall/okToKick");
542 PM->setName(PM_KB_OKTOKICKSTILL,
"BehFSM/KickBall/okToKickStill");
543 PM->setName(PM_KB_DOKICK,
"BehFSM/KickBall/doKick");
544 PM->setName(PM_KB_BESTKICKRIGHT,
"BehFSM/KickBall/bestKickRight");
545 PM->setName(PM_KB_KICKLOCK,
"BehFSM/KickBall/kickLock");
548 PM->setName(PM_DFB_DIVELOCK,
"BehFSM/DiveForBall/diveLock");
551 if(!PM->checkNames())
552 ROS_ERROR(
"Please review any warnings above that are related to the naming of plotter variables!");