This commit is contained in:
hav 2025-08-21 18:20:07 +08:00
parent f312b28d14
commit 8f9b63339a
5 changed files with 362 additions and 359 deletions

47
main.py
View File

@ -26,6 +26,7 @@ from utils.speech_demo import speak
from task_1.task_1 import run_task_1 # , run_task_1_back
from task_2.task_2 import run_task_2, run_task_2_back, run_task_2_demo
from task_2.xiesi2 import xiesi2,xiesi2_back
from task_2_5.task_2_5 import run_task_2_5, run_task_2_5_back
from task_3.task_3 import run_task_3, run_task_3_back
from task_4.task_4 import run_task_4, run_task_4_back
@ -50,7 +51,7 @@ class TaskType(Enum):
MOVE_TO_LINE = auto() # TODO 直走逼近直线测试
CENTER_ON_DUAL_TRACKS = auto() # TODO 双轨道居中测试
TASK = TaskType.PASS_BAR
TASK = TaskType.TASK
def main():
rclpy.init() # 新增:在主程序中统一初始化 ROS 2 上下文
@ -98,50 +99,52 @@ def main():
# TAG task - 1
# run_task_1(Ctrl, msg, time_sleep=TIME_SLEEP)
# Ctrl.base_msg.lie_down(wait_time=300000)
# Ctrl.base_msg.lie_down(wait_time=5000)
# print('wait 30s')
# TAG task - 2
#Ctrl.base_msg.stand_up()
# Ctrl.base_msg.stand_up()
# arrow_direction='left'
# arrow_direction = run_task_2_demo(Ctrl, msg, xy_flag=False) # TEST
# arrow_direction = run_task_2(Ctrl, msg, xy_flag=False)
# # arrow_direction = run_task_2_demo(Ctrl, msg, xy_flag=False) # TEST
# # arrow_direction = run_task_2(Ctrl, msg, xy_flag=False)
# arrow_direction = xiesi2(Ctrl, msg)
# arrow_direction='left'
# print('🏹 arrow_direction: ', arrow_direction)
# Ctrl.base_msg.lie_down(wait_time=300000)
# Ctrl.base_msg.lie_down(wait_time=10000)
# print('wait 30s')
# arrow_direction = 'right'
# if(arrow_direction=='left'): speak("左侧路线")
# else: speak("右侧路线")
# # if(arrow_direction=='left'): speak("左侧路线")
# # else: speak("右侧路线")
#TAG task - 2.5
# #TAG task - 2.5
# run_task_2_5(Ctrl, msg, direction=arrow_direction)
# Ctrl.base_msg.lie_down(wait_time=300000)
# Ctrl.base_msg.lie_down(wait_time=10000)
# print('wait 30s')
arrow_direction = 'left'
#TAG task - 3 / 4 - part I
#TAG task - 3 / 4 - part I
arrow_direction = 'left'
# Ctrl.base_msg.stand_up()
if arrow_direction == 'left':
run_task_4(Ctrl, msg)
else:
run_task_3(Ctrl, msg, time_sleep=TIME_SLEEP) # 直接上下坡,然后走到 黄灯前原地踏步的部分
# Ctrl.base_msg.lie_down(wait_time=300000)
# if arrow_direction == 'left':
# run_task_4(Ctrl, msg)
# else:
# run_task_3(Ctrl, msg, time_sleep=TIME_SLEEP) # 直接上下坡,然后走到 黄灯前原地踏步的部分
# Ctrl.base_msg.lie_down(wait_time=10000
# print('wait 30s')
# TAG task - 5
# Ctrl.base_msg.stand_up()
turn_degree_v2(Ctrl, msg, degree=90, absolute=True)
Ctrl.base_msg.stand_up()
#turn_degree_v2(Ctrl, msg, degree=90, absolute=True)
success, qr=run_task_5(Ctrl, msg, direction=arrow_direction, observe=True, time_sleep=TIME_SLEEP) # B区任务
print(success)
print(qr)
# Ctrl.base_msg.lie_down(wait_time=300000)
Ctrl.base_msg.lie_down(wait_time=10000)
# print('wait 30s')
@ -154,14 +157,14 @@ def main():
# #TAG task - 2.5 - back
# run_task_2_5_back(Ctrl, msg, direction=arrow_direction)
# Ctrl.base_msg.lie_down(wait_time=300000)
# 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=300000)
# Ctrl.base_msg.lie_down(wait_time=10000)
# print('wait 30s')
# Ctrl.base_msg.stand_up()

View File

@ -61,8 +61,8 @@ def run_task_1(ctrl, msg, time_sleep=5000):
section('任务1-3转弯', "旋转")
direction = False if res.get('qr_result') == 'A-1' else True # TODO 需要检查一下,这个方向是否正确
if direction == False :speak("A 区库位 1")
else:speak("A 区库位 2")
# if direction == False :speak("A 区库位 1")
# else:speak("A 区库位 2")
turn_success, res = arc_turn_around_hori_line(
ctrl=ctrl,

File diff suppressed because it is too large Load Diff

0
task_3/Gait_Params_up_full.toml Executable file → Normal file
View File

View File

@ -230,11 +230,11 @@ def run_task_5(ctrl, msg, direction='left', observe=False, time_sleep=5000):
else:
error("未能成功到达横线前指定距离", "失败")
if res['qr_result'] == 'B-2':speak("B 区库位 2")
else:speak("B 区库位 1")
# if res['qr_result'] == 'B-2':speak("B 区库位 2")
# else:speak("B 区库位 1")
section('任务5-2移动到卸货点', "移动")
center_on_dual_tracks(ctrl, msg, 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':
# 直走
move_to_hori_line(ctrl, msg, target_distance=1.9, observe=observe, detect_func_version=4)