feeding
This commit is contained in:
@ -8,7 +8,7 @@ from hardware.relay import RelayController
|
||||
from hardware.inverter import InverterController
|
||||
from hardware.transmitter import TransmitterController
|
||||
from hardware.RFID.rfid_service import rfid_service
|
||||
from vision.camera import CameraController
|
||||
from vision.camera import DualCameraController
|
||||
from vision.detector import VisionDetector
|
||||
from feeding.controller import FeedingController
|
||||
|
||||
@ -28,9 +28,15 @@ class FeedingControlSystem:
|
||||
self.transmitter_controller = TransmitterController(self.relay_controller)
|
||||
|
||||
# 初始化视觉系统
|
||||
self.camera_controller = CameraController()
|
||||
self.camera_controller = DualCameraController(settings.camera_configs)
|
||||
|
||||
self.vision_detector = VisionDetector(settings)
|
||||
|
||||
# 初始化RFID控制器
|
||||
self.rfid_controller = rfid_service(
|
||||
host=settings.rfid_host,
|
||||
port=settings.rfid_port
|
||||
)
|
||||
# 初始化下料控制器
|
||||
self.feeding_controller = FeedingController(
|
||||
self.relay_controller,
|
||||
@ -43,11 +49,7 @@ class FeedingControlSystem:
|
||||
settings
|
||||
)
|
||||
|
||||
# 初始化RFID控制器
|
||||
self.rfid_controller = rfid_service(
|
||||
host=settings.rfid_host,
|
||||
port=settings.rfid_port
|
||||
)
|
||||
|
||||
|
||||
# 线程管理
|
||||
self.monitor_thread = None
|
||||
@ -60,39 +62,38 @@ class FeedingControlSystem:
|
||||
print("初始化控制系统...")
|
||||
|
||||
# 设置摄像头配置
|
||||
self.camera_controller.set_config(
|
||||
camera_type=self.settings.camera_type,
|
||||
ip=self.settings.camera_ip,
|
||||
port=self.settings.camera_port,
|
||||
username=self.settings.camera_username,
|
||||
password=self.settings.camera_password,
|
||||
channel=self.settings.camera_channel
|
||||
)
|
||||
# self.camera_controller.set_config(
|
||||
# camera_type=self.settings.camera_type,
|
||||
# ip=self.settings.camera_ip,
|
||||
# port=self.settings.camera_port,
|
||||
# username=self.settings.camera_username,
|
||||
# password=self.settings.camera_password,
|
||||
# channel=self.settings.camera_channel
|
||||
# )
|
||||
|
||||
# 初始化摄像头
|
||||
if not self.camera_controller.setup_capture():
|
||||
raise Exception("摄像头初始化失败")
|
||||
# # 初始化摄像头
|
||||
# if not self.camera_controller.setup_capture():
|
||||
# raise Exception("摄像头初始化失败")
|
||||
|
||||
# 加载视觉模型
|
||||
if not self.vision_detector.load_models():
|
||||
raise Exception("视觉模型加载失败")
|
||||
# if not self.vision_detector.load_models():
|
||||
# raise Exception("视觉模型加载失败")
|
||||
if not self.settings.debug_feeding:
|
||||
if not self.check_device_connectivity():
|
||||
raise Exception("设备连接失败")
|
||||
self.camera_controller.start_cameras()
|
||||
# 启动系统监控(要料,破拱)线程
|
||||
self.start_monitoring()
|
||||
|
||||
if not self.check_device_connectivity():
|
||||
raise Exception("设备连接失败")
|
||||
# 启动视觉控制(角度、溢出)线程
|
||||
self.start_visual_control()
|
||||
|
||||
# 启动系统监控
|
||||
self.start_monitoring()
|
||||
# 启动对齐检查线程
|
||||
self.start_alignment_check()
|
||||
|
||||
# 启动视觉控制
|
||||
self.start_visual_control()
|
||||
|
||||
# 启动对齐检查
|
||||
self.start_alignment_check()
|
||||
|
||||
# 启动下料轮询线程
|
||||
# 启动下料线程
|
||||
self.start_lower_feeding()
|
||||
|
||||
|
||||
print("控制系统初始化完成")
|
||||
|
||||
def start_monitoring(self):
|
||||
@ -126,7 +127,8 @@ class FeedingControlSystem:
|
||||
"""视觉控制循环"""
|
||||
while self.state.running:
|
||||
try:
|
||||
current_frame = self.camera_controller.capture_frame()
|
||||
print('visual_control')
|
||||
current_frame = self.camera_controller.get_single_latest_frame()
|
||||
if current_frame is not None:
|
||||
# 执行视觉控制逻辑
|
||||
self.feeding_controller.visual_control(current_frame)
|
||||
@ -148,13 +150,15 @@ class FeedingControlSystem:
|
||||
while self.state.running:
|
||||
try:
|
||||
if self.state._lower_feeding_stage == 4: # 等待对齐阶段
|
||||
current_frame = self.camera_controller.capture_frame()
|
||||
current_frame = self.camera_controller.get_single_latest_frame()
|
||||
if current_frame is not None:
|
||||
self.state.vehicle_aligned = self.vision_detector.detect_vehicle_alignment(current_frame)
|
||||
if self.state.vehicle_aligned:
|
||||
print("检测到模具车对齐")
|
||||
else:
|
||||
print("模具车未对齐")
|
||||
else:
|
||||
print('未检测到图像')
|
||||
time.sleep(self.settings.alignment_check_interval)
|
||||
except Exception as e:
|
||||
print(f"对齐检查循环错误: {e}")
|
||||
|
||||
Reference in New Issue
Block a user