This commit is contained in:
hav 2025-08-21 22:15:24 +08:00
parent f04dc3cf8f
commit 172d348c73

168
main.py
View File

@ -39,7 +39,7 @@ from Circle1.circle1 import circle1
from Circle2.circle2 import circle2
pass_marker = True
TIME_SLEEP = 5000 # TODO 比赛时改成 5000
# TIME_SLEEP = 5000 # TODO 比赛时改成 5000
from enum import Enum, auto
@ -66,99 +66,99 @@ def main():
Ctrl.voice.play_audio('ok')
demo.play_audio(text)
# try:
# # INFO Real Task
# # TAG task - 0
# info("Recovery stand", "info")
# Ctrl.base_msg.stand_up()
# Ctrl.base_msg.stop() # BUG 垃圾指令 for eat # INFO 但是正式比赛或许也有用
try:
# INFO Real Task
# TAG task - 0
info("Recovery stand", "info")
Ctrl.base_msg.stand_up()
Ctrl.base_msg.stop() # BUG 垃圾指令 for eat # INFO 但是正式比赛或许也有用
# if TASK == TaskType.PASS_BAR:
# from task_4.pass_bar import pass_bar
# # TEST #1: pass-bar
# pass_bar(Ctrl, msg)
# elif TASK == TaskType.YELLOW_LIGHT: # TODO image
# from task_3.task_3 import go_until_yellow_area
# # turn_degree_v2(Ctrl, msg, degree=-90, absolute=True)
# go_until_yellow_area(Ctrl, msg, yellow_ratio_threshold=0.012, speed=0.3, max_time=30, observe=True)
# elif TASK == TaskType.RED_BAR:
# from task_4.task_4 import go_straight_until_red_bar
# go_straight_until_red_bar(Ctrl, msg, red_ratio_threshold=0.18, step_distance=0.3)
# elif TASK == TaskType.UP_AND_DOWN:
# from task_3.task_3 import go_straight_with_enhanced_calibration
# go_straight_with_enhanced_calibration(Ctrl, msg, distance = 5, speed=0.5, observe=False, mode=11, gait_id=3, step_height=[0.21, 0.21])
# elif TASK == TaskType.STONE_ROAD:
# from task_3.task_3 import pass_stone
# pass_stone(Ctrl, msg, distance = 4.5, observe=False)
# elif TASK == TaskType.MOVE_TO_LINE:
# from base_move.move_base_hori_line import move_to_hori_line
# move_to_hori_line(Ctrl, msg, target_distance = 1.1, observe=False)
# elif TASK == TaskType.CENTER_ON_DUAL_TRACKS:
# from base_move.center_on_dual_tracks import center_on_dual_tracks
# center_on_dual_tracks(Ctrl, msg, max_deviation=10.0, observe=False, detect_height=0.3)
# else:
# pass
if TASK == TaskType.PASS_BAR:
from task_4.pass_bar import pass_bar
# TEST #1: pass-bar
pass_bar(Ctrl, msg)
elif TASK == TaskType.YELLOW_LIGHT: # TODO image
from task_3.task_3 import go_until_yellow_area
# turn_degree_v2(Ctrl, msg, degree=-90, absolute=True)
go_until_yellow_area(Ctrl, msg, yellow_ratio_threshold=0.012, speed=0.3, max_time=30, observe=True)
elif TASK == TaskType.RED_BAR:
from task_4.task_4 import go_straight_until_red_bar
go_straight_until_red_bar(Ctrl, msg, red_ratio_threshold=0.18, step_distance=0.3)
elif TASK == TaskType.UP_AND_DOWN:
from task_3.task_3 import go_straight_with_enhanced_calibration
go_straight_with_enhanced_calibration(Ctrl, msg, distance = 5, speed=0.5, observe=False, mode=11, gait_id=3, step_height=[0.21, 0.21])
elif TASK == TaskType.STONE_ROAD:
from task_3.task_3 import pass_stone
pass_stone(Ctrl, msg, distance = 4.5, observe=False)
elif TASK == TaskType.MOVE_TO_LINE:
from base_move.move_base_hori_line import move_to_hori_line
move_to_hori_line(Ctrl, msg, target_distance = 1.1, observe=False)
elif TASK == TaskType.CENTER_ON_DUAL_TRACKS:
from base_move.center_on_dual_tracks import center_on_dual_tracks
center_on_dual_tracks(Ctrl, msg, max_deviation=10.0, observe=False, detect_height=0.3)
else:
pass
# if TASK != TaskType.TASK:
# # 如果不是 task 类型,直接返回
# pass
if TASK != TaskType.TASK:
# 如果不是 task 类型,直接返回
pass
# # TAG task - 1
# TAG task - 1
# run_task_1(Ctrl, msg, time_sleep=TIME_SLEEP)
# # TAG task - 2
# arrow_direction = xiesi2(Ctrl, msg)
# TAG task - 2
arrow_direction = xiesi2(Ctrl, msg)
# # TAG task - 3 / 4 - part I
# # arrow_direction = 'left'
# TAG task - 3 / 4 - part I
# arrow_direction = 'left'
if arrow_direction == 'left':
circle1(Ctrl, msg)
else:
circle2(Ctrl, msg)
# TAG task - 5
# Ctrl.base_msg.stand_up()
# turn_degree_v2(Ctrl, msg, degree=90, absolute=True)
# run_task_5(Ctrl, msg, direction=arrow_direction, observe=True, time_sleep=TIME_SLEEP) # B区任务
# Ctrl.base_msg.lie_down(wait_time=10000)
# print('wait 30s')
# TAG task - 3 / 4 - part II
# Ctrl.base_msg.stand_up()
# if arrow_direction == 'left':
# circle1(Ctrl, msg)
# from task_3.task_3 import go_straight_with_enhanced_calibration
# go_straight_with_enhanced_calibration(Ctrl, msg, distance = 5, speed=0.5, observe=False, mode=11, gait_id=3, step_height=[0.21, 0.21])
# else:
# circle2(Ctrl, msg)
# from task_3.task_3 import pass_stone
# pass_stone(Ctrl, msg, distance = 4.5, observe=False)
# TAG task - 2.5 - back
#nrun_task_2_5_back(Ctrl, msg, direction=arrow_direction)
# Ctrl.base_msg.lie_down(wait_time=10000)
# print('wait 30s')
# Ctrl.base_msg.stand_up()
# TAG task - 2 - back
# run_task_2_back(Ctrl, msg)
xiesi2_back(Ctrl, msg)
# Ctrl.base_msg.lie_down(wait_time=10000)
# print('wait 30s')
# Ctrl.base_msg.stand_up()
# TAG task - 1 - back
# run_task_1_back(Ctrl, msg, time_sleep=TIME_SLEEP)
# # TAG task - 5
# # Ctrl.base_msg.stand_up()
# # turn_degree_v2(Ctrl, msg, degree=90, absolute=True)
# # run_task_5(Ctrl, msg, direction=arrow_direction, observe=True, time_sleep=TIME_SLEEP) # B区任务
# # Ctrl.base_msg.lie_down(wait_time=10000)
# # print('wait 30s')
# # TAG task - 3 / 4 - part II
# # Ctrl.base_msg.stand_up()
# # if arrow_direction == 'left':
# # from task_3.task_3 import go_straight_with_enhanced_calibration
# # go_straight_with_enhanced_calibration(Ctrl, msg, distance = 5, speed=0.5, observe=False, mode=11, gait_id=3, step_height=[0.21, 0.21])
# # else:
# # from task_3.task_3 import pass_stone
# # pass_stone(Ctrl, msg, distance = 4.5, observe=False)
# # TAG task - 2.5 - back
# #nrun_task_2_5_back(Ctrl, msg, direction=arrow_direction)
# # Ctrl.base_msg.lie_down(wait_time=10000)
# # print('wait 30s')
# # Ctrl.base_msg.stand_up()
# # TAG task - 2 - back
# # run_task_2_back(Ctrl, msg)
# xiesi2_back(Ctrl, msg)
# # Ctrl.base_msg.lie_down(wait_time=10000)
# # print('wait 30s')
# # Ctrl.base_msg.stand_up()
# # TAG task - 1 - back
# # run_task_1_back(Ctrl, msg, time_sleep=TIME_SLEEP)
# print('🏁 Task finished.')
# try:
# while rclpy.ok():
# executor.spin_once(timeout_sec=0.1)
# if getattr(node, '_shutdown_flag', False):
# break
# except KeyboardInterrupt:
# pass
print('🏁 Task finished.')
try:
while rclpy.ok():
executor.spin_once(timeout_sec=0.1)
if getattr(node, '_shutdown_flag', False):
break
except KeyboardInterrupt:
pass
except KeyboardInterrupt:
print("\n程序被用户中断")