Refactor main execution flow by enabling task 2.5 with arrow direction detection and adjusting task 3 back execution. Update task 2.5 parameters for distance and speed, and modify task 5's horizontal line movement distance. Set observe flag to False in track detection functions for consistency.

This commit is contained in:
havoc420ubuntu 2025-05-31 12:43:11 +00:00
parent e0961fcdd9
commit 3b2fc33bf7
5 changed files with 18 additions and 17 deletions

22
main.py
View File

@ -17,9 +17,8 @@ from utils.robot_control_cmd_lcmt import robot_control_cmd_lcmt
from utils.robot_control_response_lcmt import robot_control_response_lcmt from utils.robot_control_response_lcmt import robot_control_response_lcmt
from utils.localization_lcmt import localization_lcmt from utils.localization_lcmt import localization_lcmt
from utils.image_raw import ImageProcessor from utils.image_raw import ImageProcessor
# from utils.marker_client import MarkerRunner
# from utils.marker_client import MarkerRunner
from utils.base_msg import BaseMsg from utils.base_msg import BaseMsg
# from utils.marker_client import MarkerRunner
from task_1.task_1 import run_task_1 from task_1.task_1 import run_task_1
from task_2_5.task_2_5 import run_task_2_5 from task_2_5.task_2_5 import run_task_2_5
@ -30,11 +29,10 @@ from task_2_5.task_2_5 import run_task_2_5, run_task_2_5_back
from task_4.task_4 import run_task_4, run_task_4_back from task_4.task_4 import run_task_4, run_task_4_back
from task_test.task_left_line import run_task_test from task_test.task_left_line import run_task_test
from task_5.task_5 import run_task_5 from task_5.task_5 import run_task_5
# from task_test.go_to_xy_example import run_go_to_xy_example
from base_move.turn_degree import turn_degree, turn_degree_v2 from base_move.turn_degree import turn_degree, turn_degree_v2
from base_move.go_to_xy import go_to_y_v2
from utils.log_helper import info
pass_marker = True pass_marker = True
@ -50,14 +48,13 @@ def main():
Ctrl.base_msg.stop() # BUG 垃圾指令 for eat Ctrl.base_msg.stop() # BUG 垃圾指令 for eat
# time.sleep(100) # TEST, # time.sleep(100) # TEST,
# run_task_1(Ctrl, msg) run_task_1(Ctrl, msg)
# arrow_direction = run_task_2(Ctrl, msg, xy_flag=False) arrow_direction = run_task_2(Ctrl, msg, xy_flag=False)
# arrow_direction = 'right' # TEST
# print(f"arrow_direction: {arrow_direction}") info(f"识别到箭头方向: {arrow_direction}", "info")
# run_task_2_5(Ctrl, msg, direction=arrow_direction) run_task_2_5(Ctrl, msg, direction=arrow_direction)
arrow_direction = 'right' # TEST
if arrow_direction == 'left': if arrow_direction == 'left':
run_task_4(Ctrl, msg) run_task_4(Ctrl, msg)
@ -68,8 +65,7 @@ def main():
run_task_5(Ctrl, msg, direction=arrow_direction) run_task_5(Ctrl, msg, direction=arrow_direction)
if arrow_direction == 'left': if arrow_direction == 'left':
# run_task_3_back(Ctrl, msg) run_task_3_back(Ctrl, msg)
pass
else: else:
run_task_4_back(Ctrl, msg) run_task_4_back(Ctrl, msg)

View File

@ -26,12 +26,12 @@ def run_task_2_5(Ctrl, msg, direction='left'):
Ctrl, Ctrl,
msg, msg,
angle_deg=90 if direction == 'left' else -90, angle_deg=90 if direction == 'left' else -90,
target_distance=0.3, target_distance=0.2,
detect_func_version=3, detect_func_version=3,
observe=observe, observe=observe,
) )
go_straight(Ctrl, msg, distance=0.2, speed=0.5, observe=observe) go_straight(Ctrl, msg, distance=0.1, speed=0.5, observe=observe)
section('任务2.5-2第二次旋转', "移动") section('任务2.5-2第二次旋转', "移动")

View File

@ -495,7 +495,7 @@ def run_task_3(ctrl, msg):
info('开始执行任务3...', "启动") info('开始执行任务3...', "启动")
turn_degree_v2(ctrl, msg, 90, absolute=True) turn_degree_v2(ctrl, msg, 90, absolute=True)
go_lateral(ctrl, msg, distance=0.2, speed=0.1, observe=True) # go_lateral(ctrl, msg, distance=0.2, speed=0.1, observe=True)
section('任务3-1up', "开始") section('任务3-1up', "开始")
pass_up_down(ctrl, msg) pass_up_down(ctrl, msg)
@ -520,3 +520,6 @@ def run_task_3(ctrl, msg):
time.sleep(3) time.sleep(3)
info("完成原地站立", "站立") info("完成原地站立", "站立")
def run_task_3_back(ctrl, msg):
return

View File

@ -244,7 +244,7 @@ def run_task_5(ctrl, msg, direction='left', observe=False):
# section('任务5-4返回', "移动") # section('任务5-4返回', "移动")
go_straight(ctrl, msg, distance=-1, speed=0.5, observe=observe) go_straight(ctrl, msg, distance=-1, speed=0.5, observe=observe)
move_to_hori_line(ctrl, msg, target_distance=1.2, observe=observe) move_to_hori_line(ctrl, msg, target_distance=1.3, observe=observe)
section('任务5-5转弯', "转弯") section('任务5-5转弯', "转弯")
turn_degree_v2(ctrl, msg, degree=90) turn_degree_v2(ctrl, msg, degree=90)

View File

@ -817,6 +817,7 @@ def detect_horizontal_track_edge_v3(image, observe=False, delay=1000, save_log=T
edge_point: 赛道前方边缘点的坐标 (x, y) edge_point: 赛道前方边缘点的坐标 (x, y)
edge_info: 边缘信息字典 edge_info: 边缘信息字典
""" """
observe = False
# 如果输入是字符串(文件路径),则加载图像 # 如果输入是字符串(文件路径),则加载图像
if isinstance(image, str): if isinstance(image, str):
img = cv2.imread(image) img = cv2.imread(image)
@ -1418,6 +1419,7 @@ def detect_left_side_track(image, observe=False, delay=1000, save_log=True):
返回: 返回:
tuple: (线信息字典, 最佳跟踪点) tuple: (线信息字典, 最佳跟踪点)
""" """
observe = False
# 如果输入是字符串(文件路径),则加载图像 # 如果输入是字符串(文件路径),则加载图像
if isinstance(image, str): if isinstance(image, str):
img = cv2.imread(image) img = cv2.imread(image)