模型推理移至管道末尾降舵机延迟60→16ms + 视觉Mat复用 + 端到端延迟计时 + OpenCV 4.13 + WASD遥控
This commit is contained in:
+17
-15
@@ -2,11 +2,11 @@
|
||||
|
||||
## 1. 模型检测
|
||||
|
||||
NanoDet V10 模型 4 类输出中:
|
||||
Mild v12 模型 4 类输出中:
|
||||
- cls=1: 红灯
|
||||
- cls=2: 绿灯
|
||||
|
||||
模型置信度阈值由 `g_thresh[1]` 和 `g_thresh[2]` 控制(`src/camera.cpp:25`),当前分别为 0.80。
|
||||
模型置信度阈值由 `g_thresh[1]` 和 `g_thresh[2]` 控制(`src/camera.cpp:42`),当前分别为 0.75(红灯)和 0.80(绿灯)。
|
||||
|
||||
## 2. 状态机
|
||||
|
||||
@@ -41,7 +41,8 @@ NanoDet V10 模型 4 类输出中:
|
||||
和斑马线完全一样,复用编码器比例刹车:
|
||||
|
||||
```
|
||||
ControlUpdate(spd, g_zstate == Z_STOP || tl_block)
|
||||
motor_update(zebra_block, tl_block)
|
||||
→ ControlUpdate(final_spd, zebra_block || tl_block)
|
||||
|
||||
刹车信号 = 斑马线STOP || 红灯STOP || 等待绿灯
|
||||
```
|
||||
@@ -67,20 +68,21 @@ LCD 状态: "R"=红灯停车 "G"=等绿灯, 拼接斑马线状态
|
||||
## 5. 关键代码路径
|
||||
|
||||
```
|
||||
CameraHandler (src/camera.cpp)
|
||||
Step 4: 模型推理 → g_boxes[], g_box_count
|
||||
Step 5: 斑马线状态机
|
||||
Step 5.5: 红绿灯状态机
|
||||
├─ 遍历 g_boxes, 统计 red_seen/green_seen
|
||||
├─ 去抖计数 (3帧确认, 衰减-1/帧)
|
||||
└─ 状态跃迁
|
||||
Step 5.6: 锥桶检测 (g_zstate!=Z_STOP && g_tl_state==TL_NORMAL 时才运行)
|
||||
Step 7: 电机控制
|
||||
ControlUpdate(spd, g_zstate==Z_STOP || tl_block)
|
||||
CameraHandler (src/camera.cpp:755)
|
||||
Step 5: 模型推理 → g_boxes[], g_box_count
|
||||
Step 6a: 斑马线状态机
|
||||
Step 6b: 红绿灯状态机
|
||||
├─ 遍历 g_boxes, 统计 red_seen/green_seen
|
||||
├─ 去抖计数 (3帧确认, 衰减-1/帧)
|
||||
└─ 状态跃迁
|
||||
Step 6c: 锥桶检测 (g_zstate!=Z_STOP && g_tl_state==TL_NORMAL 时才运行)
|
||||
Step 8: 电机控制
|
||||
motor_update(zebra_block, tl_block)
|
||||
→ ControlUpdate(final_spd, zebra_block || tl_block)
|
||||
|
||||
control.cpp:
|
||||
ControlUpdate(speed, zebra_block)
|
||||
└─ zebra_block → 编码器线程读速度 → 比例刹车
|
||||
ControlUpdate(speed, block)
|
||||
└─ block → 编码器线程读速度 → 比例刹车
|
||||
```
|
||||
|
||||
## 6. 状态变量
|
||||
|
||||
Reference in New Issue
Block a user