From d26f233ceaf7b60d8572881e03f233a1078a6c7b Mon Sep 17 00:00:00 2001 From: havocrao Date: Mon, 18 Aug 2025 22:38:52 +0800 Subject: [PATCH] feat: task-1 --- main.py | 6 ++--- utils/image_raw.py | 66 ++++++++++++++++++++-------------------------- 2 files changed, 30 insertions(+), 42 deletions(-) diff --git a/main.py b/main.py index 683a9a7..d10d0bc 100755 --- a/main.py +++ b/main.py @@ -31,7 +31,6 @@ from task_2_5.task_2_5 import run_task_2_5, run_task_2_5_back from task_4.task_4 import run_task_4, run_task_4_back from task_test.task_left_line import run_task_test from task_5.task_5 import run_task_5 -from task_4.pass_bar import pass_bar from base_move.turn_degree import turn_degree, turn_degree_v2 from base_move.center_on_dual_tracks import center_on_dual_tracks from base_move.go_to_xy import go_to_x_v2, go_to_y_v2 @@ -52,14 +51,13 @@ def main(): Ctrl.base_msg.stand_up() print('yuyin') # speak('nihao') - # Ctrl.base_msg.stop() # BUG 垃圾指令 for eat + Ctrl.base_msg.stop() # BUG 垃圾指令 for eat - pass_bar(Ctrl, msg) Ctrl.base_msg.stand_up() # time.sleep(100) # TEST, - # run_task_1(Ctrl, msg, time_sleep=TIME_SLEEP) + run_task_1(Ctrl, msg, time_sleep=TIME_SLEEP) # arrow_direction = run_task_2(Ctrl, msg, xy_flag=False) # arrow_direction = 'right' # TEST diff --git a/utils/image_raw.py b/utils/image_raw.py index 88f98b7..debf93c 100755 --- a/utils/image_raw.py +++ b/utils/image_raw.py @@ -6,29 +6,20 @@ from sensor_msgs.msg import Image from cv_bridge import CvBridge import cv2 import os -from pyzbar import pyzbar from threading import Thread, Lock import time import queue from datetime import datetime -#from utils.log_helper import get_logger +from utils.log_helper import get_logger # 导入AI相机服务 from protocol.srv import CameraService +# qrcode +from pyzbar import pyzbar -#!/usr/bin/env python3 -import rclpy -from rclpy.node import Node -from sensor_msgs.msg import Image -from cv_bridge import CvBridge -import cv2 -import os -import time -from datetime import datetime -from protocol.srv import CameraService class ImageSubscriber(Node): def __init__(self): - super().__init__('image_subscriber') + super().__init__('ai_camera_demo') # 初始化安全控制标志 self._shutdown_flag = False @@ -205,13 +196,12 @@ class ImageProcessor: def get_current_image(self): return self.image_subscriber.cv_image - def decode_qrcode(self, img=None): + def decode_qrcodes(self, img=None): """使用pyzbar解码QR码""" if img is None: img = self.get_current_image() - - if img is None: - return None + if img is None: + return None try: # 使用pyzbar解码所有条形码/QR码 @@ -227,31 +217,31 @@ class ImageProcessor: print(f"QR码解码错误: {str(e)}") return None - def decode_all_qrcodes(self, img=None): - """解码图像中的所有QR码/条形码""" - if img is None: - img = self.get_current_image() + # def decode_all_qrcodes(self, img=None): + # """解码图像中的所有QR码/条形码""" + # if img is None: + # img = self.get_current_image() - if img is None: - return [] + # if img is None: + # return [] - try: - decoded_objects = pyzbar.decode(img) - results = [] + # try: + # decoded_objects = pyzbar.decode(img) + # results = [] - for obj in decoded_objects: - result = { - 'data': obj.data.decode('utf-8'), - 'type': obj.type, - 'rect': obj.rect, # 位置信息 (x, y, width, height) - 'polygon': obj.polygon # 多边形顶点 - } - results.append(result) + # for obj in decoded_objects: + # result = { + # 'data': obj.data.decode('utf-8'), + # 'type': obj.type, + # 'rect': obj.rect, # 位置信息 (x, y, width, height) + # 'polygon': obj.polygon # 多边形顶点 + # } + # results.append(result) - return results - except Exception as e: - print(f"批量QR码解码错误: {str(e)}") - return [] + # return results + # except Exception as e: + # print(f"批量QR码解码错误: {str(e)}") + # return [] def start_async_scan(self, interval=0.3): """