robocup_knowledge
rgo2019/challenge_restaurant.py
Go to the documentation of this file.
1 # RESTAURANT KNOWLEDGE FILE RGO2019
2 
3 # TU/e Robotics
4 from robocup_knowledge import knowledge_loader
5 
6 # Common knowledge
7 common = knowledge_loader.load_knowledge("common")
8 
9 order_grammar = """
10 O[P] -> ORDER[P] | can i have a ORDER[P] | i would like ORDER[P] | can i get ORDER[P] | could i have ORDER[P] | may i get ORDER[P] | bring me ORDER[P]
11 ORDER[OO] -> COMBO[OO] | BEVERAGE[OO]
12 BEVERAGE[{"beverage": B}] -> BEV[B]
13 BEVERAGE[{"beverage": B}] -> DET BEV[B]
14 COMBO[{"food1": F1, "food2": F2}] -> FOOD[F1] and FOOD[F2] | FOOD[F1] with FOOD[F2]
15 COMBO[{"food1": F1, "food2": F2}] -> DET FOOD[F1] and FOOD[F2] | DET FOOD[F1] with FOOD[F2]
16 COMBO[{"food1": F1, "food2": F2}] -> FOOD[F1] and DET FOOD[F2] | FOOD[F1] with DET FOOD[F2]
17 COMBO[{"food1": F1, "food2": F2}] -> DET FOOD[F1] and DET FOOD[F2] | DET FOOD[F1] with DET FOOD[F2]
18 DET -> a | an
19 """
20 
21 # COMBO[{"food1": F1, "food2": F2}] -> DET FOOD[F1] and DET FOOD[F2] | DET FOOD[F1] with DET FOOD[F2]
22 # BEVERAGE[{"beverage": B}] -> DET BEV[B]
23 
24 # Add drinks
25 for d in common.objects:
26  if d["category"] == "drink":
27  order_grammar += "\nBEV['{}'] -> {}[B]".format(d["name"], d["name"].replace('_', ' '))
28  elif d["category"] == "food" or d["category"] == "snack":
29  order_grammar += "\nFOOD['{}'] -> {}".format(d["name"], d["name"].replace('_', ' '))
30 
31 if __name__ == "__main__":
32  import rospy
33  from robot_skills.api import Api
34  rospy.init_node('blaat')
35  a = Api("", None)
36  rospy.sleep(rospy.Duration(0.5))
37  while True:
38  result = a.query("blaat", order_grammar, "O")
39  import ipdb;ipdb.set_trace()