NimbRo ROS Soccer Package
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
wak_config.h
1 // Walk and kick: Config server parameters
2 // Author: Philipp Allgeuer <pallgeuer@ais.uni-bonn.de>
3 
4  // Ensure header is only included once
5 #ifndef WAK_CONFIG_H
6 #define WAK_CONFIG_H
7 
8 // Includes
9 #include <walk_and_kick/wak_common.h>
10 #include <config_server/parameter.h>
11 
12 // Walk and kick namespace
13 namespace walk_and_kick
14 {
20  class WAKConfig
21  {
22  public:
25  : CONFIG_PARAM_PATH("/walk_and_kick/")
26  , CONFIG_SETTINGS_PATH("/settings/")
27 
28  , sIsPenaltyShoot(CONFIG_SETTINGS_PATH + "general/isPenaltyShoot", false)
29  , sKickoffType(CONFIG_SETTINGS_PATH + "general/kickoffType", KT_UNKNOWN + 1, 1, KT_COUNT - 1, KT_DEFAULT)
30  , sListenToGC(CONFIG_SETTINGS_PATH + "general/listenToGC", false)
31  , sListenToTC(CONFIG_SETTINGS_PATH + "general/listenToTC", false)
32  , sUseAutoPositioning(CONFIG_SETTINGS_PATH + "general/useAutoPositioning", true)
33  , sPlayAsCyan(CONFIG_SETTINGS_PATH + "general/playAsCyan", false)
34  , sPlayOnYellow(CONFIG_SETTINGS_PATH + "general/playOnYellow", true)
35  , sWaitTime(CONFIG_SETTINGS_PATH + "general/waitTime", 0, 5, 20, 15)
36  , sEnableDribble(CONFIG_SETTINGS_PATH + "robot/enableDribble", true)
37  , sEnableKick(CONFIG_SETTINGS_PATH + "robot/enableKick", true)
38  , sEnableObstacles(CONFIG_SETTINGS_PATH + "robot/enableObstacles", true)
39  , sForceKickFoot(CONFIG_SETTINGS_PATH + "robot/forceKickFoot", -1, 1, 1, 0)
40  , sGameRole(CONFIG_SETTINGS_PATH + "robot/gameRole", ROLE_UNKNOWN + 1, 1, ROLE_COUNT - 1, ROLE_DEFAULT)
41 
42  , robotNumber("/game_controller/robotNumber", 0, 1, 5, 0)
43 
44  , enableWAK(CONFIG_PARAM_PATH + "enableWAK", true)
45  , pauseWAK(CONFIG_PARAM_PATH + "pauseWAK", false)
46  , plotData(CONFIG_PARAM_PATH + "plotData", false)
47  , publishTF(CONFIG_PARAM_PATH + "publishTF", false)
48  , publishVis(CONFIG_PARAM_PATH + "publishVis", false)
49  , simpleModeButton(CONFIG_PARAM_PATH + "general/simpleModeButton", true)
50  , globalGcvBwdLimit(CONFIG_PARAM_PATH + "general/globalGcvBwdLimit", 0.0, 0.01, 1.0, 1.0)
51  , globalGcvSpeedLimit(CONFIG_PARAM_PATH + "general/globalGcvSpeedLimit", 0.0, 0.01, 1.0, 1.0)
52  , globalGcvShearXY(CONFIG_PARAM_PATH + "general/globalGcvShearXY", 0.5, 0.01, 2.0, 1.0)
53  , forceKickIfChoice(CONFIG_PARAM_PATH + "general/forceKickIfChoice", false)
54  , forceDribbleIfChoice(CONFIG_PARAM_PATH + "general/forceDribbleIfChoice", false)
55  , reqBallOffsetX(CONFIG_PARAM_PATH + "general/reqBallOffset/x", 0.0, 0.01, 0.5, 0.3)
56  , reqBallOffsetXDribble(CONFIG_PARAM_PATH + "general/reqBallOffset/xDribble", 0.0, 0.01, 0.5, 0.3)
57  , reqBallOffsetYDribbleMag(CONFIG_PARAM_PATH + "general/reqBallOffset/yDribbleMag", 0.01, 0.01, 0.4, 0.08)
58  , reqBallOffsetYLeft(CONFIG_PARAM_PATH + "general/reqBallOffset/yLeft", -0.1, 0.01, 0.4, 0.12)
59  , reqBallOffsetYRight(CONFIG_PARAM_PATH + "general/reqBallOffset/yRight", -0.4, 0.01, 0.1, -0.12)
60  , maxBallTargetWedge(CONFIG_PARAM_PATH + "general/ballTarget/maxBallTargetWedge", 0.6, 0.01, 1.5, 1.1)
61  , minBallTargetWedge(CONFIG_PARAM_PATH + "general/ballTarget/minBallTargetWedge", 0.0, 0.01, 0.5, 0.3)
62  , minBallTargetWedgeExtra(CONFIG_PARAM_PATH + "general/ballTarget/minBallTargetWedgeExtra", 0.0, 0.01, 0.3, 0.1)
63  , minBallToTargetDist(CONFIG_PARAM_PATH + "general/ballTarget/minBallToTargetDist", 0.02, 0.02, 2.0, 0.6)
64  , kickAccuracyWedge(CONFIG_PARAM_PATH + "general/kick/accuracyWedge", 0.1, 0.01, 0.8, 0.4)
65  , kickMaxDist(CONFIG_PARAM_PATH + "general/kick/maxDist", 3.0, 0.05, 6.0, 4.5)
66  , kickMinDist(CONFIG_PARAM_PATH + "general/kick/minDist", 2.0, 0.05, 5.0, 3.5)
67  , kickAngleDriftLeftKick(CONFIG_PARAM_PATH + "general/kick/angleDriftLeftKick", -0.5, 0.01, 0.5, 0.0)
68  , kickAngleDriftRightKick(CONFIG_PARAM_PATH + "general/kick/angleDriftRightKick", -0.5, 0.01, 0.5, 0.0)
69  , dribbleAccuracyWedge(CONFIG_PARAM_PATH + "general/dribble/accuracyWedge", 0.1, 0.01, 0.5, 0.2)
70  , targetPoseReevalTime(CONFIG_PARAM_PATH + "general/targetPoseReevalTime", 0.1, 0.1, 5.0, 2.0)
71 
72  , ballStableMaxDist(CONFIG_PARAM_PATH + "sensors/ballStableMaxDist", 1.0, 0.1, 10.0, 4.0)
73  , ballStableTime(CONFIG_PARAM_PATH + "sensors/ballStableTime", 1.0, 0.5, 15.0, 5.0)
74  , maxBallDist(CONFIG_PARAM_PATH + "sensors/maxBallDist", 3.0, 0.1, 13.0, 10.0)
75  , confDecayTime(CONFIG_PARAM_PATH + "sensors/confDecay/timeToDecay", 0.1, 0.05, 5.0, 1.0)
76  , confDecayHalfLifeBall(CONFIG_PARAM_PATH + "sensors/confDecay/halfLifeBall", 0.1, 0.05, 5.0, 1.0)
77  , confDecayHalfLifeGoal(CONFIG_PARAM_PATH + "sensors/confDecay/halfLifeGoal", 0.1, 0.05, 5.0, 1.0)
78  , confDecayHalfLifePose(CONFIG_PARAM_PATH + "sensors/confDecay/halfLifeRobotPose", 0.1, 0.05, 5.0, 1.0)
79  , confDecayHalfLifeObst(CONFIG_PARAM_PATH + "sensors/confDecay/halfLifeObstacle", 0.1, 0.05, 5.0, 1.0)
80  , confLimitBall(CONFIG_PARAM_PATH + "sensors/confLimit/ball", 0.0, 0.01, 1.0, 0.2)
81  , confLimitBallTarget(CONFIG_PARAM_PATH + "sensors/confLimit/ballTarget", 0.0, 0.01, 1.0, 0.2)
82  , confLimitRobotPose(CONFIG_PARAM_PATH + "sensors/confLimit/robotPose", 0.0, 0.01, 1.0, 0.2)
83  , ballHasMovedDisable(CONFIG_PARAM_PATH + "sensors/ballHasMoved/disable", false)
84  , ballHasMovedMaxRobotDist(CONFIG_PARAM_PATH + "sensors/ballHasMoved/maxRobotDist", 0.5, 0.05, 4.0, 2.0)
85  , ballHasMovedCentreRadius(CONFIG_PARAM_PATH + "sensors/ballHasMoved/centreRadius", 0.1, 0.01, 1.0, 0.4)
86  , ballHasMovedWormTime(CONFIG_PARAM_PATH + "sensors/ballHasMoved/wormTime", 0.1, 0.02, 4.0, 1.5)
87  , locHintTimeout(CONFIG_PARAM_PATH + "sensors/localisation/locHintTimeout", 1.0, 0.2, 20.0, 5.0)
88  , locSetToGoalsEnable(CONFIG_PARAM_PATH + "sensors/localisation/setToGoalsEnable", true)
89  , locSetToGoalsHeadingTol(CONFIG_PARAM_PATH + "sensors/localisation/setToGoalsHeadingTol", 0.0, 0.01, 0.5, 0.3)
90  , locSetToSideEnable(CONFIG_PARAM_PATH + "sensors/localisation/setToSideEnable", true)
91  , locSetToSideHeadingTol(CONFIG_PARAM_PATH + "sensors/localisation/setToSideHeadingTol", 0.0, 0.01, 0.5, 0.2)
92  , locSetToSideOffsetX(CONFIG_PARAM_PATH + "sensors/localisation/setToSideOffsetX", 0.0, 0.01, 1.0, 0.4)
93  , waitTimeReduction(CONFIG_PARAM_PATH + "sensors/waitTimeReduction", 0.0, 0.1, 8.0, 0.0)
94  , timeoutBallInPlay(CONFIG_PARAM_PATH + "sensors/timeoutBallInPlay", 1.0, 0.2, 20.0, 10.0)
95  , timeoutDirectGoal(CONFIG_PARAM_PATH + "sensors/timeoutDirectGoal", 1.0, 0.5, 50.0, 20.0)
96 
97  , gcEnable(CONFIG_PARAM_PATH + "gameController/enableGameController", false)
98  , gcSmoothingTime(CONFIG_PARAM_PATH + "gameController/smoothingTime", 0.0, 0.02, 2.0, 0.75)
99  , gcFreshTime(CONFIG_PARAM_PATH + "gameController/gcFreshTime", 0.1, 0.1, 10.0, 5.0)
100  , gcIgnoreSetIfIllegalPose(CONFIG_PARAM_PATH + "gameController/ignoreSetIfIllegalPose", true)
101  , gcTimeoutKickoffType(CONFIG_PARAM_PATH + "gameController/timeoutKickoffType", 1.0, 0.5, 20.0, 12.0)
102  , gcTimeoutReadyFirst(CONFIG_PARAM_PATH + "gameController/timeoutReadyFirst", 5.0, 1.0, 50.0, 30.0)
103  , gcTimeoutSetFirstNormal(CONFIG_PARAM_PATH + "gameController/timeoutSetFirstNormal", 1.0, 0.5, 20.0, 10.0)
104  , gcTimeoutSetFirstPenalty(CONFIG_PARAM_PATH + "gameController/timeoutSetFirstPenalty", 1.0, 0.5, 20.0, 10.0)
105  , gcTimeoutSetLast(CONFIG_PARAM_PATH + "gameController/timeoutSetLast", 1.0, 0.5, 20.0, 5.0)
106  , gcTimeoutTimeoutLast(CONFIG_PARAM_PATH + "gameController/timeoutTimeoutLast", 1.0, 0.5, 20.0, 5.0)
107 
108  , tcEnable(CONFIG_PARAM_PATH + "teamComms/enableTeamComms", false)
109  , tcFreshTime(CONFIG_PARAM_PATH + "teamComms/tcFreshTime", 0.1, 0.1, 10.0, 5.0)
110 
111  , gazeYawAbsMax(CONFIG_PARAM_PATH + "gazeLimits/yawAbsMax", 0.0, 0.05, 3.0, 1.0)
112  , gazePitchMin(CONFIG_PARAM_PATH + "gazeLimits/pitchMin", -0.5, 0.01, 1.0, 0.0)
113  , gazePitchMax(CONFIG_PARAM_PATH + "gazeLimits/pitchMax", -0.5, 0.01, 1.0, 1.0)
114  , gazePitchNeutral(CONFIG_PARAM_PATH + "gazeLimits/pitchNeutral", -0.5, 0.01, 1.0, 0.0)
115  , gazeVelLimit(CONFIG_PARAM_PATH + "gazeLimits/velLimit", 0.5, 0.05, 5.0, 2.5)
116 
117  , obhEnableObstBallHandling(CONFIG_PARAM_PATH + "gameFSM/obstacleBallHandling/enableObstacleBallHandling", true)
118  , obhObstBeforeBallBuf(CONFIG_PARAM_PATH + "gameFSM/obstacleBallHandling/obstBeforeBallBuf", 0.0, 0.01, 1.0, 0.5)
119  , obhObstBeyondTargetBuf(CONFIG_PARAM_PATH + "gameFSM/obstacleBallHandling/obstBeyondTargetBuf", 0.0, 0.01, 1.0, 0.6)
120  , obhObstClearanceLow(CONFIG_PARAM_PATH + "gameFSM/obstacleBallHandling/obstClearanceLow", 0.0, 0.01, 0.8, 0.2)
121  , obhObstClearanceHigh(CONFIG_PARAM_PATH + "gameFSM/obstacleBallHandling/obstClearanceHigh", 0.0, 0.01, 0.8, 0.4)
122  , obhClearanceAngleLowMax(CONFIG_PARAM_PATH + "gameFSM/obstacleBallHandling/clearanceAngleLowMax", 0.0, 0.01, 1.0, 0.3)
123  , obhClearanceAngleHighMax(CONFIG_PARAM_PATH + "gameFSM/obstacleBallHandling/clearanceAngleHighMax", 0.5, 0.01, 1.5, 1.2)
124  , obhAngleAdjustForFootSel(CONFIG_PARAM_PATH + "gameFSM/obstacleBallHandling/angleAdjustForFootSel", 0.0, 0.01, 1.0, 0.3)
125  , obhAngleAdjustWedgeRatio(CONFIG_PARAM_PATH + "gameFSM/obstacleBallHandling/angleAdjustWedgeRatio", 0.0, 0.01, 1.0, 0.6)
126  , obhFootSelObstBallDistMax(CONFIG_PARAM_PATH + "gameFSM/obstacleBallHandling/footSelObstBallDistMax", 0.0, 0.02, 2.0, 1.0)
127 
128  , posCommonTargetEnable(CONFIG_PARAM_PATH + "gameFSM/positioning/commonTarget/enable", false)
129  , posCommonTargetX(CONFIG_PARAM_PATH + "gameFSM/positioning/commonTarget/targetX", -3, 1, 3, 0)
130  , posCommonTargetY(CONFIG_PARAM_PATH + "gameFSM/positioning/commonTarget/targetY", -2, 1, 2, 0)
131  , posCommonTargetRot(CONFIG_PARAM_PATH + "gameFSM/positioning/commonTarget/targetRot", -8, 1, 8, 0)
132  , posPoseAttackingX(CONFIG_PARAM_PATH + "gameFSM/positioning/poseAttackingX", -1.0, 0.02, 1.0, -0.4)
133  , posPoseAttackingY(CONFIG_PARAM_PATH + "gameFSM/positioning/poseAttackingY", -1.0, 0.02, 1.0, 0.0)
134  , posPoseAttackingT(CONFIG_PARAM_PATH + "gameFSM/positioning/poseAttackingT", -M_PI, 0.05, M_PI, 0.0)
135  , posPoseDefendingX(CONFIG_PARAM_PATH + "gameFSM/positioning/poseDefendingX", -1.0, 0.02, 1.0, -0.2)
136  , posPoseDefendingY(CONFIG_PARAM_PATH + "gameFSM/positioning/poseDefendingY", -1.0, 0.02, 1.0, 0.0)
137  , posPoseDefendingT(CONFIG_PARAM_PATH + "gameFSM/positioning/poseDefendingT", -M_PI, 0.05, M_PI, 0.0)
138  , posPoseGoalieX(CONFIG_PARAM_PATH + "gameFSM/positioning/poseGoalieX", -1.0, 0.02, 1.0, 0.2)
139  , posPoseGoalieY(CONFIG_PARAM_PATH + "gameFSM/positioning/poseGoalieY", -1.0, 0.02, 1.0, 0.0)
140  , posPoseGoalieT(CONFIG_PARAM_PATH + "gameFSM/positioning/poseGoalieT", -M_PI, 0.05, M_PI, 0.0)
141  , posArrivedCostMax(CONFIG_PARAM_PATH + "gameFSM/positioning/arrivedCostMax", 0.0, 0.02, 2.0, 0.5)
142  , posPoseLegalityBuffer(CONFIG_PARAM_PATH + "gameFSM/positioning/poseLegalityBuffer", 0.0, 0.01, 1.0, 0.2)
143  , posPoseLegalWormTime(CONFIG_PARAM_PATH + "gameFSM/positioning/poseLegalWormTime", 0.1, 0.02, 4.0, 1.5)
144 
145  , dbhGoalPostRadius(CONFIG_PARAM_PATH + "gameFSM/defaultBallHandling/goalPostRadius", 0.01, 0.01, 0.5, 0.25)
146  , dbhGoalPostRadiusExtra(CONFIG_PARAM_PATH + "gameFSM/defaultBallHandling/goalPostRadiusExtra", 0.01, 0.01, 1.0, 0.35)
147  , dbhCornerAdjustmentAngle(CONFIG_PARAM_PATH + "gameFSM/defaultBallHandling/corner/adjustmentAngle", 0.01, 0.01, 1.2, 0.8)
148  , dbhCornerTangentAngleLow(CONFIG_PARAM_PATH + "gameFSM/defaultBallHandling/corner/tangentAngleLow", 0.0, 0.01, 0.5, 0.2)
149  , dbhCornerTangentAngleHigh(CONFIG_PARAM_PATH + "gameFSM/defaultBallHandling/corner/tangentAngleHigh", 0.6, 0.01, 1.5, 1.0)
150  , dbhCornerTangentWedgeLow(CONFIG_PARAM_PATH + "gameFSM/defaultBallHandling/corner/tangentWedgeLow", -0.6, 0.01, 0.0, -0.3)
151  , dbhCornerFootSelDisable(CONFIG_PARAM_PATH + "gameFSM/defaultBallHandling/corner/footSelDisable", false)
152  , dbhCornerFootSelInsideX(CONFIG_PARAM_PATH + "gameFSM/defaultBallHandling/corner/footSelInsideX", 0.0, 0.02, 1.5, 0.5)
153  , dbhCornerFootSelOutsideX(CONFIG_PARAM_PATH + "gameFSM/defaultBallHandling/corner/footSelOutsideX", 0.0, 0.02, 1.5, 1.0)
154  , dbhCornerFootSelPostOffY(CONFIG_PARAM_PATH + "gameFSM/defaultBallHandling/corner/footSelPostOffY", 0.5, 0.01, 1.5, 0.8)
155  , dbhNearPostTargetWedge(CONFIG_PARAM_PATH + "gameFSM/defaultBallHandling/nearPostTargetWedge", 0.0, 0.02, 1.5, 0.8)
156  , dbhDbZoneCentreRadius(CONFIG_PARAM_PATH + "gameFSM/defaultBallHandling/dribbleZone/centreRadius", 0.0, 0.01, 1.5, 0.4)
157  , dbhDbZoneNearOppGoalDepth(CONFIG_PARAM_PATH + "gameFSM/defaultBallHandling/dribbleZone/nearOppGoalDepth", 0.0, 0.01, 1.0, 0.7)
158  , dbhDbZoneNearOwnGoalDepth(CONFIG_PARAM_PATH + "gameFSM/defaultBallHandling/dribbleZone/nearOwnGoalDepth", 0.0, 0.01, 2.0, 0.8)
159  , dbhDbZoneDisableAnnulusZone(CONFIG_PARAM_PATH + "gameFSM/defaultBallHandling/dribbleZone/disableAnnulusZone", false)
160  , dbhDbZoneDisableCentreZone(CONFIG_PARAM_PATH + "gameFSM/defaultBallHandling/dribbleZone/disableCentreZone", false)
161  , dbhDbZoneDisableGoalZones(CONFIG_PARAM_PATH + "gameFSM/defaultBallHandling/dribbleZone/disableGoalZones", false)
162 
163  , dgChaseBallIfClose(CONFIG_PARAM_PATH + "gameFSM/defaultGoalie/chaseBallIfClose", true)
164  , dgArrivedCostMax(CONFIG_PARAM_PATH + "gameFSM/defaultGoalie/arrivedCostMax", 0.0, 0.02, 2.0, 0.5)
165  , dgScoringDistLow(CONFIG_PARAM_PATH + "gameFSM/defaultGoalie/scoringDistLow", 0.5, 0.05, 5.0, 2.0)
166  , dgScoringDistHigh(CONFIG_PARAM_PATH + "gameFSM/defaultGoalie/scoringDistHigh", 0.5, 0.05, 5.0, 3.5)
167  , dgScoringDistChaseBall(CONFIG_PARAM_PATH + "gameFSM/defaultGoalie/scoringDistChaseBall", 0.5, 0.05, 5.0, 2.2)
168  , dgBallDistChaseBall(CONFIG_PARAM_PATH + "gameFSM/defaultGoalie/ballDistChaseBall", 0.1, 0.05, 5.0, 1.8)
169  , dgTargetRadiusLow(CONFIG_PARAM_PATH + "gameFSM/defaultGoalie/targetRadiusLow", 0.0, 0.01, 1.0, 0.2)
170  , dgTargetRadiusHigh(CONFIG_PARAM_PATH + "gameFSM/defaultGoalie/targetRadiusHigh", 0.0, 0.02, 2.0, 1.0)
171  , dgLookForBallRadius(CONFIG_PARAM_PATH + "gameFSM/defaultGoalie/lookForBallRadius", 0.0, 0.02, 2.0, 0.6)
172  , dgDistBufFromPosts(CONFIG_PARAM_PATH + "gameFSM/defaultGoalie/distBufFromPosts", 0.0, 0.02, 2.0, 0.6)
173  , dgTargetTimeAgoTimeout(CONFIG_PARAM_PATH + "gameFSM/defaultGoalie/targetTimeAgoTimeout", 5.0, 0.5, 60.0, 30.0)
174  , dgChaseBallWormTime(CONFIG_PARAM_PATH + "gameFSM/defaultGoalie/chaseBallWormTime", 1.0, 0.1, 10.0, 3.0)
175 
176  , gazeBallDistNear(CONFIG_PARAM_PATH + "behFSM/gazeAtBall/distNear", 0.0, 0.05, 2.0, 0.5)
177  , gazeBallDistFar(CONFIG_PARAM_PATH + "behFSM/gazeAtBall/distFar", 1.0, 0.05, 4.0, 1.5)
178  , gazeBallDistHorizon(CONFIG_PARAM_PATH + "behFSM/gazeAtBall/distHorizon", 1.0, 0.05, 6.0, 3.0)
179  , gazeBallPitchFar(CONFIG_PARAM_PATH + "behFSM/gazeAtBall/pitchFar", -0.5, 0.01, 1.0, 0.5)
180  , gazeBallPitchHorizon(CONFIG_PARAM_PATH + "behFSM/gazeAtBall/pitchHorizon", -0.5, 0.01, 1.0, 0.0)
181  , gazeBallTsNear(CONFIG_PARAM_PATH + "behFSM/gazeAtBall/TsNear", 0.1, 0.05, 5.0, 1.5)
182  , gazeBallTsFar(CONFIG_PARAM_PATH + "behFSM/gazeAtBall/TsFar", 0.1, 0.05, 5.0, 0.5)
183  , gazeBallTsMin(CONFIG_PARAM_PATH + "behFSM/gazeAtBall/TsMin", 0.1, 0.05, 5.0, 0.1)
184  , gazeBallTsMax(CONFIG_PARAM_PATH + "behFSM/gazeAtBall/TsMax", 0.1, 0.05, 5.0, 3.0)
185  , gazeBallBoxXMin(CONFIG_PARAM_PATH + "behFSM/gazeAtBall/boxXMin", -0.1, 0.01, 0.5, 0.0)
186  , gazeBallBoxXMax(CONFIG_PARAM_PATH + "behFSM/gazeAtBall/boxXMax", -0.1, 0.01, 0.5, 0.1)
187  , gazeBallBoxYMin(CONFIG_PARAM_PATH + "behFSM/gazeAtBall/boxYMin", -0.4, 0.01, 0.1, -0.1)
188  , gazeBallBoxYMax(CONFIG_PARAM_PATH + "behFSM/gazeAtBall/boxYMax", -0.1, 0.01, 0.4, 0.1)
189  , gazeBallYawDeadband(CONFIG_PARAM_PATH + "behFSM/gazeAtBall/yawDeadband", 0.0, 0.05, 3.0, 1.0)
190  , gazeBallYawFreeLook(CONFIG_PARAM_PATH + "behFSM/gazeAtBall/yawFreeLook", 0.0, 0.05, 3.0, 2.0)
191 
192  , oaEnableObstacleAvoidance(CONFIG_PARAM_PATH + "behFSM/obstacleAvoidance/enableObstacleAvoidance", true)
193  , oaAngleAtObstacleHigh(CONFIG_PARAM_PATH + "behFSM/obstacleAvoidance/angleAtObstacleHigh", 0.2, 0.01, 1.4, 0.8)
194  , oaMaxRadialGcvLow(CONFIG_PARAM_PATH + "behFSM/obstacleAvoidance/maxRadialGcvLow", -1.0, 0.01, 0.0, -1.0)
195  , oaMaxRadialGcvHigh(CONFIG_PARAM_PATH + "behFSM/obstacleAvoidance/maxRadialGcvHigh", 0.0, 0.01, 1.0, 1.0)
196  , oaObstacleRadiusLow(CONFIG_PARAM_PATH + "behFSM/obstacleAvoidance/radiusLow", 0.0, 0.01, 0.5, 0.0)
197  , oaObstacleRadiusMid(CONFIG_PARAM_PATH + "behFSM/obstacleAvoidance/radiusMid", 0.2, 0.01, 1.0, 0.5)
198  , oaObstacleRadiusHigh(CONFIG_PARAM_PATH + "behFSM/obstacleAvoidance/radiusHigh", 0.2, 0.01, 1.0, 0.7)
199  , oaAdjustAngleXYHigh(CONFIG_PARAM_PATH + "behFSM/obstacleAvoidance/adjustAngleXYHigh", 0.1, 0.02, 1.5, 1.0)
200  , oaAdjustGcvZHigh(CONFIG_PARAM_PATH + "behFSM/obstacleAvoidance/adjustGcvZHigh", 0.0, 0.01, 1.0, 0.7)
201 
202  , wtgpAngleErrorCost(CONFIG_PARAM_PATH + "behFSM/walkToGlobalPose/angleErrorCost", 0.0, 0.05, 5.0, 2.0)
203  , wtgpAngleLimitNear(CONFIG_PARAM_PATH + "behFSM/walkToGlobalPose/angleLimitNear", 0.0, 0.01, 1.5, 0.5)
204  , wtgpAngleLimitFar(CONFIG_PARAM_PATH + "behFSM/walkToGlobalPose/angleLimitFar", 0.0, 0.01, 1.5, 0.8)
205  , wtgpDistNear(CONFIG_PARAM_PATH + "behFSM/walkToGlobalPose/distNear", 0.1, 0.01, 1.0, 0.3)
206  , wtgpDistFar(CONFIG_PARAM_PATH + "behFSM/walkToGlobalPose/distFar", 0.5, 0.02, 3.0, 0.8)
207  , wtgpSpeedNearXY(CONFIG_PARAM_PATH + "behFSM/walkToGlobalPose/speedNearXY", 0.0, 0.01, 1.0, 0.7)
208  , wtgpSpeedNearZ(CONFIG_PARAM_PATH + "behFSM/walkToGlobalPose/speedNearZ", 0.0, 0.01, 1.0, 0.7)
209  , wtgpSpeedFarX(CONFIG_PARAM_PATH + "behFSM/walkToGlobalPose/speedFarX", 0.0, 0.01, 1.0, 0.7)
210  , wtgpSpeedFarZ(CONFIG_PARAM_PATH + "behFSM/walkToGlobalPose/speedFarZ", 0.0, 0.01, 1.0, 0.7)
211 
212  , wtpArrivedCostMaxDefault(CONFIG_PARAM_PATH + "behFSM/walkToPose/arrivedCostMaxDefault", 0.0, 0.02, 2.0, 0.5)
213  , wtpArrivedWormTime(CONFIG_PARAM_PATH + "behFSM/walkToPose/arrivedWormTime", 0.1, 0.1, 10.0, 3.0)
214 
215  , paTimeout(CONFIG_PARAM_PATH + "behFSM/panicAttack/timeout", 0.0, 0.5, 30.0, 10.0)
216 
217  , llrGazeFreqScaler(CONFIG_PARAM_PATH + "behFSM/lookLeftRight/gazeFreqScaler", 0.1, 0.02, 2.0, 0.5)
218  , llrGazePitch(CONFIG_PARAM_PATH + "behFSM/lookLeftRight/gazePitch", -0.5, 0.01, 1.0, 0.0)
219 
220  , laGazeDownFirstFactor(CONFIG_PARAM_PATH + "behFSM/lookAround/gazeDownFirstFactor", 0.0, 0.01, 1.0, 0.5)
221  , laGazeMagInitial(CONFIG_PARAM_PATH + "behFSM/lookAround/magInitial", 0.0, 0.02, 2.0, 0.3)
222  , laGazeMagInc(CONFIG_PARAM_PATH + "behFSM/lookAround/magInc", 0.0, 0.02, 2.0, 0.3)
223  , laGazePitchLookUp(CONFIG_PARAM_PATH + "behFSM/lookAround/pitchLookUp", -0.5, 0.01, 1.0, 0.0)
224  , laGazePitchLookDown(CONFIG_PARAM_PATH + "behFSM/lookAround/pitchLookDown", -0.5, 0.01, 1.0, 0.5)
225  , laGazeSplineAccMax(CONFIG_PARAM_PATH + "behFSM/lookAround/splineAccMax", 1.0, 0.1, 10.0, 4.0)
226  , laGazeSplineVelMax(CONFIG_PARAM_PATH + "behFSM/lookAround/splineVelMax", 0.2, 0.02, 3.0, 1.0)
227 
228  , sfbTCBallPoseEnable(CONFIG_PARAM_PATH + "behFSM/searchForBall/tcBallPose/enable", true)
229  , sfbTCBallPoseDebounce(CONFIG_PARAM_PATH + "behFSM/searchForBall/tcBallPose/debounce", 0.0, 0.05, 5.0, 1.5)
230  , sfbStateRequestTimeout(CONFIG_PARAM_PATH + "behFSM/searchForBall/stateRequestTimeout", 1.0, 0.2, 20.0, 5.0)
231  , sfbResumeCycleTime(CONFIG_PARAM_PATH + "behFSM/searchForBall/resumeCycleTime", 0.1, 0.1, 10.0, 5.0)
232  , sfbStayCoolTime(CONFIG_PARAM_PATH + "behFSM/searchForBall/stayCoolTime", 0.1, 0.1, 10.0, 5.0)
233  , sfbBackupEnabled(CONFIG_PARAM_PATH + "behFSM/searchForBall/backup/enabled", true)
234  , sfbBackupMargin(CONFIG_PARAM_PATH + "behFSM/searchForBall/backup/margin", 0.2, 0.02, 2.0, 0.6)
235  , sfbBackupWalkGcvX(CONFIG_PARAM_PATH + "behFSM/searchForBall/backup/walkGcvX", -1.0, 0.01, 0.0, -0.5)
236  , sfbBackupWalkTime(CONFIG_PARAM_PATH + "behFSM/searchForBall/backup/walkTime", 0.1, 0.1, 10.0, 3.0)
237  , sfbBackupWaitTime(CONFIG_PARAM_PATH + "behFSM/searchForBall/backup/waitTime", 0.1, 0.1, 10.0, 1.5)
238  , sfbLBPFreshTime(CONFIG_PARAM_PATH + "behFSM/searchForBall/lastBallPose/ballPoseFreshTime", 0.5, 0.5, 10.0, 3.0)
239  , sfbLBPRadiusNear(CONFIG_PARAM_PATH + "behFSM/searchForBall/lastBallPose/radiusNear", 0.0, 0.05, 2.5, 1.5)
240  , sfbLBPRadiusFar(CONFIG_PARAM_PATH + "behFSM/searchForBall/lastBallPose/radiusFar", 3.0, 0.05, 8.0, 6.0)
241  , sfbLBPMinBallPoseDurNear(CONFIG_PARAM_PATH + "behFSM/searchForBall/lastBallPose/minBallPoseDurNear", 0.0, 0.1, 5.0, 2.0)
242  , sfbLBPMinBallPoseDurFar(CONFIG_PARAM_PATH + "behFSM/searchForBall/lastBallPose/minBallPoseDurFar", 0.0, 0.1, 5.0, 0.3)
243  , sfbLBPMaxBallPoseDurNear(CONFIG_PARAM_PATH + "behFSM/searchForBall/lastBallPose/maxBallPoseDurNear", 0.0, 0.1, 10.0, 10.0)
244  , sfbLBPMaxBallPoseDurFar(CONFIG_PARAM_PATH + "behFSM/searchForBall/lastBallPose/maxBallPoseDurFar", 0.0, 0.1, 10.0, 1.0)
245  , sfbLBPMinTimeToWalkNear(CONFIG_PARAM_PATH + "behFSM/searchForBall/lastBallPose/minTimeToWalkNear", 1.0, 0.5, 15.0, 2.0)
246  , sfbLBPMinTimeToWalkFar(CONFIG_PARAM_PATH + "behFSM/searchForBall/lastBallPose/minTimeToWalkFar", 1.0, 0.5, 15.0, 8.0)
247  , sfbSpinInsteadRadiusBwd(CONFIG_PARAM_PATH + "behFSM/searchForBall/spinInsteadRadiusBwd", 0.0, 0.05, 4.0, 2.0)
248  , sfbSpinInsteadRadiusFwd(CONFIG_PARAM_PATH + "behFSM/searchForBall/spinInsteadRadiusFwd", 0.0, 0.05, 4.0, 1.5)
249  , sfbWtgpDoneRadius(CONFIG_PARAM_PATH + "behFSM/searchForBall/walkToGlobalPose/doneRadius", 0.0, 0.02, 2.0, 0.4)
250  , sfbWtgpDoneTime(CONFIG_PARAM_PATH + "behFSM/searchForBall/walkToGlobalPose/doneTime", 0.1, 0.1, 6.0, 2.0)
251  , sfbWtgpFailTime(CONFIG_PARAM_PATH + "behFSM/searchForBall/walkToGlobalPose/failTime", 0.1, 0.1, 6.0, 2.0)
252  , sfbWtgpDistanceLow(CONFIG_PARAM_PATH + "behFSM/searchForBall/walkToGlobalPose/distanceLow", 0.0, 0.05, 5.0, 1.0)
253  , sfbWtgpDistanceHigh(CONFIG_PARAM_PATH + "behFSM/searchForBall/walkToGlobalPose/distanceHigh", 3.0, 0.05, 10.0, 7.0)
254  , sfbWtgpTimeoutLow(CONFIG_PARAM_PATH + "behFSM/searchForBall/walkToGlobalPose/timeoutLow", 3.0, 0.5, 50.0, 10.0)
255  , sfbWtgpTimeoutHigh(CONFIG_PARAM_PATH + "behFSM/searchForBall/walkToGlobalPose/timeoutHigh", 3.0, 1.0, 100.0, 50.0)
256  , sfbSpinGcvZ(CONFIG_PARAM_PATH + "behFSM/searchForBall/spinGcvZ", 0.0, 0.01, 1.0, 0.7)
257  , sfbSpinGcvZSlow(CONFIG_PARAM_PATH + "behFSM/searchForBall/spinGcvZSlow", 0.0, 0.01, 1.0, 0.35)
258  , sfbSpinTime(CONFIG_PARAM_PATH + "behFSM/searchForBall/spinTime", 0.1, 0.1, 15.0, 8.0)
259  , sfbSpinDebounceTime(CONFIG_PARAM_PATH + "behFSM/searchForBall/spinDebounceTime", 0.0, 0.5, 20.0, 8.0)
260  , sfbWalkFwdGcvX(CONFIG_PARAM_PATH + "behFSM/searchForBall/walkFwdGcvX", 0.0, 0.01, 1.0, 0.7)
261  , sfbWalkFwdTime(CONFIG_PARAM_PATH + "behFSM/searchForBall/walkFwdTime", 0.1, 0.1, 15.0, 6.0)
262  , sfbWalkFwdWaitTime(CONFIG_PARAM_PATH + "behFSM/searchForBall/walkFwdWaitTime", 0.1, 0.1, 10.0, 1.0)
263 
264  , gbbAbsBetaHigh(CONFIG_PARAM_PATH + "behFSM/goBehindBall/absBetaHigh", 0.0, 0.02, 2.0, 1.5)
265  , gbbAbsBetaLow(CONFIG_PARAM_PATH + "behFSM/goBehindBall/absBetaLow", 0.0, 0.02, 2.0, 0.5)
266  , gbbAngleLimitFar(CONFIG_PARAM_PATH + "behFSM/goBehindBall/angleLimitFar", 0.1, 0.01, 1.5, 0.8)
267  , gbbAngleLimitNear(CONFIG_PARAM_PATH + "behFSM/goBehindBall/angleLimitNear", 0.1, 0.01, 1.5, 1.0)
268  , gbbFootChangeMinConf(CONFIG_PARAM_PATH + "behFSM/goBehindBall/footSel/changeFootMinConf", 0.0, 0.01, 1.0, 0.5)
269  , gbbFootChangeWormTime(CONFIG_PARAM_PATH + "behFSM/goBehindBall/footSel/changeFootWormTime", 0.1, 0.1, 10.0, 2.0)
270  , gbbFootSelBallPoseYRatio(CONFIG_PARAM_PATH + "behFSM/goBehindBall/footSel/ballPoseYRatio", 0.0, 0.01, 1.0, 0.4)
271  , gbbFootSelWeightBallPose(CONFIG_PARAM_PATH + "behFSM/goBehindBall/footSel/weightBallPose", 0.0, 0.02, 2.0, 1.0)
272  , gbbFootSelWeightLessDist(CONFIG_PARAM_PATH + "behFSM/goBehindBall/footSel/weightLessDist", 0.0, 0.02, 2.0, 1.0)
273  , gbbFootSelMinLRDist(CONFIG_PARAM_PATH + "behFSM/goBehindBall/footSel/minLRDist", 0.0, 0.005, 0.5, 0.1)
274  , gbbUnforceFootTime(CONFIG_PARAM_PATH + "behFSM/goBehindBall/footSel/unforceFootTime", 0.1, 0.05, 5.0, 2.0)
275  , gbbFullPathLen(CONFIG_PARAM_PATH + "behFSM/goBehindBall/fullPathLen", 0.5, 0.02, 2.0, 0.9)
276  , gbbMinBallDistLeft(CONFIG_PARAM_PATH + "behFSM/goBehindBall/minBallDistLeft", 0.1, 0.01, 1.0, 0.5)
277  , gbbMinBallDistRight(CONFIG_PARAM_PATH + "behFSM/goBehindBall/minBallDistRight", 0.1, 0.01, 1.0, 0.5)
278  , gbbProximityBetaDistTol(CONFIG_PARAM_PATH + "behFSM/goBehindBall/proximity/betaDistTol", 0.01, 0.002, 0.2, 0.08)
279  , gbbProximityRadiusTol(CONFIG_PARAM_PATH + "behFSM/goBehindBall/proximity/radiusTol", 0.01, 0.002, 0.2, 0.08)
280  , gbbProximityValueMax(CONFIG_PARAM_PATH + "behFSM/goBehindBall/proximity/valueMax", 0.1, 0.01, 1.0, 0.7)
281  , gbbPsiAwayFromBallBuf(CONFIG_PARAM_PATH + "behFSM/goBehindBall/psiAwayFromBallBuf", 0.01, 0.01, 0.5, 0.15)
282  , gbbPsiAwayFromBallMax(CONFIG_PARAM_PATH + "behFSM/goBehindBall/psiAwayFromBallMax", 0.5, 0.01, 1.5, 1.0)
283  , gbbRadiusFar(CONFIG_PARAM_PATH + "behFSM/goBehindBall/radiusFar", 1.3, 0.01, 2.5, 1.5)
284  , gbbRadiusNear(CONFIG_PARAM_PATH + "behFSM/goBehindBall/radiusNear", 0.5, 0.01, 1.2, 1.0)
285  , gbbReqBallOffFadingAngle(CONFIG_PARAM_PATH + "behFSM/goBehindBall/reqBallOffsetFadingAngle", 0.0, 0.01, 1.0, 0.6)
286  , gbbSpeedLimitXYZ(CONFIG_PARAM_PATH + "behFSM/goBehindBall/speed/speedLimitXYZ", 0.0, 0.01, 1.0, 1.0)
287  , gbbSpeedFarX(CONFIG_PARAM_PATH + "behFSM/goBehindBall/speed/speedFarX", 0.0, 0.01, 1.0, 1.0)
288  , gbbSpeedFarZ(CONFIG_PARAM_PATH + "behFSM/goBehindBall/speed/speedFarZ", 0.0, 0.01, 1.0, 1.0)
289  , gbbSpeedNearXY(CONFIG_PARAM_PATH + "behFSM/goBehindBall/speed/speedNearXY", 0.0, 0.01, 1.0, 1.0)
290  , gbbSpeedNearXYMin(CONFIG_PARAM_PATH + "behFSM/goBehindBall/speed/speedNearXYMin", 0.0, 0.01, 0.6, 0.05)
291  , gbbSpeedNearZ(CONFIG_PARAM_PATH + "behFSM/goBehindBall/speed/speedNearZ", 0.0, 0.01, 1.0, 1.0)
292  , gbbSpeedNearZMin(CONFIG_PARAM_PATH + "behFSM/goBehindBall/speed/speedNearZMin", 0.0, 0.01, 0.4, 0.05)
293  , gbbStuckMaxBallDist(CONFIG_PARAM_PATH + "behFSM/goBehindBall/stuck/maxBallDist", 0.0, 0.02, 2.0, 1.0)
294  , gbbStuckMaxGcv(CONFIG_PARAM_PATH + "behFSM/goBehindBall/stuck/maxGcv", 0.0, 0.01, 1.0, 0.4)
295  , gbbStuckTime(CONFIG_PARAM_PATH + "behFSM/goBehindBall/stuck/time", 3.0, 0.5, 30.0, 10.0)
296  , gbbVisRobotHalo(CONFIG_PARAM_PATH + "behFSM/goBehindBall/vis/showRobotHalo", false)
297  , gbbVisSimple(CONFIG_PARAM_PATH + "behFSM/goBehindBall/vis/simpleVis", false)
298 
299  , dbAppFootChangeWormTime(CONFIG_PARAM_PATH + "behFSM/dribbleBall/approach/changeFootWormTime", 0.1, 0.1, 5.0, 1.0)
300  , dbAppAdjustPathAngleHigh(CONFIG_PARAM_PATH + "behFSM/dribbleBall/approach/adjustPathAngleHigh", 0.1, 0.02, 1.5, 0.6)
301  , dbAppAdjustWalkAngleMax(CONFIG_PARAM_PATH + "behFSM/dribbleBall/approach/adjustWalkAngleMax", 0.0, 0.01, 1.0, 0.0)
302  , dbAppAngleErrLimit(CONFIG_PARAM_PATH + "behFSM/dribbleBall/approach/angleErrLimit", 0.2, 0.01, 1.2, 0.8)
303  , dbAppFunnelCurveRadius(CONFIG_PARAM_PATH + "behFSM/dribbleBall/approach/funnelCurveRadius", 0.2, 0.01, 1.2, 0.5)
304  , dbAppFunnelNeckMag(CONFIG_PARAM_PATH + "behFSM/dribbleBall/approach/funnelNeckMag", 0.0, 0.005, 0.3, 0.1)
305  , dbAppFunnelEdgeExtra(CONFIG_PARAM_PATH + "behFSM/dribbleBall/approach/funnelEdgeExtra", 0.1, 0.01, 0.8, 0.2)
306  , dbAppMinPathTargetX(CONFIG_PARAM_PATH + "behFSM/dribbleBall/approach/minPathTargetX", 0.1, 0.01, 1.0, 0.5)
307  , dbAppMaxPathTargetSlope(CONFIG_PARAM_PATH + "behFSM/dribbleBall/approach/maxPathTargetSlope", 0.3, 0.01, 1.3, 0.6)
308  , dbAppPathTargetLineOffsetX(CONFIG_PARAM_PATH + "behFSM/dribbleBall/approach/pathTargetLineOffsetX", 0.0, 0.005, 0.5, 0.2)
309  , dbAppPathOverdriveY(CONFIG_PARAM_PATH + "behFSM/dribbleBall/approach/pathOverdriveY", 1.0, 0.01, 2.0, 1.0)
310  , dbAppGcvSpeedX(CONFIG_PARAM_PATH + "behFSM/dribbleBall/approach/gcvSpeedX", 0.0, 0.01, 1.0, 1.0)
311  , dbAppGcvSpeedY(CONFIG_PARAM_PATH + "behFSM/dribbleBall/approach/gcvSpeedY", 0.0, 0.01, 1.0, 1.0)
312  , dbAppGcvSpeedZ(CONFIG_PARAM_PATH + "behFSM/dribbleBall/approach/gcvSpeedZ", 0.0, 0.01, 1.0, 1.0)
313  , dbAppGcvSpeedLimit(CONFIG_PARAM_PATH + "behFSM/dribbleBall/approach/gcvSpeedLimit", 0.0, 0.01, 1.0, 1.0)
314  , dbBallMaxX(CONFIG_PARAM_PATH + "behFSM/dribbleBall/conditions/ballMaxX", 0.5, 0.05, 3.0, 2.0)
315  , dbBallMaxYMag(CONFIG_PARAM_PATH + "behFSM/dribbleBall/conditions/ballMaxYMag", 0.0, 0.01, 0.4, 0.15)
316  , dbBallMaxYMagExtra(CONFIG_PARAM_PATH + "behFSM/dribbleBall/conditions/ballMaxYMagExtra", 0.0, 0.01, 0.2, 0.05)
317  , dbBallSpreadSlope(CONFIG_PARAM_PATH + "behFSM/dribbleBall/conditions/ballSpreadSlope", 0.0, 0.01, 0.6, 0.15)
318  , dbBallSpreadSlopeExtra(CONFIG_PARAM_PATH + "behFSM/dribbleBall/conditions/ballSpreadSlopeExtra", 0.0, 0.01, 0.3, 0.05)
319  , dbBallSpreadAcc(CONFIG_PARAM_PATH + "behFSM/dribbleBall/conditions/ballSpreadAcc", 0.0, 0.02, 2.0, 0.0)
320  , dbBallSpreadAccExtra(CONFIG_PARAM_PATH + "behFSM/dribbleBall/conditions/ballSpreadAccExtra", 0.0, 0.02, 2.0, 0.0)
321  , dbTargetMinWedgeHigh(CONFIG_PARAM_PATH + "behFSM/dribbleBall/conditions/targetMinWedgeHigh", 0.4, 0.01, 1.2, 0.8)
322  , dbTargetDistForMinWedge(CONFIG_PARAM_PATH + "behFSM/dribbleBall/conditions/targetDistForMinWedge", 0.5, 0.01, 1.5, 1.0)
323  , dbTargetDistForMinWedgeHigh(CONFIG_PARAM_PATH + "behFSM/dribbleBall/conditions/targetDistForMinWedgeHigh", 1.6, 0.05, 5.0, 3.0)
324  , dbTargetWedgeForFarBall(CONFIG_PARAM_PATH + "behFSM/dribbleBall/conditions/targetWedgeForFarBall", 0.5, 0.05, 3.0, 2.0)
325  , dbBallDistForFarBall(CONFIG_PARAM_PATH + "behFSM/dribbleBall/conditions/ballDistForFarBall", 0.1, 0.02, 2.0, 0.5)
326  , dbOkToDribbleWormTime(CONFIG_PARAM_PATH + "behFSM/dribbleBall/conditions/okToDribbleWormTime", 0.1, 0.02, 2.0, 0.4)
327  , dbStillOkToDribbleWormTime(CONFIG_PARAM_PATH + "behFSM/dribbleBall/conditions/stillOkToDribbleWormTime", 0.1, 0.02, 2.0, 0.4)
328 
329  , kbBallErrorXFwd(CONFIG_PARAM_PATH + "behFSM/kickBall/conditions/ballErrorXFwd", 0.0, 0.01, 0.2, 0.1)
330  , kbBallErrorXFwdExtra(CONFIG_PARAM_PATH + "behFSM/kickBall/conditions/ballErrorXFwdExtra", 0.0, 0.01, 0.2, 0.05)
331  , kbBallErrorYIwd(CONFIG_PARAM_PATH + "behFSM/kickBall/conditions/ballErrorYIwd", 0.0, 0.01, 0.2, 0.05)
332  , kbBallErrorYIwdExtra(CONFIG_PARAM_PATH + "behFSM/kickBall/conditions/ballErrorYIwdExtra", 0.0, 0.01, 0.2, 0.02)
333  , kbBallErrorYOwd(CONFIG_PARAM_PATH + "behFSM/kickBall/conditions/ballErrorYOwd", 0.0, 0.01, 0.2, 0.05)
334  , kbBallErrorYOwdExtra(CONFIG_PARAM_PATH + "behFSM/kickBall/conditions/ballErrorYOwdExtra", 0.0, 0.01, 0.2, 0.02)
335  , kbOkToKickWormTime(CONFIG_PARAM_PATH + "behFSM/kickBall/conditions/okToKickWormTime", 0.1, 0.02, 2.0, 0.4)
336 
337  , visFootLength(CONFIG_PARAM_PATH + "visualisation/footLength", 0.01, 0.005, 0.4, 0.2)
338  , visFootWidth(CONFIG_PARAM_PATH + "visualisation/footWidth", 0.01, 0.005, 0.2, 0.1)
339  , visFootOffsetX(CONFIG_PARAM_PATH + "visualisation/footOffsetX", -0.2, 0.005, 0.2, 0.0)
340  , visFootOffsetY(CONFIG_PARAM_PATH + "visualisation/footOffsetY", 0.0, 0.005, 0.4, 0.15)
341 
342  , debugBlockGCPackets(CONFIG_PARAM_PATH + "debug/blockGCPackets", false)
343  , debugForceHalt(CONFIG_PARAM_PATH + "debug/forceHalt", true)
344  , debugForceNoBall(CONFIG_PARAM_PATH + "debug/forceNoBall", false)
345  , debugForceNoPose(CONFIG_PARAM_PATH + "debug/forceNoPose", false)
346  , debugForceNoKick(CONFIG_PARAM_PATH + "debug/forceNoKick", false)
347  , debugForceNoDive(CONFIG_PARAM_PATH + "debug/forceNoDive", false)
348  , debugMsgSensors(CONFIG_PARAM_PATH + "debug/msgSensors", false)
349  , debugMsgSFB(CONFIG_PARAM_PATH + "debug/msgSFB", false)
350  , debugMsgGBB(CONFIG_PARAM_PATH + "debug/msgGBB", false)
351  , debugMsgKB(CONFIG_PARAM_PATH + "debug/msgKB", false)
352  , debugMsgDB(CONFIG_PARAM_PATH + "debug/msgDB", false)
353  , debugMsgWTP(CONFIG_PARAM_PATH + "debug/msgWTP", false)
354  , debugMsgWTGP(CONFIG_PARAM_PATH + "debug/msgWTGP", false)
355  , debugMsgROSTopics(CONFIG_PARAM_PATH + "debug/msgROSTopics", false)
356  , debugNoStoppedGcv(CONFIG_PARAM_PATH + "debug/noStoppedGcv", false)
357 
358  , forceKickLeftFoot(false)
359  , forceKickRightFoot(false)
360  , confDecayFactorBall(0.0)
361  , confDecayFactorGoal(0.0)
362  , confDecayFactorPose(0.0)
363  , confDecayFactorObst(0.0)
364  {
365  // Note: The following parameters have callbacks set outside of the WAKConfig class:
366  // sListenToGC: WAKRosInterface::updateModeStateText
367  // plotData: WAKRosInterface::callbackPlotData
368  // debugBlockGCPackets: WAKRosInterface::handleBlockGCPackets
369  // debugNoStoppedGcv: WAKRosInterface::handleNoStoppedGcv
370  // ballHasMovedWormTime: TheWorm::updateWormTime
371  // dgChaseBallWormTime: TheWorm::updateWormTime
372  // wtpArrivedWormTime: TheWorm::updateWormTime
373  // gbbFootChangeWormTime: TheWorm::updateWormTime
374  // dbAppFootChangeWormTime: TheWorm::updateWormTime
375  // kbOkToKickWormTime: TheWorm::updateWormTime
376  // dbOkToDribbleWormTime: TheWorm::updateWormTime
377  // dbStillOkToDribbleWormTime: TheWorm::updateWormTime
378  // visFootLength: WAKBagMarkerMan::WAKBagMarkerMan
379  // visFootWidth: WAKBagMarkerMan::WAKBagMarkerMan
380  // visFootOffsetX: WAKBagMarkerMan::WAKBagMarkerMan
381  // visFootOffsetY: WAKBagMarkerMan::WAKBagMarkerMan
382 
383  // Set up config parameter callbacks
384  sForceKickFoot.setCallback(boost::bind(&WAKConfig::handleForceKickFoot, this), true);
385  confDecayHalfLifeBall.setCallback(boost::bind(&WAKConfig::handleHalfLife, this, &confDecayHalfLifeBall, &confDecayFactorBall), true);
386  confDecayHalfLifeGoal.setCallback(boost::bind(&WAKConfig::handleHalfLife, this, &confDecayHalfLifeGoal, &confDecayFactorGoal), true);
387  confDecayHalfLifePose.setCallback(boost::bind(&WAKConfig::handleHalfLife, this, &confDecayHalfLifePose, &confDecayFactorPose), true);
388  confDecayHalfLifeObst.setCallback(boost::bind(&WAKConfig::handleHalfLife, this, &confDecayHalfLifeObst, &confDecayFactorObst), true);
389  forceKickIfChoice.setCallback(boost::bind(&WAKConfig::handleForceKickIfChoice, this), false);
390  forceDribbleIfChoice.setCallback(boost::bind(&WAKConfig::handleForceDribbleIfChoice, this), true);
391  }
392 
395  const std::string CONFIG_PARAM_PATH;
396  const std::string CONFIG_SETTINGS_PATH;
397 
401  config_server::Parameter<bool> sIsPenaltyShoot;
402  config_server::Parameter<int> sKickoffType;
403  config_server::Parameter<bool> sListenToGC;
404  config_server::Parameter<bool> sListenToTC;
405  config_server::Parameter<bool> sUseAutoPositioning;
406  config_server::Parameter<bool> sPlayAsCyan;
407  config_server::Parameter<bool> sPlayOnYellow;
408  config_server::Parameter<int> sWaitTime;
409  config_server::Parameter<bool> sEnableDribble;
410  config_server::Parameter<bool> sEnableKick;
411  config_server::Parameter<bool> sEnableObstacles;
412  config_server::Parameter<int> sForceKickFoot;
413  config_server::Parameter<int> sGameRole;
415 
418  config_server::Parameter<int> robotNumber;
420 
423  config_server::Parameter<bool> enableWAK;
424  config_server::Parameter<bool> pauseWAK;
425  config_server::Parameter<bool> plotData;
426  config_server::Parameter<bool> publishTF;
427  config_server::Parameter<bool> publishVis;
428  config_server::Parameter<bool> simpleModeButton;
429  config_server::Parameter<float> globalGcvBwdLimit;
430  config_server::Parameter<float> globalGcvSpeedLimit;
431  config_server::Parameter<float> globalGcvShearXY;
432  config_server::Parameter<bool> forceKickIfChoice;
433  config_server::Parameter<bool> forceDribbleIfChoice;
434  config_server::Parameter<float> reqBallOffsetX;
435  config_server::Parameter<float> reqBallOffsetXDribble;
436  config_server::Parameter<float> reqBallOffsetYDribbleMag;
437  config_server::Parameter<float> reqBallOffsetYLeft;
438  config_server::Parameter<float> reqBallOffsetYRight;
439  config_server::Parameter<float> maxBallTargetWedge;
440  config_server::Parameter<float> minBallTargetWedge;
441  config_server::Parameter<float> minBallTargetWedgeExtra;
442  config_server::Parameter<float> minBallToTargetDist;
443  config_server::Parameter<float> kickAccuracyWedge;
444  config_server::Parameter<float> kickMaxDist;
445  config_server::Parameter<float> kickMinDist;
446  config_server::Parameter<float> kickAngleDriftLeftKick;
447  config_server::Parameter<float> kickAngleDriftRightKick;
448  config_server::Parameter<float> dribbleAccuracyWedge;
449  config_server::Parameter<float> targetPoseReevalTime;
451 
454  config_server::Parameter<float> ballStableMaxDist;
455  config_server::Parameter<float> ballStableTime;
456  config_server::Parameter<float> maxBallDist;
457  config_server::Parameter<float> confDecayTime;
458  config_server::Parameter<float> confDecayHalfLifeBall;
459  config_server::Parameter<float> confDecayHalfLifeGoal;
460  config_server::Parameter<float> confDecayHalfLifePose;
461  config_server::Parameter<float> confDecayHalfLifeObst;
462  config_server::Parameter<float> confLimitBall;
463  config_server::Parameter<float> confLimitBallTarget;
464  config_server::Parameter<float> confLimitRobotPose;
465  config_server::Parameter<bool> ballHasMovedDisable;
466  config_server::Parameter<float> ballHasMovedMaxRobotDist;
467  config_server::Parameter<float> ballHasMovedCentreRadius;
468  config_server::Parameter<float> ballHasMovedWormTime;
469  config_server::Parameter<float> locHintTimeout;
470  config_server::Parameter<bool> locSetToGoalsEnable;
471  config_server::Parameter<float> locSetToGoalsHeadingTol;
472  config_server::Parameter<bool> locSetToSideEnable;
473  config_server::Parameter<float> locSetToSideHeadingTol;
474  config_server::Parameter<float> locSetToSideOffsetX;
475  config_server::Parameter<float> waitTimeReduction;
476  config_server::Parameter<float> timeoutBallInPlay;
477  config_server::Parameter<float> timeoutDirectGoal;
479 
482  config_server::Parameter<bool> gcEnable;
483  config_server::Parameter<float> gcSmoothingTime;
484  config_server::Parameter<float> gcFreshTime;
485  config_server::Parameter<bool> gcIgnoreSetIfIllegalPose;
486  config_server::Parameter<float> gcTimeoutKickoffType;
487  config_server::Parameter<float> gcTimeoutReadyFirst;
488  config_server::Parameter<float> gcTimeoutSetFirstNormal;
489  config_server::Parameter<float> gcTimeoutSetFirstPenalty;
490  config_server::Parameter<float> gcTimeoutSetLast;
491  config_server::Parameter<float> gcTimeoutTimeoutLast;
493 
496  config_server::Parameter<bool> tcEnable;
497  config_server::Parameter<float> tcFreshTime;
499 
502  config_server::Parameter<float> gazeYawAbsMax;
503  config_server::Parameter<float> gazePitchMin;
504  config_server::Parameter<float> gazePitchMax;
505  config_server::Parameter<float> gazePitchNeutral;
506  config_server::Parameter<float> gazeVelLimit;
508 
511  config_server::Parameter<bool> obhEnableObstBallHandling;
512  config_server::Parameter<float> obhObstBeforeBallBuf;
513  config_server::Parameter<float> obhObstBeyondTargetBuf;
514  config_server::Parameter<float> obhObstClearanceLow;
515  config_server::Parameter<float> obhObstClearanceHigh;
516  config_server::Parameter<float> obhClearanceAngleLowMax;
517  config_server::Parameter<float> obhClearanceAngleHighMax;
518  config_server::Parameter<float> obhAngleAdjustForFootSel;
519  config_server::Parameter<float> obhAngleAdjustWedgeRatio;
520  config_server::Parameter<float> obhFootSelObstBallDistMax;
522 
525  config_server::Parameter<bool> posCommonTargetEnable;
526  config_server::Parameter<int> posCommonTargetX;
527  config_server::Parameter<int> posCommonTargetY;
528  config_server::Parameter<int> posCommonTargetRot;
529  config_server::Parameter<float> posPoseAttackingX;
530  config_server::Parameter<float> posPoseAttackingY;
531  config_server::Parameter<float> posPoseAttackingT;
532  config_server::Parameter<float> posPoseDefendingX;
533  config_server::Parameter<float> posPoseDefendingY;
534  config_server::Parameter<float> posPoseDefendingT;
535  config_server::Parameter<float> posPoseGoalieX;
536  config_server::Parameter<float> posPoseGoalieY;
537  config_server::Parameter<float> posPoseGoalieT;
538  config_server::Parameter<float> posArrivedCostMax;
539  config_server::Parameter<float> posPoseLegalityBuffer;
540  config_server::Parameter<float> posPoseLegalWormTime;
542 
545  config_server::Parameter<float> dbhGoalPostRadius;
546  config_server::Parameter<float> dbhGoalPostRadiusExtra;
547  config_server::Parameter<float> dbhCornerAdjustmentAngle;
548  config_server::Parameter<float> dbhCornerTangentAngleLow;
549  config_server::Parameter<float> dbhCornerTangentAngleHigh;
550  config_server::Parameter<float> dbhCornerTangentWedgeLow;
551  config_server::Parameter<bool> dbhCornerFootSelDisable;
552  config_server::Parameter<float> dbhCornerFootSelInsideX;
553  config_server::Parameter<float> dbhCornerFootSelOutsideX;
554  config_server::Parameter<float> dbhCornerFootSelPostOffY;
555  config_server::Parameter<float> dbhNearPostTargetWedge;
556  config_server::Parameter<float> dbhDbZoneCentreRadius;
557  config_server::Parameter<float> dbhDbZoneNearOppGoalDepth;
558  config_server::Parameter<float> dbhDbZoneNearOwnGoalDepth;
559  config_server::Parameter<bool> dbhDbZoneDisableAnnulusZone;
560  config_server::Parameter<bool> dbhDbZoneDisableCentreZone;
561  config_server::Parameter<bool> dbhDbZoneDisableGoalZones;
562 
566  config_server::Parameter<bool> dgChaseBallIfClose;
567  config_server::Parameter<float> dgArrivedCostMax;
568  config_server::Parameter<float> dgScoringDistLow;
569  config_server::Parameter<float> dgScoringDistHigh;
570  config_server::Parameter<float> dgScoringDistChaseBall;
571  config_server::Parameter<float> dgBallDistChaseBall;
572  config_server::Parameter<float> dgTargetRadiusLow;
573  config_server::Parameter<float> dgTargetRadiusHigh;
574  config_server::Parameter<float> dgLookForBallRadius;
575  config_server::Parameter<float> dgDistBufFromPosts;
576  config_server::Parameter<float> dgTargetTimeAgoTimeout;
577  config_server::Parameter<float> dgChaseBallWormTime;
579 
582  config_server::Parameter<float> gazeBallDistNear;
583  config_server::Parameter<float> gazeBallDistFar;
584  config_server::Parameter<float> gazeBallDistHorizon;
585  config_server::Parameter<float> gazeBallPitchFar;
586  config_server::Parameter<float> gazeBallPitchHorizon;
587  config_server::Parameter<float> gazeBallTsNear;
588  config_server::Parameter<float> gazeBallTsFar;
589  config_server::Parameter<float> gazeBallTsMin;
590  config_server::Parameter<float> gazeBallTsMax;
591  config_server::Parameter<float> gazeBallBoxXMin;
592  config_server::Parameter<float> gazeBallBoxXMax;
593  config_server::Parameter<float> gazeBallBoxYMin;
594  config_server::Parameter<float> gazeBallBoxYMax;
595  config_server::Parameter<float> gazeBallYawDeadband;
596  config_server::Parameter<float> gazeBallYawFreeLook;
598 
601  config_server::Parameter<bool> oaEnableObstacleAvoidance;
602  config_server::Parameter<float> oaAngleAtObstacleHigh;
603  config_server::Parameter<float> oaMaxRadialGcvLow;
604  config_server::Parameter<float> oaMaxRadialGcvHigh;
605  config_server::Parameter<float> oaObstacleRadiusLow;
606  config_server::Parameter<float> oaObstacleRadiusMid;
607  config_server::Parameter<float> oaObstacleRadiusHigh;
608  config_server::Parameter<float> oaAdjustAngleXYHigh;
609  config_server::Parameter<float> oaAdjustGcvZHigh;
611 
614  config_server::Parameter<float> wtgpAngleErrorCost;
615  config_server::Parameter<float> wtgpAngleLimitNear;
616  config_server::Parameter<float> wtgpAngleLimitFar;
617  config_server::Parameter<float> wtgpDistNear;
618  config_server::Parameter<float> wtgpDistFar;
619  config_server::Parameter<float> wtgpSpeedNearXY;
620  config_server::Parameter<float> wtgpSpeedNearZ;
621  config_server::Parameter<float> wtgpSpeedFarX;
622  config_server::Parameter<float> wtgpSpeedFarZ;
624 
627  config_server::Parameter<float> wtpArrivedCostMaxDefault;
628  config_server::Parameter<float> wtpArrivedWormTime;
630 
633  config_server::Parameter<float> paTimeout;
635 
638  config_server::Parameter<float> llrGazeFreqScaler;
639  config_server::Parameter<float> llrGazePitch;
640 
644  config_server::Parameter<float> laGazeDownFirstFactor;
645  config_server::Parameter<float> laGazeMagInitial;
646  config_server::Parameter<float> laGazeMagInc;
647  config_server::Parameter<float> laGazePitchLookUp;
648  config_server::Parameter<float> laGazePitchLookDown;
649  config_server::Parameter<float> laGazeSplineAccMax;
650  config_server::Parameter<float> laGazeSplineVelMax;
652 
655  config_server::Parameter<bool> sfbTCBallPoseEnable;
656  config_server::Parameter<float> sfbTCBallPoseDebounce;
657  config_server::Parameter<float> sfbStateRequestTimeout;
658  config_server::Parameter<float> sfbResumeCycleTime;
659  config_server::Parameter<float> sfbStayCoolTime;
660  config_server::Parameter<bool> sfbBackupEnabled;
661  config_server::Parameter<float> sfbBackupMargin;
662  config_server::Parameter<float> sfbBackupWalkGcvX;
663  config_server::Parameter<float> sfbBackupWalkTime;
664  config_server::Parameter<float> sfbBackupWaitTime;
665  config_server::Parameter<float> sfbLBPFreshTime;
666  config_server::Parameter<float> sfbLBPRadiusNear;
667  config_server::Parameter<float> sfbLBPRadiusFar;
668  config_server::Parameter<float> sfbLBPMinBallPoseDurNear;
669  config_server::Parameter<float> sfbLBPMinBallPoseDurFar;
670  config_server::Parameter<float> sfbLBPMaxBallPoseDurNear;
671  config_server::Parameter<float> sfbLBPMaxBallPoseDurFar;
672  config_server::Parameter<float> sfbLBPMinTimeToWalkNear;
673  config_server::Parameter<float> sfbLBPMinTimeToWalkFar;
674  config_server::Parameter<float> sfbSpinInsteadRadiusBwd;
675  config_server::Parameter<float> sfbSpinInsteadRadiusFwd;
676  config_server::Parameter<float> sfbWtgpDoneRadius;
677  config_server::Parameter<float> sfbWtgpDoneTime;
678  config_server::Parameter<float> sfbWtgpFailTime;
679  config_server::Parameter<float> sfbWtgpDistanceLow;
680  config_server::Parameter<float> sfbWtgpDistanceHigh;
681  config_server::Parameter<float> sfbWtgpTimeoutLow;
682  config_server::Parameter<float> sfbWtgpTimeoutHigh;
683  config_server::Parameter<float> sfbSpinGcvZ;
684  config_server::Parameter<float> sfbSpinGcvZSlow;
685  config_server::Parameter<float> sfbSpinTime;
686  config_server::Parameter<float> sfbSpinDebounceTime;
687  config_server::Parameter<float> sfbWalkFwdGcvX;
688  config_server::Parameter<float> sfbWalkFwdTime;
689  config_server::Parameter<float> sfbWalkFwdWaitTime;
691 
694  config_server::Parameter<float> gbbAbsBetaHigh;
695  config_server::Parameter<float> gbbAbsBetaLow;
696  config_server::Parameter<float> gbbAngleLimitFar;
697  config_server::Parameter<float> gbbAngleLimitNear;
698  config_server::Parameter<float> gbbFootChangeMinConf;
699  config_server::Parameter<float> gbbFootChangeWormTime;
700  config_server::Parameter<float> gbbFootSelBallPoseYRatio;
701  config_server::Parameter<float> gbbFootSelWeightBallPose;
702  config_server::Parameter<float> gbbFootSelWeightLessDist;
703  config_server::Parameter<float> gbbFootSelMinLRDist;
704  config_server::Parameter<float> gbbUnforceFootTime;
705  config_server::Parameter<float> gbbFullPathLen;
706  config_server::Parameter<float> gbbMinBallDistLeft;
707  config_server::Parameter<float> gbbMinBallDistRight;
708  config_server::Parameter<float> gbbProximityBetaDistTol;
709  config_server::Parameter<float> gbbProximityRadiusTol;
710  config_server::Parameter<float> gbbProximityValueMax;
711  config_server::Parameter<float> gbbPsiAwayFromBallBuf;
712  config_server::Parameter<float> gbbPsiAwayFromBallMax;
713  config_server::Parameter<float> gbbRadiusFar;
714  config_server::Parameter<float> gbbRadiusNear;
715  config_server::Parameter<float> gbbReqBallOffFadingAngle;
716  config_server::Parameter<float> gbbSpeedLimitXYZ;
717  config_server::Parameter<float> gbbSpeedFarX;
718  config_server::Parameter<float> gbbSpeedFarZ;
719  config_server::Parameter<float> gbbSpeedNearXY;
720  config_server::Parameter<float> gbbSpeedNearXYMin;
721  config_server::Parameter<float> gbbSpeedNearZ;
722  config_server::Parameter<float> gbbSpeedNearZMin;
723  config_server::Parameter<float> gbbStuckMaxBallDist;
724  config_server::Parameter<float> gbbStuckMaxGcv;
725  config_server::Parameter<float> gbbStuckTime;
726  config_server::Parameter<bool> gbbVisRobotHalo;
727  config_server::Parameter<bool> gbbVisSimple;
729 
732  config_server::Parameter<float> dbAppFootChangeWormTime;
733  config_server::Parameter<float> dbAppAdjustPathAngleHigh;
734  config_server::Parameter<float> dbAppAdjustWalkAngleMax;
735  config_server::Parameter<float> dbAppAngleErrLimit;
736  config_server::Parameter<float> dbAppFunnelCurveRadius;
737  config_server::Parameter<float> dbAppFunnelNeckMag;
738  config_server::Parameter<float> dbAppFunnelEdgeExtra;
739  config_server::Parameter<float> dbAppMinPathTargetX;
740  config_server::Parameter<float> dbAppMaxPathTargetSlope;
741  config_server::Parameter<float> dbAppPathTargetLineOffsetX;
742  config_server::Parameter<float> dbAppPathOverdriveY;
743  config_server::Parameter<float> dbAppGcvSpeedX;
744  config_server::Parameter<float> dbAppGcvSpeedY;
745  config_server::Parameter<float> dbAppGcvSpeedZ;
746  config_server::Parameter<float> dbAppGcvSpeedLimit;
747  config_server::Parameter<float> dbBallMaxX;
748  config_server::Parameter<float> dbBallMaxYMag;
749  config_server::Parameter<float> dbBallMaxYMagExtra;
750  config_server::Parameter<float> dbBallSpreadSlope;
751  config_server::Parameter<float> dbBallSpreadSlopeExtra;
752  config_server::Parameter<float> dbBallSpreadAcc;
753  config_server::Parameter<float> dbBallSpreadAccExtra;
754  config_server::Parameter<float> dbTargetMinWedgeHigh;
755  config_server::Parameter<float> dbTargetDistForMinWedge;
756  config_server::Parameter<float> dbTargetDistForMinWedgeHigh;
757  config_server::Parameter<float> dbTargetWedgeForFarBall;
758  config_server::Parameter<float> dbBallDistForFarBall;
759  config_server::Parameter<float> dbOkToDribbleWormTime;
760  config_server::Parameter<float> dbStillOkToDribbleWormTime;
762 
765  config_server::Parameter<float> kbBallErrorXFwd;
766  config_server::Parameter<float> kbBallErrorXFwdExtra;
767  config_server::Parameter<float> kbBallErrorYIwd;
768  config_server::Parameter<float> kbBallErrorYIwdExtra;
769  config_server::Parameter<float> kbBallErrorYOwd;
770  config_server::Parameter<float> kbBallErrorYOwdExtra;
771  config_server::Parameter<float> kbOkToKickWormTime;
773 
776  config_server::Parameter<float> visFootLength;
777  config_server::Parameter<float> visFootWidth;
778  config_server::Parameter<float> visFootOffsetX;
779  config_server::Parameter<float> visFootOffsetY;
781 
784  config_server::Parameter<bool> debugBlockGCPackets;
785  config_server::Parameter<bool> debugForceHalt;
786  config_server::Parameter<bool> debugForceNoBall;
787  config_server::Parameter<bool> debugForceNoPose;
788  config_server::Parameter<bool> debugForceNoKick;
789  config_server::Parameter<bool> debugForceNoDive;
790  config_server::Parameter<bool> debugMsgSensors;
791  config_server::Parameter<bool> debugMsgSFB;
792  config_server::Parameter<bool> debugMsgGBB;
793  config_server::Parameter<bool> debugMsgKB;
794  config_server::Parameter<bool> debugMsgDB;
795  config_server::Parameter<bool> debugMsgWTP;
796  config_server::Parameter<bool> debugMsgWTGP;
797  config_server::Parameter<bool> debugMsgROSTopics;
798  config_server::Parameter<bool> debugNoStoppedGcv;
800 
801  // Extra parameters
802  bool forceKickLeftFoot;
803  bool forceKickRightFoot;
804  float confDecayFactorBall;
805  float confDecayFactorGoal;
806  float confDecayFactorPose;
807  float confDecayFactorObst;
808 
809  // Config parameter callbacks
810  void handleForceKickFoot() { forceKickLeftFoot = (sForceKickFoot() < 0); forceKickRightFoot = (sForceKickFoot() > 0); }
811  void handleHalfLife(const config_server::Parameter<float>* configParam, float* factor) { float cycles = configParam->get()/TINC; *factor = (cycles <= 1e-6f ? 0.0 : std::pow(0.5, 1.0/cycles)); }
812  void handleForceKickIfChoice() { if(forceKickIfChoice() && forceDribbleIfChoice()) forceDribbleIfChoice.set(false); }
813  void handleForceDribbleIfChoice() { if(forceKickIfChoice() && forceDribbleIfChoice()) forceKickIfChoice.set(false); }
814  };
815 }
816 
817 #endif
818 // EOF
Configuration struct for the walk and kick node.
Definition: wak_config.h:20
config_server::Parameter< float > posPoseAttackingX
The common target rotation to be used as the destination of positioning (multiplied by 45 degrees...
Definition: wak_config.h:529
config_server::Parameter< bool > dbhDbZoneDisableCentreZone
Boolean flag to disable the circular dribble zone in the centre of the field.
Definition: wak_config.h:560
config_server::Parameter< float > llrGazePitch
Multiplicative scaler for the frequency of the head scan relative to a nominal frequency calculated f...
Definition: wak_config.h:639
config_server::Parameter< float > dbhDbZoneNearOwnGoalDepth
The distance from the own goal line (the one we are defending) closer than which there is a dribble z...
Definition: wak_config.h:558
config_server::Parameter< float > globalGcvShearXY
The desired multiplicative scaling of y over x walking velocities to ensure that the robot walks in t...
Definition: wak_config.h:431
config_server::Parameter< float > kickAngleDriftLeftKick
The average angle that the ball drifts CCW from straight ahead when being kicked by the left foot...
Definition: wak_config.h:446
config_server::Parameter< float > minBallTargetWedgeExtra
The minimum extra allowed ball target wedge size for "still ok" checks.
Definition: wak_config.h:441
config_server::Parameter< float > maxBallDist
Maximum believable reported distance to the ball.
Definition: wak_config.h:456
config_server::Parameter< float > gbbFootSelBallPoseYRatio
Lateral distance of the ball from the centre of the field (expressed as a ratio of the half field wid...
Definition: wak_config.h:700
config_server::Parameter< float > posPoseDefendingY
The global x offset from the behind-circle position for defending the kickoff if playing on the yello...
Definition: wak_config.h:533
config_server::Parameter< float > dbhCornerFootSelInsideX
The maximum x offset of the corner foot selection area from the goal line towards the centre line at ...
Definition: wak_config.h:552
config_server::Parameter< float > globalGcvBwdLimit
The global limit to the allowed backwards walking speed, the whole GCV is rescaled if necessary to sa...
Definition: wak_config.h:429
config_server::Parameter< float > posPoseDefendingT
The global y offset from the behind-circle position for defending the kickoff if playing on the yello...
Definition: wak_config.h:534
config_server::Parameter< int > posCommonTargetX
Flag whether to force the use of a common target as the destination of positioning.
Definition: wak_config.h:526
config_server::Parameter< bool > dbhDbZoneDisableAnnulusZone
Boolean flag to disable the annulus-shaped dribble zone that is defined by the kick distance paramete...
Definition: wak_config.h:559
config_server::Parameter< float > dbhDbZoneNearOppGoalDepth
The distance from the opponent's goal line (the one we score in) closer than which there is a dribble...
Definition: wak_config.h:557
WAKConfig()
Constructor.
Definition: wak_config.h:24
config_server::Parameter< int > posCommonTargetRot
The common target y value to be used as the destination of positioning (-2 = Neg side line...
Definition: wak_config.h:528
config_server::Parameter< float > kickAngleDriftRightKick
The average angle that the ball drifts CCW from straight ahead when being kicked by the right foot...
Definition: wak_config.h:447
config_server::Parameter< float > maxBallTargetWedge
The maximum allowed ball target wedge size.
Definition: wak_config.h:439
config_server::Parameter< float > wtgpAngleErrorCost
Scale factor to convert the cost of angular deviations in the final pose to equivalent distance devia...
Definition: wak_config.h:614
config_server::Parameter< float > dbhCornerTangentAngleLow
The tangent angle at which the maximum nominal ball target corner adjustment should be dbhCornerAdjus...
Definition: wak_config.h:548
config_server::Parameter< float > dbhCornerFootSelOutsideX
The maximum x offset of the corner foot selection area from the goal line towards the centre line at ...
Definition: wak_config.h:553
config_server::Parameter< float > posPoseLegalWormTime
The safety distance that the robot should be away from an illegal pose to ensure that it is not posit...
Definition: wak_config.h:540
config_server::Parameter< float > posPoseAttackingY
The global x offset from the centre for taking the kickoff if playing on the yellow goal (centre x is...
Definition: wak_config.h:530
config_server::Parameter< float > dbhNearPostTargetWedge
The fixed target wedge that should be used near the goal posts and nets to ensure that the robot just...
Definition: wak_config.h:555
config_server::Parameter< float > dbBallDistForFarBall
The ball distance, in addition to the required ball distance for dribble, for which a ball is conside...
Definition: wak_config.h:758
config_server::Parameter< float > dbhCornerFootSelPostOffY
The minimum y offset of the corner foot selection area from the outer goal post.
Definition: wak_config.h:554
config_server::Parameter< float > dribbleAccuracyWedge
The angular accuracy of normal dribbling, expressed as a wedge angle.
Definition: wak_config.h:448
const std::string CONFIG_PARAM_PATH
Path for the walk and kick configuration parameters on the config server.
Definition: wak_config.h:395
config_server::Parameter< float > kickMinDist
The minimum distance that the robot can normally kick.
Definition: wak_config.h:445
config_server::Parameter< float > posPoseGoalieX
The global for defending the kickoff if playing on the yellow goal.
Definition: wak_config.h:535
config_server::Parameter< float > posPoseGoalieT
The global y offset from the goal centre for the goalie if playing on the yellow goal (goal centre y ...
Definition: wak_config.h:537
config_server::Parameter< float > posArrivedCostMax
The global for the goalie if playing on the yellow goal.
Definition: wak_config.h:538
config_server::Parameter< float > dbhCornerAdjustmentAngle
The maximum angle by which to adjust the ball target to get the ball out of the corner quicker...
Definition: wak_config.h:547
config_server::Parameter< bool > dbhCornerFootSelDisable
Boolean flag whether to disable corner foot selection.
Definition: wak_config.h:551
config_server::Parameter< float > dbhGoalPostRadiusExtra
An additive value to the goal post radius, to provide extra buffer distance around the goal post for ...
Definition: wak_config.h:546
config_server::Parameter< float > gbbFootSelWeightLessDist
The higher this weight, the more the robot chooses the foot with the shorter distance to the behind b...
Definition: wak_config.h:702
config_server::Parameter< float > dbhGoalPostRadius
The radius from the centre of a goal post at which the ball can roll past the goal post (plus a littl...
Definition: wak_config.h:545
config_server::Parameter< float > gbbFootSelWeightBallPose
The higher this weight, the more the robot chooses a foot that tends to put the robot in a position b...
Definition: wak_config.h:701
config_server::Parameter< float > posPoseDefendingX
The global for taking the kickoff if playing on the yellow goal.
Definition: wak_config.h:532
config_server::Parameter< float > reqBallOffsetYDribbleMag
The required dribble y ball offsets are calculated as the mean of the normal y left/right ball offset...
Definition: wak_config.h:436
config_server::Parameter< int > posCommonTargetY
The common target x value to be used as the destination of positioning (-3 = Neg goal line...
Definition: wak_config.h:527
config_server::Parameter< float > posPoseGoalieY
The global x offset from the goal centre for the goalie if playing on the yellow goal (goal centre x ...
Definition: wak_config.h:536
config_server::Parameter< float > gbbFootSelMinLRDist
Minimum distance between the required left and right foot poses that is used for the normalisation of...
Definition: wak_config.h:703
config_server::Parameter< float > posPoseAttackingT
The global y offset from the centre for taking the kickoff if playing on the yellow goal (centre y is...
Definition: wak_config.h:531
config_server::Parameter< float > dbhDbZoneCentreRadius
The radius of the dribble zone at the centre of the field.
Definition: wak_config.h:556
config_server::Parameter< float > globalGcvSpeedLimit
The master commanded GCV norm limit, effectively globally capping the speed that can be commanded by ...
Definition: wak_config.h:430
config_server::Parameter< float > kickAccuracyWedge
The angular accuracy of a normal kick, expressed as a wedge angle.
Definition: wak_config.h:443
config_server::Parameter< float > dbhCornerTangentWedgeLow
The tangent wedge at which the tanget wedge should start possibly limiting the ball target corner adj...
Definition: wak_config.h:550
config_server::Parameter< float > kickMaxDist
The maximum distance the robot can normally ever kick.
Definition: wak_config.h:444
const std::string CONFIG_SETTINGS_PATH
Path for the robot settings on the config server.
Definition: wak_config.h:396
config_server::Parameter< float > dbhCornerTangentAngleHigh
The tangent angle at which the maximum nominal ball target corner adjustment should be zero (coerced ...
Definition: wak_config.h:549
config_server::Parameter< float > minBallTargetWedge
The minimum allowed ball target wedge size.
Definition: wak_config.h:440
config_server::Parameter< bool > dbhDbZoneDisableGoalZones
Boolean flag to disable the two goal-strip dribble zones.
Definition: wak_config.h:561