RoboWaiter/robowaiter/llm_client/find_obj_utils.py

122 lines
8.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import random
# all_obj_en = ['Mug', 'Banana', 'Toothpaste', 'Bread', 'Softdrink', 'Yogurt', 'ADMilk', 'VacuumCup', 'BottledDrink', 'PencilVase',
# 'Teacup', 'Caddy', 'Dictionary', 'Cake', 'Date', 'Stapler', 'LunchBox', 'Bracelet', 'MilkDrink', 'CocountWater', 'Walnut', 'HamSausage',
# 'GlueStick', 'AdhensiveTape', 'Calculator', 'Chess', 'Orange', 'Glass', 'Washbowl', 'Durian', 'Gum', 'Towl', 'OrangeJuice', 'Cardcase',
# 'RubikCube', 'StickyNotes', 'NFCJuice', 'SpringWater', 'Apple', 'Coffee', 'Gauze', 'Mangosteen', 'SesameSeedCake', 'Glove', 'Mouse',
# 'Kettle', 'Atomize', 'Chips', 'SpongeGourd', 'Garlic', 'Potato', 'Tray', 'Hemomanometer', 'TennisBall', 'ToyDog', 'ToyBear', 'TeaTray',
# 'Sock', 'Scarf', 'ToiletPaper', 'Milk', 'Soap', 'Novel', 'Watermelon', 'Tomato', 'CleansingFoam', 'CocountMilk', 'SugarlessGum',
# 'MedicalAdhensiveTape', 'SourMilkDrink', 'PaperCup', 'Tissue', 'YogurtDrink', 'Newspaper', 'Box', 'PaperCupStarbucks', 'CoffeeMachine',
# 'Straw', 'Cake', 'Tray', 'Bread', 'Glass', 'Door', 'Mug', 'Machine', 'PackagedCoffee', 'CubeSugar',
# 'Apple', 'Spoon', 'Drinks', 'Drink', 'Take-AwayCup', 'Saucer', 'TrashBin', 'Knife', 'Ginger', 'Floor', 'Roof', 'Wall'] + \
# ['Broom', 'CoffeeCup', 'Door', 'Glass', 'Mug', 'ZhuZi', 'Towel', 'LaJiTong', 'CoffeeMachine', 'ZaoTai', 'Sofa', 'Cake', 'ChaTou',
# 'Plate', 'CoffeeBag', 'TuoBu', 'KaiGuan', 'Kettle', 'Apple', 'ChaZuo', 'Sugar', 'BaTai', 'BaoJing', 'DrinkMachine', 'KongTiao',
# 'Desk', 'Clip', 'Knife', 'TuoPan', 'BoJi', 'ZhiBeiHe', 'Bread', 'WaterCup', 'Box', 'Chair', 'Hand', 'XiGuan', 'Spoon', 'Container',
# 'IceMachine', 'KaoXiang', 'SaoBa', 'XiangGui']
# , '机器人左手', '机器人右手', 'Bernachon'
all_obj = ['马克杯', '香蕉', '牙膏', '面包', '软饮料', '酸奶', 'AD钙奶', '真空杯', '瓶装饮料', '铅笔花瓶', '茶杯', '茶匙', '词典',
'蛋糕', '日期', '订书机', '午餐盒', '手镯', '牛奶饮品', '椰水', '核桃', '火腿肠', '胶棒', '胶带', '计算器', '国际象棋', '橙子',
'玻璃杯', '洗碗盆', '榴莲', '口香糖', '毛巾', '橙汁', '卡片盒', '魔方', '便签', 'NFC汁', '矿泉水', '苹果', '咖啡', '纱布', '芒果',
'芝麻蛋糕', '手套', '鼠标', '水壶', '雾化器', '薯片', '丝瓜', '大蒜', '土豆', '托盘', '血压计', '网球', '玩具狗', '玩具熊', '茶盘',
'袜子', '围巾', '卫生纸', '牛奶', '肥皂', '小说', '西瓜', '番茄', '洁面泡沫', '椰奶', '无糖口香糖', '医用胶带', '酸奶饮品', '纸杯',
'纸巾', '酸奶饮品', '报纸', '盒子', '星巴克纸杯', '咖啡机', '吸管', '蛋糕', '托盘', '面包', '玻璃杯', '',
'马克杯', '机器', '包装咖啡', '方糖', '苹果', '勺子', '饮料', '饮料', '外带杯', '茶杯', '垃圾桶', '', '', '地板', '屋顶', ''] + \
['扫帚', '咖啡杯', '', '玻璃杯', '马克杯', '著子', '毛巾', '垃圾桶', '咖啡机', '灶台', '沙发', '蛋糕', '插头', '盘子', '咖啡袋', '拖布', '开关',
'水壶', '苹果', '插座', '', '吧台', '报警', '饮料机', '空调', '桌子', '夹子', '', '托盘', '簸箕', '纸杯盒', '面包', '水杯', '盒子', '椅子',
'', '吸管', '勺子', '容器', '制冰机', '烤箱', '扫把', '香柜']
# 储藏室
all_loc = ['吧台', '餐桌', '沙发', '灶台', '大门', '灯开关', '空调开关', '橱柜', '卫生间', '窗户', '音响', '休闲区', '工作台', '服务台', '收银台', '墙角',
'蛋糕柜', '充电处', '冰箱', '书架']
all_loc_en = ['bar', 'Table', 'sofa', 'stove', 'Gate', 'light switch', 'airconditioner switch', 'cabinet', 'bathroom', 'window',
'audio', 'lounge area', 'workstation', 'service counter', 'cashier counter', 'corner',
'cake display', 'ChargingStations', 'refrigerator', 'bookshelf']
loc_map_en = {'bar': {'工作台', '服务台', '收银台', '蛋糕柜'},
'Table': {'大门', '休闲区', '墙角'},
'sofa': {'餐桌', '窗户', '音响', '休闲区', '墙角', '书架'},
'stove': {'吧台', '橱柜', '工作台', '服务台', '收银台', '蛋糕柜', '冰箱'},
'Gate': {'吧台', '灯开关', '空调开关', '卫生间', '墙角'},
'light switch': {'大门', '空调开关', '卫生间', '墙角'},
'airconditioner switch': {'大门', '灯开关', '卫生间', '墙角'},
'cabinet': {'灶台', '吧台', '工作台', '服务台', '收银台', '蛋糕柜', '充电处', '冰箱'},
'bathroom': {'大门', '墙角'},
'window': {'餐桌', '沙发', '休闲区'},
'audio': {'餐桌', '沙发', '休闲区', '墙角', '书架'},
'lounge area': {'沙发', '餐桌', '墙角', '书架', '音响'},
'workstation': {'吧台', '服务台', '收银台'},
'service counter': {'吧台', '工作台', '收银台'},
'cashier counter': {'吧台', '工作台', '服务台'},
'corner': {'卫生间', '沙发', '灯开关', '空调开关', '音响', '休闲区', '书架'},
'cake display': {'吧台', '橱柜', '服务台', '收银台', '冰箱'},
'ChargingStations': {'吧台', '餐桌', '沙发', '休闲区', '工作台', '服务台', '收银台', '墙角', '书架'},
'refrigerator': {'吧台', '服务台', '蛋糕柜'},
'bookshelf': {'餐桌', '沙发', '窗户', '休闲区', '墙角'}
}
loc_map = {'吧台': {'灶台', '橱柜', '工作台', '服务台', '收银台', '蛋糕柜', '充电处', '冰箱'},
'餐桌': {'沙发', '大门', '窗户', '休闲区', '墙角', '椅子', '书架'},
'沙发': {'餐桌', '窗户', '音响', '休闲区', '墙角', '书架'},
'灶台': {'吧台', '橱柜', '工作台', '服务台', '收银台', '蛋糕柜', '冰箱'},
'大门': {'吧台', '灯开关', '空调开关', '卫生间', '墙角'},
'灯开关': {'大门', '空调开关', '卫生间', '墙角'},
'空调开关': {'大门', '灯开关', '卫生间', '墙角'},
'橱柜': {'灶台', '吧台', '工作台', '服务台', '收银台', '蛋糕柜', '充电处', '冰箱'},
'卫生间': {'大门', '墙角'},
'窗户': {'餐桌', '沙发', '休闲区'},
'音响': {'餐桌', '沙发', '休闲区', '墙角', '书架'},
'休闲区': {'沙发', '餐桌', '墙角', '书架', '音响'},
'工作台': {'吧台', '服务台', '收银台'},
'服务台': {'吧台', '工作台', '收银台'},
'收银台': {'吧台', '工作台', '服务台'},
'墙角': {'卫生间', '沙发', '灯开关', '空调开关', '音响', '休闲区', '书架'},
'蛋糕柜': {'吧台', '橱柜', '服务台', '收银台', '冰箱'},
'充电处': {'吧台', '餐桌', '沙发', '休闲区', '工作台', '服务台', '收银台', '墙角', '书架'},
'冰箱': {'吧台', '灶台', '工作台', '服务台', '收银台', '蛋糕柜'},
'书架': {'餐桌', '沙发', '窗户', '休闲区', '墙角'}
}
# print("looc_map:", loc_map['吧台'])
# print("looc_map:", random.choice(list(loc_map['吧台'])))
# import synonyms
# def get_synonyms(word):
# synonyms_list = synonyms.nearby(word)[0]
# return synonyms_list
#
# target_word = "高兴"
# synonyms_result = get_synonyms(target_word)
# print("synonyms_result:",synonyms_result)
# def save_variable(self):
# scene = self.status
# init_obj_name_set = set()
# init_obj_info_dict = {}
# for item in scene.objects:
# name = item.name
# location = item.location
# init_obj_name_set.add(name)
# # 如果name已经存在则添加一个唯一标识符
# if name in init_obj_info_dict:
# count = 1
# new_name = f"{name}_{count}"
# while new_name in init_obj_info_dict:
# count += 1
# new_name = f"{name}_{count}"
# name = new_name
# init_obj_info_dict[name] = location
# # print("obj_info_dict:",obj_info_dict)
# # print("obj_name_set:",obj_name_set)
# import os
# import pickle
# absolute_path = r"E:\DATA\Projects\Robot1002 5.2\Plugins\LLM_prompt\data\init_obj_name_set.pkl"
# target_directory = os.path.dirname(absolute_path)
# os.makedirs(target_directory, exist_ok=True)
# # 将变量保存到二进制文件
# with open(absolute_path, 'wb') as file:
# pickle.dump(init_obj_name_set, file)