Refactor task execution by standardizing the parameters for the center_on_dual_tracks function across multiple tasks. Enhance movement commands in task 4 for improved control and adjust speed parameters for better responsiveness in task 5. Clean up commented code for clarity.

This commit is contained in:
havoc420ubuntu 2025-05-31 14:18:02 +00:00
parent 74571e9c92
commit 7ee061ffa9
4 changed files with 18 additions and 12 deletions

12
main.py
View File

@ -31,6 +31,7 @@ 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 base_move.turn_degree import turn_degree, turn_degree_v2 from base_move.turn_degree import turn_degree, turn_degree_v2
from base_move.center_on_dual_tracks import center_on_dual_tracks
from utils.log_helper import info from utils.log_helper import info
@ -47,7 +48,7 @@ def main():
Ctrl.base_msg.stand_up() Ctrl.base_msg.stand_up()
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)
@ -56,12 +57,13 @@ def main():
# info(f"识别到箭头方向: {arrow_direction}", "info") # info(f"识别到箭头方向: {arrow_direction}", "info")
# run_task_2_5(Ctrl, msg, direction=arrow_direction) # run_task_2_5(Ctrl, msg, direction=arrow_direction)
if arrow_direction == 'left': # if arrow_direction == 'left':
run_task_4(Ctrl, msg) # run_task_4(Ctrl, msg)
else: # else:
run_task_3(Ctrl, msg) # run_task_3(Ctrl, msg)
turn_degree_v2(Ctrl, msg, degree=90, absolute=True) turn_degree_v2(Ctrl, msg, degree=90, absolute=True)
center_on_dual_tracks(Ctrl, msg, max_deviation=10.0, observe=False)
run_task_5(Ctrl, msg, direction=arrow_direction) run_task_5(Ctrl, msg, direction=arrow_direction)
if arrow_direction == 'left': if arrow_direction == 'left':

View File

@ -184,7 +184,7 @@ def pass_up_down(ctrl, msg):
section('任务3-2x = 2', "开始") section('任务3-2x = 2', "开始")
turn_degree_v2(ctrl, msg, 90, absolute=True) turn_degree_v2(ctrl, msg, 90, absolute=True)
center_on_dual_tracks(ctrl, msg, max_time=15, max_deviation=10.0, observe=False, detect_height=0.3) center_on_dual_tracks(ctrl, msg, max_deviation=10.0, observe=False, detect_height=0.3)
go_straight(ctrl, msg, distance=0.5, speed=0.5, observe=True) go_straight(ctrl, msg, distance=0.5, speed=0.5, observe=True)
time.sleep(1) time.sleep(1)
@ -501,7 +501,7 @@ def run_task_3(ctrl, msg):
pass_up_down(ctrl, msg) pass_up_down(ctrl, msg)
turn_degree_v2(ctrl, msg, 90, absolute=True) turn_degree_v2(ctrl, msg, 90, absolute=True)
center_on_dual_tracks(ctrl, msg, max_time=15, max_deviation=10.0, observe=False) center_on_dual_tracks(ctrl, msg, max_deviation=10.0, observe=False)
section('任务3-2yellow stop', "开始") section('任务3-2yellow stop', "开始")
go_until_yellow_area(ctrl, msg, yellow_ratio_threshold=0.15, speed=0.3) go_until_yellow_area(ctrl, msg, yellow_ratio_threshold=0.15, speed=0.3)

View File

@ -49,14 +49,19 @@ def run_task_4_back(ctrl, msg):
image_processor: 可选的图像处理器实例 image_processor: 可选的图像处理器实例
""" """
turn_degree_v2(ctrl, msg, degree=-90, absolute=True) turn_degree_v2(ctrl, msg, degree=-90, absolute=True)
center_on_dual_tracks(ctrl, msg, max_time=30, observe=False) center_on_dual_tracks(ctrl, msg, max_deviation=10.0, observe=False)
go_straight(ctrl, msg, distance=2, speed=1, observe=True)
center_on_dual_tracks(ctrl, msg, max_deviation=10.0, observe=False)
# 向右移动0.5秒 # 向右移动0.5秒
section('任务4-回程:向右移动', "移动") section('任务4-回程:向右移动', "移动")
# go_lateral(ctrl, msg, distance=-0.3, speed=0.1, observe=True) # DEBUG go_lateral(ctrl, msg, distance=-0.1, speed=0.1, observe=True) # DEBUG
turn_degree_v2(ctrl, msg, degree=-90, absolute=True)
section('任务4-1移动直到灰色天空比例低于阈值', "天空检测") section('任务4-1移动直到灰色天空比例低于阈值', "天空检测")
go_straight_until_sky_ratio_below(ctrl, msg, sky_ratio_threshold=0.35, speed=0.5) go_straight_until_sky_ratio_below(ctrl, msg, sky_ratio_threshold=0.35, speed=0.2)
section('任务4-2通过栏杆', "移动") section('任务4-2通过栏杆', "移动")
turn_degree_v2(ctrl, msg, degree=-90, absolute=True) turn_degree_v2(ctrl, msg, degree=-90, absolute=True)

View File

@ -216,7 +216,6 @@ def run_task_5(ctrl, msg, direction='left', observe=False):
# 最大移动距离为8米 # 最大移动距离为8米
max_distance = 2 max_distance = 2
# 开始移动并扫描二维码 # 开始移动并扫描二维码
go_success, res = go_straight_with_qrcode(ctrl, msg, distance=max_distance, speed=1, observe=observe) go_success, res = go_straight_with_qrcode(ctrl, msg, distance=max_distance, speed=1, observe=observe)
@ -231,7 +230,7 @@ def run_task_5(ctrl, msg, direction='left', observe=False):
error("未能成功到达横线前指定距离", "失败") error("未能成功到达横线前指定距离", "失败")
section('任务5-2移动到卸货点', "移动") section('任务5-2移动到卸货点', "移动")
center_on_dual_tracks(ctrl, msg, max_time=15, max_deviation=10.0, observe=False) center_on_dual_tracks(ctrl, msg, max_deviation=10.0, observe=False)
if direction == 'right' and res['qr_result'] == 'B-2' or direction == 'left' and res['qr_result'] == 'B-1': if direction == 'right' and res['qr_result'] == 'B-2' or direction == 'left' and res['qr_result'] == 'B-1':
# 直走 # 直走
move_to_hori_line(ctrl, msg, target_distance=1.4, observe=observe, detect_func_version=4) move_to_hori_line(ctrl, msg, target_distance=1.4, observe=observe, detect_func_version=4)