










图①:主线程初始化与生命周期 camera3d_main_init
完整覆盖以下阶段:
启动阶段 --- CLI 解析 → YAML 配置加载 → spdlog 日志初始化 → Prometheus 监控指标注册 → 硬件枚举(USB3/GigE/FPGA/IMU)→ 硬件就绪检查 → 传感器上电(VCSEL 激光安全检查 + FPGA bitstream 上传 + IMU 复位)→ 标定数据加载(K\mathbf{K}K, dist, (R,t)∈SE(3)(\mathbf{R},\mathbf{t}) \in SE(3)(R,t)∈SE(3), 手眼矩阵 X\mathbf{X}X)→ 预计算 LUT(去畸变/相位-深度/三角测量)
IPC 基础设施 --- 6条线程安全阻塞队列(各深度标注)+ 8个条件变量 + 2个 lock-free SPSC(IMU 专用)+ 4个原子标志 → 共享内存双缓冲池分配
线程创建与调度 --- 9个工作线程,含 CPU 亲和性绑定与 SCHED_FIFO 优先级分配(T2/T3/T4 = 90/80/80,T6 = 70)
主监控循环 --- Watchdog 心跳检查 → 僵死线程检测 → 最多 3 次自动重启 → 超限则紧急停机 → 性能指标采集 → 外部停止信号监听
优雅停机 --- stop_flag 广播 → notify_all → 所有线程 join(timeout=2s) → 硬件关闭 → 日志刷盘 → 最终性能报告

图②:九线程并发主循环 camera3d_threads(泳道图)
