feat: task-1
This commit is contained in:
parent
aab4628dcd
commit
d26f233cea
6
main.py
6
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_4.task_4 import run_task_4, run_task_4_back
|
||||||
from task_test.task_left_line import run_task_test
|
from task_test.task_left_line import run_task_test
|
||||||
from task_5.task_5 import run_task_5
|
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.turn_degree import turn_degree, turn_degree_v2
|
||||||
from base_move.center_on_dual_tracks import center_on_dual_tracks
|
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
|
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()
|
Ctrl.base_msg.stand_up()
|
||||||
print('yuyin')
|
print('yuyin')
|
||||||
# speak('nihao')
|
# 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()
|
Ctrl.base_msg.stand_up()
|
||||||
|
|
||||||
# time.sleep(100) # TEST,
|
# 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 = run_task_2(Ctrl, msg, xy_flag=False)
|
||||||
# arrow_direction = 'right' # TEST
|
# arrow_direction = 'right' # TEST
|
||||||
|
@ -6,29 +6,20 @@ from sensor_msgs.msg import Image
|
|||||||
from cv_bridge import CvBridge
|
from cv_bridge import CvBridge
|
||||||
import cv2
|
import cv2
|
||||||
import os
|
import os
|
||||||
from pyzbar import pyzbar
|
|
||||||
from threading import Thread, Lock
|
from threading import Thread, Lock
|
||||||
import time
|
import time
|
||||||
import queue
|
import queue
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
#from utils.log_helper import get_logger
|
from utils.log_helper import get_logger
|
||||||
# 导入AI相机服务
|
# 导入AI相机服务
|
||||||
from protocol.srv import CameraService
|
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):
|
class ImageSubscriber(Node):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__('image_subscriber')
|
super().__init__('ai_camera_demo')
|
||||||
|
|
||||||
# 初始化安全控制标志
|
# 初始化安全控制标志
|
||||||
self._shutdown_flag = False
|
self._shutdown_flag = False
|
||||||
@ -205,13 +196,12 @@ class ImageProcessor:
|
|||||||
def get_current_image(self):
|
def get_current_image(self):
|
||||||
return self.image_subscriber.cv_image
|
return self.image_subscriber.cv_image
|
||||||
|
|
||||||
def decode_qrcode(self, img=None):
|
def decode_qrcodes(self, img=None):
|
||||||
"""使用pyzbar解码QR码"""
|
"""使用pyzbar解码QR码"""
|
||||||
if img is None:
|
if img is None:
|
||||||
img = self.get_current_image()
|
img = self.get_current_image()
|
||||||
|
if img is None:
|
||||||
if img is None:
|
return None
|
||||||
return None
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# 使用pyzbar解码所有条形码/QR码
|
# 使用pyzbar解码所有条形码/QR码
|
||||||
@ -227,31 +217,31 @@ class ImageProcessor:
|
|||||||
print(f"QR码解码错误: {str(e)}")
|
print(f"QR码解码错误: {str(e)}")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def decode_all_qrcodes(self, img=None):
|
# def decode_all_qrcodes(self, img=None):
|
||||||
"""解码图像中的所有QR码/条形码"""
|
# """解码图像中的所有QR码/条形码"""
|
||||||
if img is None:
|
# if img is None:
|
||||||
img = self.get_current_image()
|
# img = self.get_current_image()
|
||||||
|
|
||||||
if img is None:
|
# if img is None:
|
||||||
return []
|
# return []
|
||||||
|
|
||||||
try:
|
# try:
|
||||||
decoded_objects = pyzbar.decode(img)
|
# decoded_objects = pyzbar.decode(img)
|
||||||
results = []
|
# results = []
|
||||||
|
|
||||||
for obj in decoded_objects:
|
# for obj in decoded_objects:
|
||||||
result = {
|
# result = {
|
||||||
'data': obj.data.decode('utf-8'),
|
# 'data': obj.data.decode('utf-8'),
|
||||||
'type': obj.type,
|
# 'type': obj.type,
|
||||||
'rect': obj.rect, # 位置信息 (x, y, width, height)
|
# 'rect': obj.rect, # 位置信息 (x, y, width, height)
|
||||||
'polygon': obj.polygon # 多边形顶点
|
# 'polygon': obj.polygon # 多边形顶点
|
||||||
}
|
# }
|
||||||
results.append(result)
|
# results.append(result)
|
||||||
|
|
||||||
return results
|
# return results
|
||||||
except Exception as e:
|
# except Exception as e:
|
||||||
print(f"批量QR码解码错误: {str(e)}")
|
# print(f"批量QR码解码错误: {str(e)}")
|
||||||
return []
|
# return []
|
||||||
|
|
||||||
def start_async_scan(self, interval=0.3):
|
def start_async_scan(self, interval=0.3):
|
||||||
"""
|
"""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user