53 lines
2.8 KiB
Markdown
53 lines
2.8 KiB
Markdown
graph TB
|
||
subgraph "真实算法检测流程"
|
||
Start[开始检测任务] --> GetCache[获取缓存的点云数据<br/>m_detectionDataCache]
|
||
GetCache --> CheckEmpty{是否有缓存数据?}
|
||
CheckEmpty -->|否| ReturnError[返回错误:<br/>无缓存的检测数据]
|
||
CheckEmpty -->|是| Convert[数据格式转换<br/>SVzLaserLineData → SVzNL3DLaserLine]
|
||
|
||
Convert --> SetParam[设置算法参数<br/>SG_bagPositionParam]
|
||
SetParam --> SetBagParam[编织袋参数<br/>L=650, W=450, H=160]
|
||
SetBagParam --> SetFilterParam[滤波参数<br/>continuityTh=20.0, outlierTh=5]
|
||
SetFilterParam --> SetFeatureParam[特征参数<br/>角点/斜率参数]
|
||
SetFeatureParam --> SetGrowParam[增长参数<br/>maxLineSkipNum=5等]
|
||
|
||
SetGrowParam --> SetCalibParam[设置校准参数<br/>SSG_planeCalibPara]
|
||
SetCalibParam --> PreProcess[数据预处理<br/>sg_lineDataR调平和去地面]
|
||
PreProcess --> CallAlgo[调用算法检测<br/>sg_getBagPosition]
|
||
|
||
CallAlgo --> ConvertResult[转换检测结果<br/>SSG_peakRgnInfo → DetectionResult]
|
||
ConvertResult --> FreeMemory[释放内存<br/>laser3DPoints]
|
||
|
||
FreeMemory --> CheckResult{检测到目标?}
|
||
CheckResult -->|是| UpdateUI[更新UI显示结果<br/>OnDetectionResult]
|
||
CheckResult -->|否| NoTarget[显示未发现目标]
|
||
|
||
UpdateUI --> UpdateRobot[更新机械臂坐标<br/>第一个目标位置]
|
||
NoTarget --> Complete[完成检测任务]
|
||
UpdateRobot --> Complete
|
||
Complete --> Ready[恢复就绪状态]
|
||
end
|
||
|
||
subgraph "数据转换详情"
|
||
SourceData[SVzLaserLineData<br/>相机回调数据] --> TargetData[SVzNL3DLaserLine<br/>算法输入格式]
|
||
SourceData --> CopyTime[复制时间戳<br/>nTimeStamp]
|
||
SourceData --> CopyCount[复制点数<br/>nPointCount]
|
||
SourceData --> CopyPoints[复制3D点坐标<br/>x, y, z]
|
||
end
|
||
|
||
subgraph "算法参数配置"
|
||
BagSize[袋子尺寸<br/>650×450×160mm]
|
||
FilterParams[滤波参数<br/>噪声阈值]
|
||
FeatureParams[特征参数<br/>角点/斜率检测]
|
||
GrowParams[增长参数<br/>连接阈值]
|
||
end
|
||
|
||
classDef processClass fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
|
||
classDef dataClass fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
|
||
classDef algoClass fill:#e8f5e8,stroke:#388e3c,stroke-width:2px
|
||
classDef resultClass fill:#fff3e0,stroke:#f57c00,stroke-width:2px
|
||
|
||
class Start,GetCache,Convert,SetParam,PreProcess,CallAlgo,ConvertResult,FreeMemory,Complete,Ready processClass
|
||
class SourceData,TargetData,CopyTime,CopyCount,CopyPoints dataClass
|
||
class BagSize,FilterParams,FeatureParams,GrowParams algoClass
|
||
class UpdateUI,UpdateRobot,NoTarget resultClass |