/cob_default_robot_behavior/src/cob_default_robot_behavior/default_behavior.py

https://github.com/ipa320/cob_robots · Python · 173 lines · 123 code · 33 blank · 17 comment · 4 complexity · a1b79238cc8175e87edf6a4ce056a55e MD5 · raw file

  1. #!/usr/bin/env python
  2. #
  3. # Copyright 2017 Fraunhofer Institute for Manufacturing Engineering and Automation (IPA)
  4. #
  5. # Licensed under the Apache License, Version 2.0 (the "License");
  6. # you may not use this file except in compliance with the License.
  7. # You may obtain a copy of the License at
  8. #
  9. # http://www.apache.org/licenses/LICENSE-2.0
  10. #
  11. # Unless required by applicable law or agreed to in writing, software
  12. # distributed under the License is distributed on an "AS IS" BASIS,
  13. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. # See the License for the specific language governing permissions and
  15. # limitations under the License.
  16. import rospy
  17. from simple_script_server import *
  18. sss = simple_script_server()
  19. from std_msgs.msg import ColorRGBA
  20. from std_srvs.srv import Trigger, TriggerResponse
  21. from cob_light.srv import *
  22. from cob_light.msg import *
  23. def setLightCyan_cb(req):
  24. sss.set_light("light_base","cyan")
  25. sss.set_light("light_torso","cyan")
  26. return TriggerResponse(True, "")
  27. def setLightRed_cb(req):
  28. sss.set_light("light_base","red")
  29. sss.set_light("light_torso","red")
  30. return TriggerResponse(True, "")
  31. def setLightGreen_cb(req):
  32. sss.set_light("light_base","green")
  33. sss.set_light("light_torso","green")
  34. return TriggerResponse(True, "")
  35. def setLightCyanSweep_cb(req):
  36. #rospy.wait_for_service('/light_torso/set_light')
  37. sss.set_light("light_base","cyan")
  38. try:
  39. set_light_torso = rospy.ServiceProxy("/light_torso/set_light",SetLightMode)
  40. light_mode = LightMode()
  41. cyan_color = ColorRGBA()
  42. cyan_color.r = 0.0
  43. cyan_color.g = 1.0
  44. cyan_color.b = 0.5
  45. cyan_color.a = 0.4
  46. light_mode.colors.append(cyan_color)
  47. light_mode.mode = 8
  48. light_mode.frequency = 30
  49. resp = set_light_torso(light_mode)
  50. print(resp)
  51. except rospy.ServiceException as e:
  52. print("Service call failed: %s"%e)
  53. return TriggerResponse(False, "Calling light service failed.")
  54. return TriggerResponse(True, "")
  55. def setLightCyanBreath_cb(req):
  56. #rospy.wait_for_service('/light_torso/set_light')
  57. sss.set_light("light_base","cyan")
  58. try:
  59. set_light_torso = rospy.ServiceProxy("/light_torso/set_light",SetLightMode)
  60. light_mode = LightMode()
  61. cyan_color = ColorRGBA()
  62. cyan_color.r = 0.0
  63. cyan_color.g = 1.0
  64. cyan_color.b = 0.5
  65. cyan_color.a = 0.4
  66. light_mode.colors.append(cyan_color)
  67. light_mode.mode = 3
  68. light_mode.frequency = 0.25
  69. resp = set_light_torso(light_mode)
  70. print(resp)
  71. except rospy.ServiceException as e:
  72. print("Service call failed: %s"%e)
  73. return TriggerResponse(False, "Calling light service failed.")
  74. return TriggerResponse(True, "")
  75. def setMimicAfraid_cb(req):
  76. sss.set_mimic("mimic",["afraid",0,1])
  77. return TriggerResponse(True, "")
  78. def setMimicAngry_cb(req):
  79. sss.set_mimic("mimic",["angry",0,1])
  80. return TriggerResponse(True, "")
  81. def setMimicAsking_cb(req):
  82. sss.set_mimic("mimic",["asking",0,1])
  83. return TriggerResponse(True, "")
  84. def setMimicBlinkingLeft_cb(req):
  85. sss.set_mimic("mimic",["blinking_left",0,1])
  86. return TriggerResponse(True, "")
  87. def setMimicBlinking_cb(req):
  88. sss.set_mimic("mimic",["blinking",0,1])
  89. return TriggerResponse(True, "")
  90. def setMimicBlinkingRight_cb(req):
  91. sss.set_mimic("mimic",["blinking_right",0,1])
  92. return TriggerResponse(True, "")
  93. def setMimicBored_cb(req):
  94. sss.set_mimic("mimic",["bored",0,1])
  95. return TriggerResponse(True, "")
  96. def setMimicBusy_cb(req):
  97. sss.set_mimic("mimic",["busy",0,1])
  98. return TriggerResponse(True, "")
  99. def setMimicConfused_cb(req):
  100. sss.set_mimic("mimic",["confused",0,1])
  101. return TriggerResponse(True, "")
  102. def setMimicDefault_cb(req):
  103. sss.set_mimic("mimic",["default",0,1])
  104. return TriggerResponse(True, "")
  105. def setMimicFallingAsleep_cb(req):
  106. sss.set_mimic("mimic",["falling_asleep",0,1])
  107. return TriggerResponse(True, "")
  108. def setMimicHappy_cb(req):
  109. sss.set_mimic("mimic",["happy",0,1])
  110. return TriggerResponse(True, "")
  111. def setMimicLaughing_cb(req):
  112. sss.set_mimic("mimic",["laughing",0,1])
  113. return TriggerResponse(True, "")
  114. def setMimicNo_cb(req):
  115. sss.set_mimic("mimic",["no",0,1])
  116. return TriggerResponse(True, "")
  117. def setMimicSad_cb(req):
  118. sss.set_mimic("mimic",["sad",0,1])
  119. return TriggerResponse(True, "")
  120. def setMimicSearching_cb(req):
  121. sss.set_mimic("mimic",["searching",0,1])
  122. return TriggerResponse(True, "")
  123. def setMimicSleeping_cb(req):
  124. sss.set_mimic("mimic",["sleeping",0,1])
  125. return TriggerResponse(True, "")
  126. def setMimicSurprised_cb(req):
  127. sss.set_mimic("mimic",["surprised",0,1])
  128. return TriggerResponse(True, "")
  129. def setMimicTired_cb(req):
  130. sss.set_mimic("mimic",["tired",0,1])
  131. return TriggerResponse(True, "")
  132. def setMimicWakingUp_cb(req):
  133. sss.set_mimic("mimic",["waking_up",0,1])
  134. return TriggerResponse(True, "")
  135. def setMimicYes_cb(req):
  136. sss.set_mimic("mimic",["yes",0,1])
  137. return TriggerResponse(True, "")
  138. def soundHello_cb(req):
  139. sss.say("sound", ["Hello, my name is Care O bot, a mobile service robot from Mojin Robotics."])
  140. return TriggerResponse(True, "")