feat: 日常更新,更新对准方法,完成hanoi2对准,get/put_bball动作
This commit is contained in:
51
test/test_filter.py
Normal file
51
test/test_filter.py
Normal 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
52
test/test_llm.py
Normal 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))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user