Refactor main execution flow by enabling task execution based on arrow direction detection. Adjust max_time parameter in centering function for improved responsiveness. Update task 5's movement commands and section handling for clarity and consistency.
This commit is contained in:
parent
4200fb8aeb
commit
0979d10415
@ -7,7 +7,7 @@ sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
||||
from utils.log_helper import LogHelper, get_logger, section, info, debug, warning, error, success, timing
|
||||
from utils.detect_dual_track_lines import detect_dual_track_lines
|
||||
|
||||
def center_on_dual_tracks(ctrl, msg, max_time=15, max_deviation=8.0, observe=False,
|
||||
def center_on_dual_tracks(ctrl, msg, max_time=3, max_deviation=8.0, observe=False,
|
||||
mode=11, gait_id=26, step_height=[0.06, 0.06],
|
||||
estimated_track_distance=1.0,
|
||||
detect_height=0.4,
|
||||
@ -18,7 +18,7 @@ def center_on_dual_tracks(ctrl, msg, max_time=15, max_deviation=8.0, observe=Fal
|
||||
参数:
|
||||
ctrl: Robot_Ctrl 对象,包含里程计信息
|
||||
msg: robot_control_cmd_lcmt 对象,用于发送命令
|
||||
max_time: 最大调整时间(秒),默认为15秒
|
||||
max_time: 最大调整时间(秒),默认为3秒
|
||||
max_deviation: 允许的最大偏差(像素),当偏差小于此值时认为已居中,默认为8像素
|
||||
observe: 是否输出中间状态信息和可视化结果,默认为False
|
||||
mode: 控制模式,默认为11
|
||||
|
28
main.py
28
main.py
@ -51,29 +51,29 @@ def main():
|
||||
# run_task_1(Ctrl, msg)
|
||||
|
||||
# arrow_direction = run_task_2(Ctrl, msg, xy_flag=False)
|
||||
# arrow_direction = 'right' # TEST
|
||||
arrow_direction = 'right' # TEST
|
||||
|
||||
# info(f"识别到箭头方向: {arrow_direction}", "info")
|
||||
# run_task_2_5(Ctrl, msg, direction=arrow_direction)
|
||||
|
||||
# if arrow_direction == 'left':
|
||||
# run_task_4(Ctrl, msg)
|
||||
# else:
|
||||
# run_task_3(Ctrl, msg)
|
||||
if arrow_direction == 'left':
|
||||
run_task_4(Ctrl, msg)
|
||||
else:
|
||||
run_task_3(Ctrl, msg)
|
||||
|
||||
# turn_degree_v2(Ctrl, msg, degree=90, absolute=True)
|
||||
# run_task_5(Ctrl, msg, direction=arrow_direction)
|
||||
turn_degree_v2(Ctrl, msg, degree=90, absolute=True)
|
||||
run_task_5(Ctrl, msg, direction=arrow_direction)
|
||||
|
||||
# if arrow_direction == 'left':
|
||||
# run_task_3_back(Ctrl, msg)
|
||||
# else:
|
||||
# run_task_4_back(Ctrl, msg)
|
||||
if arrow_direction == 'left':
|
||||
run_task_3_back(Ctrl, msg)
|
||||
else:
|
||||
run_task_4_back(Ctrl, msg)
|
||||
|
||||
# run_task_2_5_back(Ctrl, msg, direction=arrow_direction)
|
||||
run_task_2_5_back(Ctrl, msg, direction=arrow_direction)
|
||||
|
||||
run_task_2_back(Ctrl, msg)
|
||||
# run_task_2_back(Ctrl, msg)
|
||||
|
||||
run_task_1_back(Ctrl, msg)
|
||||
# run_task_1_back(Ctrl, msg)
|
||||
|
||||
except KeyboardInterrupt:
|
||||
print("\n程序被用户中断")
|
||||
|
@ -494,16 +494,16 @@ def run_task_3(ctrl, msg):
|
||||
section('任务3:上下坡', "启动")
|
||||
info('开始执行任务3...', "启动")
|
||||
|
||||
turn_degree_v2(ctrl, msg, 90, absolute=True)
|
||||
# go_lateral(ctrl, msg, distance=0.2, speed=0.1, observe=True)
|
||||
# turn_degree_v2(ctrl, msg, 90, absolute=True)
|
||||
# go_lateral(ctrl, msg, distance=0.2, speed=0.1, observe=True) # TEST
|
||||
|
||||
section('任务3-1:up', "开始")
|
||||
pass_up_down(ctrl, msg)
|
||||
# section('任务3-1:up', "开始")
|
||||
# pass_up_down(ctrl, msg)
|
||||
|
||||
turn_degree_v2(ctrl, msg, 90, absolute=True)
|
||||
center_on_dual_tracks(ctrl, msg, max_time=15, max_deviation=10.0, observe=False)
|
||||
|
||||
section('任务3-2:yellow stop', "开始")
|
||||
# section('任务3-2:yellow stop', "开始")
|
||||
go_until_yellow_area(ctrl, msg, yellow_ratio_threshold=0.15, speed=0.3)
|
||||
|
||||
# 原地站立3秒
|
||||
|
@ -81,7 +81,7 @@ def run_task_4_back(ctrl, msg):
|
||||
def go_straight_until_sky_ratio_below(ctrl, msg,
|
||||
sky_ratio_threshold=0.2,
|
||||
step_distance=0.5,
|
||||
max_distance=2,
|
||||
max_distance=5,
|
||||
speed=0.3
|
||||
):
|
||||
"""
|
||||
|
@ -210,7 +210,6 @@ def run_task_5(ctrl, msg, direction='left', observe=False):
|
||||
"""
|
||||
走向卸货
|
||||
"""
|
||||
|
||||
center_on_dual_tracks(ctrl, msg, max_time=15, max_deviation=10.0, observe=False)
|
||||
section('任务5-1:直线移动并扫描二维码', "移动")
|
||||
|
||||
@ -242,7 +241,7 @@ def run_task_5(ctrl, msg, direction='left', observe=False):
|
||||
ctrl.base_msg.lie_down(wait_time=3000)
|
||||
ctrl.base_msg.stand_up()
|
||||
|
||||
# section('任务5-4:返回', "移动")
|
||||
section('任务5-4:返回', "移动")
|
||||
go_straight(ctrl, msg, distance=-1, speed=0.5, observe=observe)
|
||||
move_to_hori_line(ctrl, msg, target_distance=1.3, observe=observe)
|
||||
|
||||
@ -251,7 +250,14 @@ def run_task_5(ctrl, msg, direction='left', observe=False):
|
||||
go_straight(ctrl, msg, distance=1.2, speed=0.5, observe=observe)
|
||||
|
||||
section('任务5-6:转弯', "转弯")
|
||||
arc_turn_around_hori_line(ctrl, msg, angle_deg=90, target_distance=0.3, observe=observe)
|
||||
arc_turn_around_hori_line(ctrl, msg, angle_deg=-90, target_distance=0.3, observe=observe)
|
||||
|
||||
section('任务5-5:上货', "卸货")
|
||||
ctrl.base_msg.lie_down(wait_time=3000)
|
||||
ctrl.base_msg.stand_up()
|
||||
|
||||
section('任务5-7:返回', "移动")
|
||||
turn_degree_v2(ctrl, msg, degree=-90, absolute=True)
|
||||
|
||||
# 返回移动和扫描结果
|
||||
return go_success, res['qr_result']
|
||||
|
Loading…
x
Reference in New Issue
Block a user