2023-10-25 10:34:46 +08:00
|
|
|
|
"""
|
|
|
|
|
视觉语言导航
|
|
|
|
|
识别顾客(NPC)靠近、打招呼、对话、领位导航到适合人数的空闲餐桌
|
|
|
|
|
开始条件:监测到顾客靠近
|
|
|
|
|
结束条件:完成领位,语音:“请问您想喝点什么?”,并等待下一步指令
|
|
|
|
|
"""
|
2023-11-09 08:47:57 +08:00
|
|
|
|
import os
|
|
|
|
|
import pickle
|
|
|
|
|
import time
|
|
|
|
|
import random
|
|
|
|
|
|
|
|
|
|
import matplotlib.pyplot as plt
|
|
|
|
|
import numpy as np
|
|
|
|
|
|
|
|
|
|
from robowaiter.scene.scene import Scene,init_world # TODO: 文件名改成Scene.py
|
2023-10-25 10:34:46 +08:00
|
|
|
|
|
|
|
|
|
from robowaiter.scene.scene import Scene
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class SceneVLN(Scene):
|
|
|
|
|
def __init__(self, robot):
|
|
|
|
|
super().__init__(robot)
|
2023-11-09 08:47:57 +08:00
|
|
|
|
# 在这里加入场景中发生的事件, (事件发生的时间,事件函数)
|
|
|
|
|
self.event_list = [
|
|
|
|
|
(5, self.create_chat_event("测试VLN:前往桌子")),
|
|
|
|
|
]
|
2023-10-25 10:34:46 +08:00
|
|
|
|
|
2023-10-25 22:12:15 +08:00
|
|
|
|
def _reset(self):
|
2023-11-09 08:47:57 +08:00
|
|
|
|
file_name = './robowaiter/algos/navigate/DstarLite/map_5.pkl'
|
|
|
|
|
with open(file_name, 'rb') as file:
|
|
|
|
|
map = pickle.load(file)
|
2023-10-25 22:12:15 +08:00
|
|
|
|
|
2023-11-09 08:47:57 +08:00
|
|
|
|
self.state['map']['2d'] = map
|
|
|
|
|
self.state['map']['obj_pos']['Table'] = np.array((-100, 700))
|