diff --git a/robowaiter/behavior_tree/dataset/expansion_out/output2.txt b/robowaiter/behavior_tree/dataset/expansion_out/output2.txt new file mode 100644 index 0000000..9c06989 --- /dev/null +++ b/robowaiter/behavior_tree/dataset/expansion_out/output2.txt @@ -0,0 +1,57 @@ +At(Robot,Bar) 请问您需要什么帮助吗?我就在吧台附近,能否请您自己过来呢? +At(Robot,Bar) 请问你能去一下吧台吗? +At(Robot,Bar) 请问你能帮我到吧台那个位置吗? +At(Robot,WaterTable) 请问你能过来一下吗?我正在茶水桌旁。 +At(Robot,WaterTable) 请问你可以去茶水桌一下吗? +At(Robot,WaterTable) 你能带路去茶水桌吗? +At(Robot,CoffeeTable) 请问你可以过来一下吗?我在这张咖啡桌旁边。 +At(Robot,CoffeeTable) 请问你可以帮我一下,去一下咖啡桌吗? +At(Robot,CoffeeTable) 请问你能帮我前往咖啡桌那个位置吗? +At(Robot,Bar2) 您好,请问您需要什么帮助吗?我正在另一个吧台处理一些事情。 +At(Robot,Bar2) 请问你可以去一下另一个吧台吗? +At(Robot,Bar2) 你能去另一个吧台的位置吗? +At(Robot,Table1) 请问你能过来一下吗?我目前在第一桌,需要你的帮助。 +At(Robot,Table1) 请问你能去一下第一桌吗? +At(Robot,Table1) 请问你能帮我到第一张桌子那个位置吗? +At(Robot,Table2) 请问您能过来一下吗?我正在第二张桌子这里。 +At(Robot,Table2) 请问你可以去第二张桌子一下吗? +At(Robot,Table2) 请问你能帮我前往第二桌吗? +At(Robot,Table3) 请问你能过来一下吗?我正在第三张桌子旁。 +At(Robot,Table3) 请问你能去第三张桌子一下吗? +At(Robot,Table3) 你能告诉我第三张桌子的位置在哪里吗? +On(Softdrink,Bar) 您好,请问您需要我帮您把盒装冰红茶放到哪个位置呢? +On(Softdrink,Bar) 服务员,能否帮我拿来一盒冰红茶放到吧台呢? +On(Softdrink,WaterTable) 您好,请问您需要我帮忙将盒装冰红茶放到哪个位置吗? +On(Softdrink,WaterTable) 服务员,能否帮我把盒装冰红茶拿到茶水桌呢? +On(Softdrink,CoffeeTable) 请问你能把盒装冰红茶放到咖啡桌那个位置吗? +On(Softdrink,CoffeeTable) 服务员,把盒装冰红茶拿到咖啡桌 position 好吗? +On(Softdrink,Bar2) 请问你能把盒装冰红茶放到另一个吧台的位置吗? +On(Softdrink,Bar2) 请问你能把盒装冰红茶拿到另一个吧台位置吗? +On(Softdrink,Table1) 请问您能否把盒装冰红茶放在第一桌的指定位置呢? +On(Softdrink,Table1) 请您把盒装冰红茶拿到第一桌的位置。 +On(Softdrink,Table2) 服务员,您好,请问能否帮我將這盒裝冰红茶放 到第二張桌子那個位置呢? +On(Softdrink,Table2) 服务员,请把盒装冰红茶拿到第二张桌子的位置。 +On(Softdrink,Table3) 请问你可以把盒装冰红茶放到第三张桌子的那个位置吗? +On(Softdrink,Table3) 请问你能把盒装冰红茶拿到第三张桌子的位置吗? +On(BottledDrink,Bar) 您好,请问您需要我将瓶装饮料放到哪个位置呢? +On(BottledDrink,Bar) 请把瓶装饮料拿到吧台的位置。 +On(BottledDrink,WaterTable) 请问你可以把瓶装饮料放到茶水桌那个位置吗? +On(BottledDrink,WaterTable) 请问你能把瓶装饮料拿到茶水桌位置吗? +On(BottledDrink,CoffeeTable) 服务员,能否把瓶装饮料放在咖啡桌那个位置呢? +On(BottledDrink,CoffeeTable) 服务员,能否把瓶装饮料拿到咖啡桌附近呢? +On(BottledDrink,Bar2) 请问你能把瓶装饮料放到另一个吧台的那个位置吗? +On(BottledDrink,Bar2) 请把瓶装饮料拿到另一个吧台位置。 +On(BottledDrink,Table1) 请问您能否帮我將瓶裝飲料放至第一張桌子的那個位置呢? +On(BottledDrink,Table1) 请问你能把瓶装饮料拿到第一桌的位置吗? +On(BottledDrink,Table2) 请问,你可以把瓶装饮料放到第二张桌子的那个位置吗? +On(BottledDrink,Table2) 请问你能把瓶装饮料拿到第二张桌子的位置吗? +On(BottledDrink,Table3) 请问,你能把瓶装饮料放到第三桌的哪个位置吗? +On(BottledDrink,Table3) 请问你能把瓶装饮料拿到第三张桌子的位置吗? +On(Yogurt,Bar) 请问你能把酸奶放到吧台那个位置吗? +On(Yogurt,Bar) 请问你能把酸奶拿到吧台位置吗? +On(Yogurt,WaterTable) 请问你能把酸奶放到茶水桌那个位置吗? +On(Yogurt,WaterTable) 服务员,请把酸奶拿到茶水桌的位置。 +On(Yogurt,CoffeeTable) 请问,你能把酸奶放在咖啡桌那个位置吗? +On(Yogurt,CoffeeTable) 服务员,能否把酸奶拿到咖啡桌的位置呢? +On(Yogurt,Bar2) 请问你能把酸奶放到另一个吧台的那个位置吗? +On(Yogurt,Bar2) 请问你能把酸奶拿到另一个吧台位置吗? diff --git a/robowaiter/behavior_tree/dataset/sentence_expansion.py b/robowaiter/behavior_tree/dataset/sentence_expansion.py index edf8e6f..5cd2be4 100644 --- a/robowaiter/behavior_tree/dataset/sentence_expansion.py +++ b/robowaiter/behavior_tree/dataset/sentence_expansion.py @@ -1,6 +1,8 @@ import os import requests import urllib3 +from tqdm import tqdm + ######################################## # 该文件实现了与大模型的简单通信 ######################################## @@ -9,23 +11,28 @@ import urllib3 urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) -def single_round(question,prefix=""): +def single_round(question, prefix=""): url = "https://45.125.46.134:25344/v1/chat/completions" headers = {"Content-Type": "application/json"} data = { "model": "RoboWaiter", "messages": [ - { - "role": "system", - # "content": "你是一个机器人服务员:RoboWaiter. 你的职责是为顾客提供对话及具身服务。" - "content": "请将以下你对咖啡厅服务员说的话改写成更清晰更合理的顾客表述。" - }, - { - "role": "user", - "content": prefix + question - } + { + "role": "system", + # "content": "你是一个机器人服务员:RoboWaiter. 你的职责是为顾客提供对话及具身服务。" + "content": """ + 假设现在你是咖啡厅的一个顾客,请将以下你对咖啡厅服务员说的话改写成更清晰更合理的顾客表述。注意:句中的你指的是咖啡厅服务员,也不要说能帮我。 + 例如:麻烦你去一下吧台。可以转述成:服务员,你能去下吧台吗? + 另一个例子:请你拿一下酸奶到吧台位置。可以转述成:服务员,拿一杯酸奶来吧台。 + + """ + }, + { + "role": "user", + "content": prefix + question + } ] - } + } response = requests.post(url, headers=headers, json=data, verify=False) @@ -37,14 +44,18 @@ def single_round(question,prefix=""): if __name__ == '__main__': - with open('goal_states_with_description.txt', 'r', encoding='utf-8') as file: + with open('./goal_states_with_description.txt', 'r', encoding='utf-8') as file: lines = file.readlines() - for line in lines: + + output_file = './expansion_out/output2.txt' + with open(output_file, 'a', encoding='utf-8') as file: + file.truncate(0) + for line in tqdm(lines): tmp = line[:-1].split('\t') - #file.write("""{"title":"%s","text":"%s"}\n""" % (tmp[1], tmp[0])) + # file.write("""{"title":"%s","text":"%s"}\n""" % (tmp[1], tmp[0])) question = tmp[1] - #print(single_round(question)) - #print(tmp[1]) - with open('output1.txt', 'a',encoding='utf-8') as file: - file.write(tmp[0]+"\t"+single_round(question)+'\n') - print("输出完成") \ No newline at end of file + # print(single_round(question)) + # print(tmp[1]) + with open(output_file, 'a', encoding='utf-8') as file: + file.write(tmp[0] + "\t" + single_round(question, prefix="现在改写一下句子:") + '\n') + print("输出完成") diff --git a/robowaiter/llm_client/single_round.py b/robowaiter/llm_client/single_round.py index d0c88c6..364ecce 100644 --- a/robowaiter/llm_client/single_round.py +++ b/robowaiter/llm_client/single_round.py @@ -1,6 +1,8 @@ +import time import requests import urllib3 + ######################################## # 该文件实现了与大模型的简单通信 ######################################## @@ -9,22 +11,29 @@ import urllib3 urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) -def single_round(question,prefix=""): +def single_round(question, prefix=""): url = "https://45.125.46.134:25344/v1/chat/completions" headers = {"Content-Type": "application/json"} data = { "model": "RoboWaiter", "messages": [ - { - "role": "system", - "content": "你是一个机器人服务员:RoboWaiter. 你的职责是为顾客提供对话及具身服务。" - }, - { - "role": "user", - "content": prefix + question - } + { + "role": "system", + "content": "你是一个机器人服务员:RoboWaiter. 你的职责是为顾客提供对话及具身服务。" + # "content": + # """ + # 你是一个熟悉行为树的工程师,你的职责是根据用户需求,为一个人型的机器人设计完成用户需求的行为树序列。 + # 行为树是一种有向根树,他的内部节点称为控制节点,控制节点包括选择、顺序,顺序节点只有所有子节点返回成功之后他才成功。 + # 选择节点只要有一个子节点返回成功最后就成功。叶节点称为执行节点,执行节点包括动作节点和条件节点。动作节点执行具体的动作,条件节点检查环境中的条件是否满足。 + # """ + # "content": "你是一个优秀的目标状态规划师,能够根据用户输入,规划出所需要的目标状态。例如:打开窗帘的目标状态可以是Is(Curtain, On)" + }, + { + "role": "user", + "content": prefix + question + } ] - } + } response = requests.post(url, headers=headers, json=data, verify=False) @@ -37,7 +46,10 @@ def single_round(question,prefix=""): if __name__ == '__main__': question = ''' - 给我一杯拿铁 + 嘿!能做一杯咖啡吗?咖啡就行! ''' + import timeit - print(single_round(question)) \ No newline at end of file + cur_time = time.time() + print(single_round(question, prefix='现在给出符合这句话要求的目标状态: ')) + print(f"单次生成耗时:{time.time() - cur_time} s \n") diff --git a/robowaiter/scene/scene.py b/robowaiter/scene/scene.py index bb3294b..bcf6e01 100644 --- a/robowaiter/scene/scene.py +++ b/robowaiter/scene/scene.py @@ -15,6 +15,8 @@ from robowaiter.proto import GrabSim_pb2 from robowaiter.proto import GrabSim_pb2_grpc import copy import os + +from robowaiter.scene.ui import scene_ui from robowaiter.utils import get_root_path from sklearn.cluster import DBSCAN from matplotlib import pyplot as plt @@ -1063,7 +1065,7 @@ class Scene: # cur_objs, objs_name_set = camera.get_semantic_map(GrabSim_pb2.CameraName.Head_Segment, cur_objs, # objs_name_set) - cur_obstacle_world_points, cur_objs_id = camera.get_obstacle_point(plt, db, scene, + cur_obstacle_world_points, cur_objs_id = camera.get_obstacle_point(self, db, scene, cur_obstacle_world_points, map_ratio) # if scene.info == "Unreachable": @@ -1452,7 +1454,9 @@ class Scene: # plt.text(0, 0.5, f'新增语义信息:{walker_detect_count}', fontsize=10) # plt.text(0, 0.3, f'更新语义信息:{update_info_count}', fontsize=10) # plt.text(0, 0.1, f'已存语义信息:{self.infoCount}', fontsize=10) + # 元组传参 pyqt5中的函数名, 四个参数 + self.ui_func(("get_info", walker_detect_count, obj_detect_count, update_info_count, self.infoCount)) # draw figures diff --git a/robowaiter/scene/ui/pyqt5.py b/robowaiter/scene/ui/pyqt5.py index f641e50..05d5041 100644 --- a/robowaiter/scene/ui/pyqt5.py +++ b/robowaiter/scene/ui/pyqt5.py @@ -80,13 +80,22 @@ class UI(QMainWindow, Ui_MainWindow): self.btn_say.clicked.connect(self.btn_say_on_click) self.img_view_bt.setDragMode(QGraphicsView.ScrollHandDrag) + + # 下拉菜单绑定函数 + # 下拉菜单.seleted.connect(self.你写的函数) + # # BT树的显示 # self.setScaledContents(True) # 图片将根据label的大小自动缩放 # self.label_moved = False # 用于判断是否移动了标签 # self.drag_start_position = QPoint() # 记录鼠标按下时的位置 + self.cb_task.setCurrentIndex(-1) + self.cb_task.setPlaceholderText("请选择城市") - + # 多个添加条目 + self.cb_task.addItems(['Java', 'C#', 'PHP']) + # 当下拉索引发生改变时发射信号触发绑定的事件 + self.cb_task.currentIndexChanged.connect(self.selectionchange) # 绑定任务演示按钮 for example in example_list: @@ -107,6 +116,25 @@ class UI(QMainWindow, Ui_MainWindow): sys.exit(app.exec_()) + def selectionchange(self, i): + print(i) + # self.create_example_click(dic[i]) + # 标签用来显示选中的文本 + # currentText():返回选中选项的文本 + # self.btn1.setText(self.cb.currentText()) + # print('Items in the list are:') + # # 输出选项集合中每个选项的索引与对应的内容 + # # count():返回选项集合中的数目 + # for count in range(self.cb.count()): + # print('Item' + str(count) + '=' + self.cb.itemText(count)) + # print('current index', i, 'selection changed', self.cb.currentText()) + + def get_info(self, walker_detect_count, obj_detect_count, update_info_count, infoCount): + print(obj_detect_count) + self.textEdit_5.clear() + self.textEdit_5.append(str(obj_detect_count)) + # self.textEdit_5.setText(walker_detect_count + "_" + obj_detect_count + "_" + update_info_count + "_" + infoCount) + def new_history(self,customer_name,chat): role = chat["role"] content = chat["content"].strip() @@ -239,6 +267,7 @@ class UI(QMainWindow, Ui_MainWindow): control.setPixmap(self.scale_pixmap_to_label(pixmap, control)) # control.setPixmap(pixmap) + def draw_canvas(self,control_name,canvas): control = getattr(self,control_name,None) # 加载并显示图片 diff --git a/robowaiter/scene/ui/scene_ui.py b/robowaiter/scene/ui/scene_ui.py index d1ad311..f97b158 100644 --- a/robowaiter/scene/ui/scene_ui.py +++ b/robowaiter/scene/ui/scene_ui.py @@ -101,8 +101,14 @@ class SceneUI(Scene): # plt.title("地图构建过程") # self.send_img("img_label_map") # plt.subplot(2, 7, 14) # 这里的2,1表示总共2行,1列,2表示这个位置是第2个子图 + + # walker_count 新增行人信息 + + # 新增语义信息 new_add_info = len(cur_objs) - added_info + walker_count # plt.text(0, 0.5, f'新增语义信息:{new_add_info}', fontsize=10) # 在图中添加文字,x和y坐标是在这个图片大小内的相对位置,fontsize是字体大小 + + # 已存语义信息 added_info += new_add_info # plt.text(0, 0.3, f'已存语义信息:{added_info}', fontsize=10) # 在图中添加文字,x和y坐标是在这个图片大小内的相对位置,fontsize是字体大小 self.infoCount = added_info @@ -126,6 +132,7 @@ class SceneUI(Scene): with open(file_json_name, 'w') as file: json.dump(obj_json_data, file) + print("已绘制完成地图!!!") print("------------检测到的所有物品信息--------------") print(obj_json_data) diff --git a/robowaiter/scene/ui/window.py b/robowaiter/scene/ui/window.py index 62739dd..6bc8b79 100644 --- a/robowaiter/scene/ui/window.py +++ b/robowaiter/scene/ui/window.py @@ -14,92 +14,23 @@ from PyQt5 import QtCore, QtGui, QtWidgets class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") - MainWindow.resize(896, 967) + MainWindow.resize(895, 967) MainWindow.setAutoFillBackground(False) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") - self.gridLayout_4 = QtWidgets.QGridLayout(self.centralwidget) - self.gridLayout_4.setObjectName("gridLayout_4") - self.gridLayout = QtWidgets.QGridLayout() + self.gridLayout = QtWidgets.QGridLayout(self.centralwidget) self.gridLayout.setObjectName("gridLayout") - self.label_9 = QtWidgets.QLabel(self.centralwidget) - font = QtGui.QFont() - font.setFamily("等线") - font.setPointSize(10) - font.setBold(True) - font.setWeight(75) - self.label_9.setFont(font) - self.label_9.setObjectName("label_9") - self.gridLayout.addWidget(self.label_9, 0, 0, 1, 2) - self.edit_say = QtWidgets.QLineEdit(self.centralwidget) - font = QtGui.QFont() - font.setFamily("Times New Roman") - font.setPointSize(14) - self.edit_say.setFont(font) - self.edit_say.setObjectName("edit_say") - self.gridLayout.addWidget(self.edit_say, 0, 2, 1, 1) - self.btn_say = QtWidgets.QPushButton(self.centralwidget) - font = QtGui.QFont() - font.setFamily("黑体") - font.setPointSize(14) - self.btn_say.setFont(font) - self.btn_say.setObjectName("btn_say") - self.gridLayout.addWidget(self.btn_say, 0, 3, 1, 1) - self.verticalLayout = QtWidgets.QVBoxLayout() - self.verticalLayout.setObjectName("verticalLayout") - self.btn_AEM = QtWidgets.QPushButton(self.centralwidget) - font = QtGui.QFont() - font.setFamily("黑体") - font.setPointSize(14) - self.btn_AEM.setFont(font) - self.btn_AEM.setObjectName("btn_AEM") - self.verticalLayout.addWidget(self.btn_AEM) - self.btn_VLN = QtWidgets.QPushButton(self.centralwidget) - font = QtGui.QFont() - font.setFamily("黑体") - font.setPointSize(14) - self.btn_VLN.setFont(font) - self.btn_VLN.setObjectName("btn_VLN") - self.verticalLayout.addWidget(self.btn_VLN) - self.btn_VLM = QtWidgets.QPushButton(self.centralwidget) - font = QtGui.QFont() - font.setFamily("黑体") - font.setPointSize(14) - self.btn_VLM.setFont(font) - self.btn_VLM.setObjectName("btn_VLM") - self.verticalLayout.addWidget(self.btn_VLM) - self.btn_GQA = QtWidgets.QPushButton(self.centralwidget) - font = QtGui.QFont() - font.setFamily("黑体") - font.setPointSize(14) - self.btn_GQA.setFont(font) - self.btn_GQA.setObjectName("btn_GQA") - self.verticalLayout.addWidget(self.btn_GQA) - self.btn_OT = QtWidgets.QPushButton(self.centralwidget) - font = QtGui.QFont() - font.setFamily("黑体") - font.setPointSize(14) - self.btn_OT.setFont(font) - self.btn_OT.setObjectName("btn_OT") - self.verticalLayout.addWidget(self.btn_OT) - self.btn_AT = QtWidgets.QPushButton(self.centralwidget) - font = QtGui.QFont() - font.setFamily("黑体") - font.setPointSize(14) - self.btn_AT.setFont(font) - self.btn_AT.setObjectName("btn_AT") - self.verticalLayout.addWidget(self.btn_AT) - self.btn_reset = QtWidgets.QPushButton(self.centralwidget) - font = QtGui.QFont() - font.setFamily("黑体") - font.setPointSize(14) - self.btn_reset.setFont(font) - self.btn_reset.setObjectName("btn_reset") - self.verticalLayout.addWidget(self.btn_reset) - self.gridLayout.addLayout(self.verticalLayout, 1, 0, 2, 1) + self.verticalLayout_4 = QtWidgets.QVBoxLayout() + self.verticalLayout_4.setObjectName("verticalLayout_4") self.horizontalLayout_2 = QtWidgets.QHBoxLayout() + self.horizontalLayout_2.setSpacing(100) self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.label_10 = QtWidgets.QLabel(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_10.sizePolicy().hasHeightForWidth()) + self.label_10.setSizePolicy(sizePolicy) font = QtGui.QFont() font.setFamily("黑体") font.setPointSize(14) @@ -107,16 +38,27 @@ class Ui_MainWindow(object): self.label_10.setObjectName("label_10") self.horizontalLayout_2.addWidget(self.label_10) self.label_11 = QtWidgets.QLabel(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_11.sizePolicy().hasHeightForWidth()) + self.label_11.setSizePolicy(sizePolicy) font = QtGui.QFont() font.setFamily("黑体") font.setPointSize(14) self.label_11.setFont(font) self.label_11.setObjectName("label_11") self.horizontalLayout_2.addWidget(self.label_11) - self.gridLayout.addLayout(self.horizontalLayout_2, 1, 1, 1, 3) - self.horizontalLayout_3 = QtWidgets.QHBoxLayout() - self.horizontalLayout_3.setObjectName("horizontalLayout_3") + self.verticalLayout_4.addLayout(self.horizontalLayout_2) + self.horizontalLayout = QtWidgets.QHBoxLayout() + self.horizontalLayout.setObjectName("horizontalLayout") self.list_customer = QtWidgets.QListWidget(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.list_customer.sizePolicy().hasHeightForWidth()) + self.list_customer.setSizePolicy(sizePolicy) + self.list_customer.setMinimumSize(QtCore.QSize(50, 250)) font = QtGui.QFont() font.setPointSize(11) self.list_customer.setFont(font) @@ -125,17 +67,23 @@ class Ui_MainWindow(object): self.list_customer.addItem(item) item = QtWidgets.QListWidgetItem() self.list_customer.addItem(item) - self.horizontalLayout_3.addWidget(self.list_customer) + self.horizontalLayout.addWidget(self.list_customer) self.edit_local_history = QtWidgets.QTextEdit(self.centralwidget) self.edit_local_history.setEnabled(True) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.edit_local_history.sizePolicy().hasHeightForWidth()) + self.edit_local_history.setSizePolicy(sizePolicy) + self.edit_local_history.setMinimumSize(QtCore.QSize(340, 0)) font = QtGui.QFont() font.setPointSize(11) self.edit_local_history.setFont(font) self.edit_local_history.setReadOnly(True) self.edit_local_history.setObjectName("edit_local_history") - self.horizontalLayout_3.addWidget(self.edit_local_history) - self.gridLayout.addLayout(self.horizontalLayout_3, 2, 1, 1, 3) - self.gridLayout_4.addLayout(self.gridLayout, 0, 0, 1, 1) + self.horizontalLayout.addWidget(self.edit_local_history) + self.verticalLayout_4.addLayout(self.horizontalLayout) + self.gridLayout.addLayout(self.verticalLayout_4, 1, 1, 5, 2) self.gridLayout_3 = QtWidgets.QGridLayout() self.gridLayout_3.setObjectName("gridLayout_3") self.verticalLayout_2 = QtWidgets.QVBoxLayout() @@ -162,7 +110,7 @@ class Ui_MainWindow(object): sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.img_label_map.sizePolicy().hasHeightForWidth()) self.img_label_map.setSizePolicy(sizePolicy) - self.img_label_map.setMinimumSize(QtCore.QSize(300, 200)) + self.img_label_map.setMinimumSize(QtCore.QSize(345, 200)) self.img_label_map.setStyleSheet("border: 2px solid black;") self.img_label_map.setText("") self.img_label_map.setObjectName("img_label_map") @@ -174,7 +122,7 @@ class Ui_MainWindow(object): sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.img_label_seg.sizePolicy().hasHeightForWidth()) self.img_label_seg.setSizePolicy(sizePolicy) - self.img_label_seg.setMinimumSize(QtCore.QSize(280, 200)) + self.img_label_seg.setMinimumSize(QtCore.QSize(250, 200)) self.img_label_seg.setStyleSheet("border: 2px solid black;") self.img_label_seg.setText("") self.img_label_seg.setObjectName("img_label_seg") @@ -186,7 +134,7 @@ class Ui_MainWindow(object): sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.img_label_obj.sizePolicy().hasHeightForWidth()) self.img_label_obj.setSizePolicy(sizePolicy) - self.img_label_obj.setMinimumSize(QtCore.QSize(280, 200)) + self.img_label_obj.setMinimumSize(QtCore.QSize(250, 200)) self.img_label_obj.setStyleSheet("border: 2px solid black;") self.img_label_obj.setText("") self.img_label_obj.setObjectName("img_label_obj") @@ -237,28 +185,119 @@ class Ui_MainWindow(object): self.horizontalLayout_4.addWidget(self.label_8) self.gridLayout_2.addLayout(self.horizontalLayout_4, 0, 0, 1, 1) self.gridLayout_3.addLayout(self.gridLayout_2, 0, 0, 1, 1) - self.gridLayout_4.addLayout(self.gridLayout_3, 1, 0, 1, 1) + self.gridLayout.addLayout(self.gridLayout_3, 6, 0, 1, 3) + self.verticalLayout_3 = QtWidgets.QVBoxLayout() + self.verticalLayout_3.setObjectName("verticalLayout_3") + self.textEdit_5 = QtWidgets.QTextEdit(self.centralwidget) + self.textEdit_5.setObjectName("textEdit_5") + self.verticalLayout_3.addWidget(self.textEdit_5) + self.gridLayout.addLayout(self.verticalLayout_3, 5, 0, 1, 1) + self.verticalLayout = QtWidgets.QVBoxLayout() + self.verticalLayout.setObjectName("verticalLayout") + self.btn_reset = QtWidgets.QPushButton(self.centralwidget) + font = QtGui.QFont() + font.setFamily("黑体") + font.setPointSize(14) + self.btn_reset.setFont(font) + self.btn_reset.setObjectName("btn_reset") + self.verticalLayout.addWidget(self.btn_reset) + self.btn_AEM = QtWidgets.QPushButton(self.centralwidget) + font = QtGui.QFont() + font.setFamily("黑体") + font.setPointSize(14) + self.btn_AEM.setFont(font) + self.btn_AEM.setObjectName("btn_AEM") + self.verticalLayout.addWidget(self.btn_AEM) + self.btn_VLN = QtWidgets.QPushButton(self.centralwidget) + font = QtGui.QFont() + font.setFamily("黑体") + font.setPointSize(14) + self.btn_VLN.setFont(font) + self.btn_VLN.setObjectName("btn_VLN") + self.verticalLayout.addWidget(self.btn_VLN) + self.btn_VLM = QtWidgets.QPushButton(self.centralwidget) + font = QtGui.QFont() + font.setFamily("黑体") + font.setPointSize(14) + self.btn_VLM.setFont(font) + self.btn_VLM.setObjectName("btn_VLM") + self.verticalLayout.addWidget(self.btn_VLM) + self.btn_GQA = QtWidgets.QPushButton(self.centralwidget) + font = QtGui.QFont() + font.setFamily("黑体") + font.setPointSize(14) + self.btn_GQA.setFont(font) + self.btn_GQA.setObjectName("btn_GQA") + self.verticalLayout.addWidget(self.btn_GQA) + self.btn_OT = QtWidgets.QPushButton(self.centralwidget) + font = QtGui.QFont() + font.setFamily("黑体") + font.setPointSize(14) + self.btn_OT.setFont(font) + self.btn_OT.setObjectName("btn_OT") + self.verticalLayout.addWidget(self.btn_OT) + self.btn_AT = QtWidgets.QPushButton(self.centralwidget) + font = QtGui.QFont() + font.setFamily("黑体") + font.setPointSize(14) + self.btn_AT.setFont(font) + self.btn_AT.setObjectName("btn_AT") + self.verticalLayout.addWidget(self.btn_AT) + self.cb_task = QtWidgets.QComboBox(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Minimum) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.cb_task.sizePolicy().hasHeightForWidth()) + self.cb_task.setSizePolicy(sizePolicy) + self.cb_task.setMinimumSize(QtCore.QSize(0, 25)) + self.cb_task.setEditable(True) + self.cb_task.setCurrentText("") + self.cb_task.setInsertPolicy(QtWidgets.QComboBox.InsertAtBottom) + self.cb_task.setObjectName("cb_task") + self.verticalLayout.addWidget(self.cb_task) + self.gridLayout.addLayout(self.verticalLayout, 1, 0, 1, 1) + self.label_9 = QtWidgets.QLabel(self.centralwidget) + font = QtGui.QFont() + font.setFamily("等线") + font.setPointSize(10) + font.setBold(True) + font.setWeight(75) + self.label_9.setFont(font) + self.label_9.setObjectName("label_9") + self.gridLayout.addWidget(self.label_9, 0, 0, 1, 1) + self.btn_say = QtWidgets.QPushButton(self.centralwidget) + font = QtGui.QFont() + font.setFamily("黑体") + font.setPointSize(14) + self.btn_say.setFont(font) + self.btn_say.setObjectName("btn_say") + self.gridLayout.addWidget(self.btn_say, 0, 2, 1, 1) + self.label = QtWidgets.QLabel(self.centralwidget) + font = QtGui.QFont() + font.setFamily("黑体") + font.setPointSize(14) + self.label.setFont(font) + self.label.setObjectName("label") + self.gridLayout.addWidget(self.label, 4, 0, 1, 1) + self.edit_say = QtWidgets.QLineEdit(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Times New Roman") + font.setPointSize(14) + self.edit_say.setFont(font) + self.edit_say.setObjectName("edit_say") + self.gridLayout.addWidget(self.edit_say, 0, 1, 1, 1) MainWindow.setCentralWidget(self.centralwidget) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.retranslateUi(MainWindow) + self.cb_task.setCurrentIndex(-1) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) - self.label_9.setText(_translate("MainWindow", "任务演示:(播放动画时需等待动画播放完毕才会重置场景)")) - self.edit_say.setText(_translate("MainWindow", "Is(AC,On)")) - self.btn_say.setText(_translate("MainWindow", "说话")) - self.btn_AEM.setText(_translate("MainWindow", "环境主动探索")) - self.btn_VLN.setText(_translate("MainWindow", "视觉语言导航")) - self.btn_VLM.setText(_translate("MainWindow", "视觉语言操作")) - self.btn_GQA.setText(_translate("MainWindow", "具身多轮对话")) - self.btn_OT.setText(_translate("MainWindow", "开放具身任务")) - self.btn_AT.setText(_translate("MainWindow", "自主具身任务")) - self.btn_reset.setText(_translate("MainWindow", "重置")) self.label_10.setText(_translate("MainWindow", "顾客列表:")) self.label_11.setText(_translate("MainWindow", "顾客历史对话:")) __sortingEnabled = self.list_customer.isSortingEnabled() @@ -272,6 +311,18 @@ class Ui_MainWindow(object): self.label_6.setText(_translate("MainWindow", "可达性地图")) self.label_7.setText(_translate("MainWindow", "实例分割")) self.label_8.setText(_translate("MainWindow", "目标检测")) + self.btn_reset.setText(_translate("MainWindow", "重置场景")) + self.btn_AEM.setText(_translate("MainWindow", "环境主动探索")) + self.btn_VLN.setText(_translate("MainWindow", "视觉语言导航")) + self.btn_VLM.setText(_translate("MainWindow", "视觉语言操作")) + self.btn_GQA.setText(_translate("MainWindow", "具身多轮对话")) + self.btn_OT.setText(_translate("MainWindow", "开放具身任务")) + self.btn_AT.setText(_translate("MainWindow", "自主具身任务")) + self.cb_task.setPlaceholderText(_translate("MainWindow", "其他任务")) + self.label_9.setText(_translate("MainWindow", "任务演示:(播放动画时需等待动画播放完毕才会重置场景)")) + self.btn_say.setText(_translate("MainWindow", "说话")) + self.label.setText(_translate("MainWindow", "语义信息")) + self.edit_say.setText(_translate("MainWindow", "Is(AC,On)")) if __name__ == "__main__": diff --git a/robowaiter/scene/ui/window.ui b/robowaiter/scene/ui/window.ui index 790d9e4..6e34ef4 100644 --- a/robowaiter/scene/ui/window.ui +++ b/robowaiter/scene/ui/window.ui @@ -6,7 +6,7 @@ 0 0 - 896 + 895 967 @@ -17,149 +17,22 @@ false - - - - - - - - 等线 - 10 - 75 - true - - - - 任务演示:(播放动画时需等待动画播放完毕才会重置场景) - - - - - - - - Times New Roman - 14 - - - - Is(AC,On) - - - - - - - - 黑体 - 14 - - - - 说话 - - - - - - - - - - 黑体 - 14 - - - - 环境主动探索 - - - - - - - - 黑体 - 14 - - - - 视觉语言导航 - - - - - - - - 黑体 - 14 - - - - 视觉语言操作 - - - - - - - - 黑体 - 14 - - - - 具身多轮对话 - - - - - - - - 黑体 - 14 - - - - 开放具身任务 - - - - - - - - 黑体 - 14 - - - - 自主具身任务 - - - - - - - - 黑体 - 14 - - - - 重置 - - - - - - + + + + + + 100 + + + + 0 + 0 + + 黑体 @@ -173,6 +46,12 @@ + + + 0 + 0 + + 黑体 @@ -186,10 +65,22 @@ - - + + + + + 0 + 0 + + + + + 50 + 250 + + 11 @@ -212,6 +103,18 @@ true + + + 0 + 0 + + + + + 340 + 0 + + 11 @@ -226,7 +129,7 @@ - + @@ -265,7 +168,7 @@ - 300 + 345 200 @@ -290,7 +193,7 @@ - 280 + 250 200 @@ -315,7 +218,7 @@ - 280 + 250 200 @@ -418,6 +321,193 @@ + + + + + + + + + + + + + + 黑体 + 14 + + + + 重置场景 + + + + + + + + 黑体 + 14 + + + + 环境主动探索 + + + + + + + + 黑体 + 14 + + + + 视觉语言导航 + + + + + + + + 黑体 + 14 + + + + 视觉语言操作 + + + + + + + + 黑体 + 14 + + + + 具身多轮对话 + + + + + + + + 黑体 + 14 + + + + 开放具身任务 + + + + + + + + 黑体 + 14 + + + + 自主具身任务 + + + + + + + + 0 + 0 + + + + + 0 + 25 + + + + true + + + + + + -1 + + + QComboBox::InsertAtBottom + + + 其他任务 + + + + + + + + + + 等线 + 10 + 75 + true + + + + 任务演示:(播放动画时需等待动画播放完毕才会重置场景) + + + + + + + + 黑体 + 14 + + + + 说话 + + + + + + + + 黑体 + 14 + + + + 语义信息 + + + + + + + + Times New Roman + 14 + + + + Is(AC,On) + + +