feat: 日常更新,更新对准方法,完成hanoi2对准,get/put_bball动作

This commit is contained in:
bmy
2024-06-07 20:08:41 +08:00
parent b787ce6ed0
commit eb0b01c8af
8 changed files with 337 additions and 336 deletions

51
test/test_filter.py Normal file
View File

@@ -0,0 +1,51 @@
import sys
import os
parent_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(parent_dir)
from utils import label_filter
from loguru import logger
from utils import tlabel
import zmq
import time
context = zmq.Context()
socket = context.socket(zmq.REQ)
socket.connect("tcp://localhost:6667")
logger.info("subtask yolo client init")
filter = label_filter(socket)
filter.switch_camera(1)
offset = 15
while True:
time.sleep(0.2)
# ret1 = filter.get_mult(tlabel.RMARK)
# ret, label, error = filter.get_mult_box([tlabel.LMARK, tlabel.RMARK])
# if ret:
# # print(error)
# if abs(error) < 40:
# logger.info('yes')
label = tlabel.BASKET
ret, box = filter.get(label)
while not ret:
# 注意这里一定要保证摄像头内有该目标 否则会无限循环
ret, box = filter.get(label)
error = (box[0][2] + box[0][0] - 320) / 2 + offset
# ret, box = filter.get(tlabel.BBLOCK)
if ret:
print(error)
else:
pass
# if ret1:
# print(error1)
# if abs(error1) < 30:
# print("you")
# elif ret2:
# print(error2)
# if abs(error2) < 30:
# print("zuo")

52
test/test_llm.py Normal file
View File

@@ -0,0 +1,52 @@
import sys
import os
parent_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(parent_dir)
import erniebot
erniebot.api_type = "qianfan"
erniebot.ak = "jReawMtWhPu0wrxN9Rp1MzZX"
erniebot.sk = "eowS1BqsNgD2i0C9xNnHUVOSNuAzVTh6"
class LLM:
def __init__(self):
self.model = 'ernie-3.5'
self.prompt = '''你是一个机器人动作规划者,需要把我的话翻译成机器人动作规划并生成对应的 json 结果,机器人工作空间参考右手坐标系。
严格按照下面的描述生成给定格式 json从现在开始你仅仅给我返回 json 数据!'''
self.prompt += '''正确的示例如下:
向左移 0.1m, 向左转弯 85 度 [{'func': 'move', 'x': 0, 'y': 0.1},{'func': 'turn','angle': -85}],
向右移 0.2m, 向前 0.1m [{'func': 'move', 'x': 0, 'y': -0.2},{'func': 'move', 'x': 0.1, 'y': 0}],
向右转 85 度,向右移 0.1m [{'func': 'turn','angle': 85},{'func': 'move', 'x': 0, 'y': -0.1}],
原地左转 38 度 [{'func': 'turn','angle': -38}],
蜂鸣器发声 5 秒 [{'func': 'beep', 'time': 5}]
发光或者照亮 5 秒 [{'func': 'light', 'time': 5}]
'''
self.messages = []
self.resp = None
self.reset()
def reset(self):
self.messages = [self.make_message(self.prompt)]
self.resp = erniebot.ChatCompletion.create(
model=self.model,
messages=self.messages,
)
self.messages.append(self.resp.to_message())
def make_message(self,content):
return {'role': 'user', 'content': content}
def get_command_json(self,chat):
self.messages.append(self.make_message(chat))
self.resp = erniebot.ChatCompletion.create(
model=self.model,
messages=self.messages,
)
self.messages.append(self.resp.to_message())
return self.resp.get_result()
if __name__ == "__main__":
lmm_bot = LLM()
while True:
chat = input("输入:")
print(lmm_bot.get_command_json(chat))