refactor(task_2_5): simplify and restructure task execution

- Remove unused imports and simplify code structure
- Add direction parameter to run_task_2_5 function for flexibility
- Adjust turn_degree parameters for better accuracy
- Comment out unused alternative execution paths
This commit is contained in:
havoc420ubuntu 2025-05-25 08:34:13 +00:00
parent 09790e5921
commit 268d52155d
3 changed files with 20 additions and 25 deletions

View File

@ -43,7 +43,7 @@ def turn_degree(ctrl, msg, degree=90, absolute=False, precision=False):
# 定义允许的误差范围(弧度)
# 如果是精确模式,使用更小的误差阈值
limit = 0.03 if precision else 0.04 # 约1.7度或2.3度
limit = 0.05
# 计算最短旋转方向和距离
def circle_dist(target, location):
@ -94,7 +94,7 @@ def turn_degree(ctrl, msg, degree=90, absolute=False, precision=False):
debug(f"等待旋转完成: {wait_time:.2f}", "时间")
# 精确模式下使用实时监控而不是固定等待时间
if precision and abs(dist) > 0.1: # 对于较大角度
if abs(dist) > 0.1: # 对于较大角度
start_time = time.time()
last_yaw = current_yaw
stable_count = 0

View File

@ -11,41 +11,36 @@ from utils.log_helper import LogHelper, get_logger, section, info, debug, warnin
observe = True
def run_task_2_5(Ctrl, msg):
def run_task_2_5(Ctrl, msg, direction='left'):
section('任务2.5预备进入任务3', "启动")
# TEST
turn_degree(Ctrl, msg, 90, absolute=observe)
align_to_horizontal_line(
Ctrl,
msg,
detect_func_version=2,
observe=observe,
)
return
section('任务2.5-1第一次旋转', "移动")
arc_turn_around_hori_line(
turn_success, res = arc_turn_around_hori_line(
Ctrl,
msg,
angle_deg=-90,
target_distance=0.5,
angle_deg=90 if direction == 'left' else -90,
target_distance=0.3,
detect_func_version=2,
observe=observe,
)
section('任务2.5-2第二次旋转', "移动")
arc_turn_around_hori_line(
Ctrl,
msg,
angle_deg=90,
target_distance=0.5,
detect_func_version=2,
observe=observe,
)
turn_degree(Ctrl, msg, degree=90, absolute=True)
# arc_turn_around_hori_line(
# Ctrl,
# msg,
# angle_deg=70,
# # target_distance=0.5,
# pass_align=True,
# radius=res['radius'],
# detect_func_version=2,
# observe=observe,
# )

View File

@ -19,7 +19,7 @@ def detect_horizontal_track_edge(image, observe=False, delay=1000, save_log=True
edge_point: 赛道前方边缘点的坐标 (x, y)
edge_info: 边缘信息字典
"""
# observe = False # TEST
observe = False # TEST
# 如果输入是字符串(文件路径),则加载图像
if isinstance(image, str):
img = cv2.imread(image)
@ -361,7 +361,7 @@ def detect_horizontal_track_edge_v2(image, observe=False, delay=1000, save_log=T
edge_point: 赛道前方边缘点的坐标 (x, y)
edge_info: 边缘信息字典
"""
# observe = False # TEST
observe = False # TEST
# 如果输入是字符串(文件路径),则加载图像
if isinstance(image, str):
img = cv2.imread(image)