Domain Layer - Vision Services
controller.domain.services.vision.camera_domain_service
摄像头领域服务 - Domain层 管理ROS2摄像头订阅节点
ColorImageSubscriber
ColorImageSubscriber(callback)
Bases: Node
彩色图像订阅节点。
属性:
| 名称 | 类型 | 描述 |
|---|---|---|
callback |
callable
|
图像接收回调函数。 |
bridge |
CvBridge
|
CV 桥接器。 |
subscription |
Subscription
|
ROS 订阅对象。 |
初始化彩色图像订阅节点。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
callback
|
callable
|
图像接收回调函数。 |
必需 |
源代码位于: src/controller/controller/domain/services/vision/camera_domain_service.py
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | |
image_callback
image_callback(msg)
图像回调函数。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
msg
|
Image
|
ROS 图像消息。 |
必需 |
源代码位于: src/controller/controller/domain/services/vision/camera_domain_service.py
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | |
DepthImageSubscriber
DepthImageSubscriber(callback)
Bases: Node
深度图像订阅节点。
属性:
| 名称 | 类型 | 描述 |
|---|---|---|
callback |
callable
|
图像接收回调函数。 |
bridge |
CvBridge
|
CV 桥接器。 |
subscription |
Subscription
|
ROS 订阅对象。 |
初始化深度图像订阅节点。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
callback
|
callable
|
图像接收回调函数。 |
必需 |
源代码位于: src/controller/controller/domain/services/vision/camera_domain_service.py
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | |
image_callback
image_callback(msg)
图像回调函数。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
msg
|
Image
|
ROS 图像消息。 |
必需 |
源代码位于: src/controller/controller/domain/services/vision/camera_domain_service.py
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | |
CameraDomainService
CameraDomainService()
Bases: QObject
摄像头领域服务。
职责: - 管理 ROS2 摄像头订阅节点的生命周期 - 维护最新的彩色/深度图像数据(线程安全) - 发射图像接收信号 - 深度图可视化处理
属性:
| 名称 | 类型 | 描述 |
|---|---|---|
color_image_received |
pyqtSignal
|
彩色图像接收信号,携带图像数据 (np.ndarray)。 |
depth_image_received |
pyqtSignal
|
深度图像接收信号,携带图像数据 (np.ndarray)。 |
connection_status_changed |
pyqtSignal
|
连接状态变更信号,携带 (connected, message)。 |
error_occurred |
pyqtSignal
|
错误信号,携带错误信息。 |
初始化摄像头领域服务。
源代码位于: src/controller/controller/domain/services/vision/camera_domain_service.py
137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 | |
connect
connect() -> bool
连接摄像头(启动 ROS 订阅)。
返回:
| 名称 | 类型 | 描述 |
|---|---|---|
bool |
bool
|
连接成功返回 True,失败返回 False。 |
源代码位于: src/controller/controller/domain/services/vision/camera_domain_service.py
163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 | |
disconnect
disconnect() -> bool
断开摄像头(关闭 ROS 订阅)。
返回:
| 名称 | 类型 | 描述 |
|---|---|---|
bool |
bool
|
断开成功返回 True,失败返回 False。 |
源代码位于: src/controller/controller/domain/services/vision/camera_domain_service.py
203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 | |
get_latest_color_image
get_latest_color_image() -> Optional[np.ndarray]
获取最新彩色图像(线程安全)。
返回:
| 类型 | 描述 |
|---|---|
Optional[ndarray]
|
Optional[np.ndarray]: 图像数据,无数据返回 None。 |
源代码位于: src/controller/controller/domain/services/vision/camera_domain_service.py
249 250 251 252 253 254 255 256 | |
get_latest_depth_image
get_latest_depth_image() -> Optional[np.ndarray]
获取最新深度图像(线程安全)。
返回:
| 类型 | 描述 |
|---|---|
Optional[ndarray]
|
Optional[np.ndarray]: 图像数据,无数据返回 None。 |
源代码位于: src/controller/controller/domain/services/vision/camera_domain_service.py
258 259 260 261 262 263 264 265 | |
is_color_available
is_color_available() -> bool
检查彩色图像是否可用。
返回:
| 名称 | 类型 | 描述 |
|---|---|---|
bool |
bool
|
是否可用。 |
源代码位于: src/controller/controller/domain/services/vision/camera_domain_service.py
267 268 269 270 271 272 273 | |
is_depth_available
is_depth_available() -> bool
检查深度图像是否可用。
返回:
| 名称 | 类型 | 描述 |
|---|---|---|
bool |
bool
|
是否可用。 |
源代码位于: src/controller/controller/domain/services/vision/camera_domain_service.py
275 276 277 278 279 280 281 | |
visualize_depth_image
visualize_depth_image(depth_image: ndarray) -> np.ndarray
深度图可视化为伪彩色图。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
depth_image
|
ndarray
|
原始深度图(16位或32位浮点)。 |
必需 |
返回:
| 类型 | 描述 |
|---|---|
ndarray
|
np.ndarray: 伪彩色深度图(BGR, uint8)。 |
源代码位于: src/controller/controller/domain/services/vision/camera_domain_service.py
283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 | |
controller.domain.services.vision.recognition_domain_service
零件识别领域服务 - Domain层 管理ROS2检测结果订阅节点
DetectionSubscriberNode
DetectionSubscriberNode(callback)
Bases: Node
检测结果订阅节点。
属性:
| 名称 | 类型 | 描述 |
|---|---|---|
callback |
callable
|
检测结果回调函数。 |
subscription |
Subscription
|
ROS 订阅对象。 |
初始化检测结果订阅节点。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
callback
|
callable
|
检测结果回调函数。 |
必需 |
源代码位于: src/controller/controller/domain/services/vision/recognition_domain_service.py
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | |
detection_callback
detection_callback(msg)
检测结果回调函数。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
msg
|
DetectionResult
|
ROS 检测结果消息。 |
必需 |
源代码位于: src/controller/controller/domain/services/vision/recognition_domain_service.py
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | |
RecognitionDomainService
RecognitionDomainService()
Bases: QObject
零件识别领域服务。
职责: - 订阅 recognition_result ROS 话题 - 维护最新检测结果(线程安全) - 独立于摄像头服务运行 - 发射检测结果信号
属性:
| 名称 | 类型 | 描述 |
|---|---|---|
detection_result_received |
pyqtSignal
|
检测结果接收信号,携带结果字典。 |
detection_status_changed |
pyqtSignal
|
检测状态变更信号,携带 (is_running, message)。 |
error_occurred |
pyqtSignal
|
错误信号,携带错误信息。 |
初始化零件识别领域服务。
源代码位于: src/controller/controller/domain/services/vision/recognition_domain_service.py
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | |
start_detection
start_detection() -> bool
开始检测(启动 ROS 订阅)。
返回:
| 名称 | 类型 | 描述 |
|---|---|---|
bool |
bool
|
启动成功返回 True,失败返回 False。 |
源代码位于: src/controller/controller/domain/services/vision/recognition_domain_service.py
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | |
stop_detection
stop_detection() -> bool
停止检测(关闭 ROS 订阅)。
返回:
| 名称 | 类型 | 描述 |
|---|---|---|
bool |
bool
|
停止成功返回 True,失败返回 False。 |
源代码位于: src/controller/controller/domain/services/vision/recognition_domain_service.py
144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 | |
get_latest_result
get_latest_result() -> Optional[Dict]
获取最新检测结果(线程安全)。
返回:
| 类型 | 描述 |
|---|---|
Optional[Dict]
|
Optional[Dict]: 检测结果字典,无结果返回 None。 |
源代码位于: src/controller/controller/domain/services/vision/recognition_domain_service.py
183 184 185 186 187 188 189 190 191 192 | |
is_detection_running
is_detection_running() -> bool
检查检测是否正在运行。
返回:
| 名称 | 类型 | 描述 |
|---|---|---|
bool |
bool
|
是否正在运行。 |
源代码位于: src/controller/controller/domain/services/vision/recognition_domain_service.py
194 195 196 197 198 199 200 | |
clear_result
clear_result()
清除检测结果。
源代码位于: src/controller/controller/domain/services/vision/recognition_domain_service.py
202 203 204 205 | |