/noggin/players/MotionStates.py

https://github.com/nglennon/nao-man · Python · 195 lines · 129 code · 53 blank · 13 comment · 37 complexity · 9d07f1c26b19e20f3e7a69ee27c083b7 MD5 · raw file

  1. import math
  2. import man.motion as motion
  3. import man.motion.SweetMoves as SweetMoves
  4. import man.motion.RobotGaits as RobotGaits
  5. import man.motion.MotionConstants as MotionConstants
  6. from ..WebotsConfig import WEBOTS_ACTIVE
  7. TO_RAD= math.pi/180.
  8. # def gameInitial(player):
  9. # if player.firstFrame():
  10. # x = motion.StiffnessCommand(.85)
  11. # player.brain.motion.sendStiffness(x)
  12. # return player.stay()
  13. # def gameReady(player):
  14. # if player.firstFrame():
  15. # walkcmd = motion.WalkCommand(x=0,y=0,theta=0)
  16. # player.brain.motion.setNextWalkCommand(walkcmd)
  17. # return player.stay()
  18. def gamePlaying(player):
  19. print "In the players version of game controller state (overridden)"
  20. if player.firstFrame():
  21. player.gainsOn()
  22. player.brain.CoA.setRobotGait(player.brain.motion)
  23. player.brain.tracker.trackBall()
  24. # player.penalizeHeads();
  25. return player.goLater('switchgaits1')
  26. if WEBOTS_ACTIVE:
  27. gameInitial=gamePlaying
  28. print "Webots is active!!!!"
  29. else:
  30. print "Webots is in-active!!!!"
  31. def switchgaits1(player):
  32. if player.firstFrame():
  33. player.setWalk(6,-4,10)
  34. if player.counter == 140:
  35. return player.goLater('switchgaits2')
  36. return player.stay()
  37. def switchgaits2(player):
  38. if player.firstFrame():
  39. player.brain.CoA.setRobotDribbleGait(player.brain.motion)
  40. player.setWalk(10,-10,20)
  41. if player.counter == 240:
  42. return player.goLater('switchgaits3')
  43. return player.stay()
  44. def switchgaits3(player):
  45. if player.firstFrame():
  46. player.brain.CoA.setRobotGait(player.brain.motion)
  47. if player.counter == 140:
  48. return player.goLater('sitdown')
  49. return player.stay()
  50. def walkleft(player):
  51. if player.firstFrame():
  52. player.setWalk(0,4,0)
  53. if player.counter == 100:
  54. return player.goLater('turnright')
  55. return player.stay()
  56. def walkright(player):
  57. if player.firstFrame():
  58. player.setWalk(0,-4,0)
  59. if player.counter == 100:
  60. return player.goLater('walkleft')
  61. return player.stay()
  62. def walktest(player):
  63. if player.firstFrame():
  64. player.setWalk(4,0,0)
  65. if player.counter == 100:
  66. player.brain.motion.resetWalk()
  67. #player.executeMove(SweetMoves.ZERO_POS)
  68. if player.counter == 200:
  69. player.setWalk(4,0,0)
  70. if player.counter == 300:
  71. return player.goLater('stopwalking')
  72. return player.stay()
  73. def walkstraight(player):
  74. if player.firstFrame():
  75. player.setWalk(4,0,0)
  76. if player.counter == 200:
  77. return player.goLater('walkright')
  78. return player.stay()
  79. def walkstraightstop(player):
  80. if player.firstFrame():
  81. player.setWalk(7,0,0)
  82. if player.counter == 300:
  83. return player.goLater('stopwalking')
  84. return player.stay()
  85. def walkturnstop(player):
  86. if player.firstFrame():
  87. player.setWalk(0.0,0,10)
  88. if player.counter == 500:
  89. return player.goLater('stopwalking')
  90. return player.stay()
  91. def turnleft(player):
  92. if player.firstFrame():
  93. player.setWalk(0,0,15)
  94. if player.counter == 180:
  95. return player.goLater('stopwalking')
  96. return player.stay()
  97. def turnright(player):
  98. if player.firstFrame():
  99. player.setWalk(0,0,-15)
  100. if player.counter == 180:
  101. return player.goLater('turnleft')
  102. return player.stay()
  103. def stopwalking(player):
  104. ''' Do nothing'''
  105. if player.firstFrame():
  106. player.stopWalking()
  107. return player.goLater('sitdown')
  108. def standup(player):
  109. if player.firstFrame():
  110. player.executeMove(SweetMoves.ZERO_POS)
  111. return player.stay()
  112. def sitdown(player):
  113. if player.firstFrame():
  114. player.executeMove(SweetMoves.SIT_POS)
  115. elif player.brain.motion.isBodyActive():
  116. return player.goLater("printloc")
  117. return player.stay()
  118. def shutoffgains(player):
  119. if player.firstFrame():
  120. shutoff = motion.StiffnessCommand(0.0)
  121. player.brain.motion.sendStiffness(shutoff)
  122. return player.goLater('nothing')
  123. def odotune(player):
  124. if player.firstFrame():
  125. player.brain.loc.reset()
  126. player.setWalk(6.0,0,10)
  127. if player.counter == 400:
  128. return player.goLater('odostop')
  129. return player.stay()
  130. def odostop(player):
  131. if player.firstFrame():
  132. player.executeMove(SweetMoves.SIT_POS)
  133. elif not player.brain.motion.isBodyActive():
  134. return player.goLater("printloc")
  135. return player.stay()
  136. def printloc(player):
  137. if player.firstFrame():
  138. player.printf("Loc (X,Y,H) (%g,%g,%g"%
  139. (player.brain.my.x,
  140. player.brain.my.y,
  141. player.brain.my.h))
  142. return player.stay()