🎏 add readme
							
								
								
									
										54
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,54 @@
 | 
			
		||||
# 任务模块
 | 
			
		||||
 | 
			
		||||
## top
 | 
			
		||||
 | 
			
		||||
1. “装货 / qrcode”
 | 
			
		||||
2. 曲线赛道
 | 
			
		||||
3.上下坡
 | 
			
		||||
c.存在两种可能性
 | 
			
		||||
4. 石板道
 | 
			
		||||
5. 栅栏 / 栏杆
 | 
			
		||||
 | 
			
		||||
## Task-1:出生点 - 取货
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
从二维码取货完,然后走到弯道入口。
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
## Task-2:弯道任务
 | 
			
		||||
过去,以及回来。两个方向都需要。
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
## Task-2.5:识别
 | 
			
		||||
根据二维码决定方向。
 | 
			
		||||
 | 
			
		||||
## Task-3:上下坡
 | 
			
		||||
同样需要考虑两个方向。(正式计时各有一半的概率)
 | 
			
		||||
> 感觉两个坡度稍微有一点点区别。
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
以及反方向。
 | 
			
		||||
 | 
			
		||||
## Task-4:石板路
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
## Task-5:过栅栏
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
## Task-5.5:走向卸货
 | 
			
		||||
从上一个赛道结束到 B 二维码。
 | 
			
		||||
 | 
			
		||||
## Task-6:卸货
 | 
			
		||||
也可能在另一边。
 | 
			
		||||
这里是感觉在走过去的过程中就能判断二维码。
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||

 | 
			
		||||
@ -9,7 +9,7 @@ def turn_degree(ctrl, msg, degree=90, absolute=False):
 | 
			
		||||
    ctrl: Robot_Ctrl 对象,包含里程计信息
 | 
			
		||||
    msg: robot_control_cmd_lcmt 对象,用于发送命令
 | 
			
		||||
    degree: 要旋转的角度,正值表示逆时针,负值表示顺时针,默认为90度
 | 
			
		||||
    absolute: 是否绝对角度,默认为True
 | 
			
		||||
    absolute: 是否绝对角度,默认为 False
 | 
			
		||||
 | 
			
		||||
    返回:
 | 
			
		||||
    Bool: 是否成功旋转到指定角度
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								res/arrows/test/arrow_detection_result.jpg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 99 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								res/readme/image-1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 36 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								res/readme/image-10.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 34 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								res/readme/image-2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 56 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								res/readme/image-3.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 41 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								res/readme/image-4.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 44 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								res/readme/image-5.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 33 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								res/readme/image-6.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 48 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								res/readme/image-7.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 43 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								res/readme/image-8.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 32 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								res/readme/image-9.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 36 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								res/readme/image.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 36 KiB  | 
@ -5,18 +5,20 @@ import sys
 | 
			
		||||
import cv2
 | 
			
		||||
import argparse
 | 
			
		||||
 | 
			
		||||
# 添加工作目录到路径
 | 
			
		||||
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
 | 
			
		||||
# 添加项目根目录到路径
 | 
			
		||||
current_dir = os.path.dirname(os.path.abspath(__file__))
 | 
			
		||||
project_root = os.path.dirname(os.path.dirname(current_dir))
 | 
			
		||||
sys.path.append(project_root)
 | 
			
		||||
 | 
			
		||||
from utils.decode_arrow import detect_arrow_direction, visualize_arrow_detection
 | 
			
		||||
 | 
			
		||||
def main():
 | 
			
		||||
    # 创建参数解析器
 | 
			
		||||
    parser = argparse.ArgumentParser(description='箭头方向检测测试')
 | 
			
		||||
    parser.add_argument('--image', default="image_20250511_121219.png", 
 | 
			
		||||
    parser.add_argument('--image', default="res/arrows/left/image-2.png", 
 | 
			
		||||
                        help='图像文件路径 (默认: image_20250511_121219.png)')
 | 
			
		||||
    parser.add_argument('--save', default="arrow_detection_result.jpg",
 | 
			
		||||
                        help='保存可视化结果的路径 (默认: arrow_detection_result.jpg)')
 | 
			
		||||
    parser.add_argument('--save', default="res/arrows/test/arrow_detection_result.jpg",
 | 
			
		||||
                        help='保存可视化结果的路径 (默认: res/arrows/test/arrow_detection_result.jpg)')
 | 
			
		||||
    parser.add_argument('--show', action='store_true',
 | 
			
		||||
                        help='显示可视化结果')
 | 
			
		||||
    
 | 
			
		||||
							
								
								
									
										1
									
								
								utils/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1 @@
 | 
			
		||||
# 使 utils 作为一个 Python 包 
 | 
			
		||||
@ -163,9 +163,9 @@ def visualize_arrow_detection(image, save_path=None):
 | 
			
		||||
    resized = cv2.resize(result, dim, interpolation=cv2.INTER_AREA)
 | 
			
		||||
    
 | 
			
		||||
    # 显示结果
 | 
			
		||||
    cv2.imshow('Arrow Detection Process', resized)
 | 
			
		||||
    cv2.waitKey(0)
 | 
			
		||||
    cv2.destroyAllWindows()
 | 
			
		||||
    # cv2.imshow('Arrow Detection Process', resized)
 | 
			
		||||
    # cv2.waitKey(0)
 | 
			
		||||
    # cv2.destroyAllWindows()
 | 
			
		||||
 | 
			
		||||
# 用法示例
 | 
			
		||||
if __name__ == "__main__":
 | 
			
		||||
 | 
			
		||||