1216 字
6 分钟
- 次浏览
A1 视觉机器人分层调试方法
读前导览

排查 A1 时,将板端推理、固件打包、Windows 联调和底盘控制分层检查,避免将所有问题归咎于模型。

正文
1216 字
阅读
6 分钟
结构
7 节

做嵌入式视觉机器人时,我一开始最容易犯的错是:看到现象不对,就想先改模型。

后来发现这条路通常不高效。视觉机器人是一条很长的链:相机输入、板端推理、OSD 显示、固件打包、串口命令、底盘控制、Windows 联调工具,每一层都可能让最后现象偏离预期。

所以在 A1 视觉机器人项目里,我后来先不急着调参,而是先确认问题到底落在哪一段。

四层系统#

这个项目可以拆成四层:

板端 AI Demo -> 固件打包层 -> Windows 联调层 -> STM32 底盘层

板端 AI Demo 负责图像处理、模型推理、OSD 叠加、A1_TEST 调试命令和 UART 控制。

固件打包层负责把最新应用打进最后可刷写镜像。这里踩过坑:应用单独编过,不代表刷进去的镜像已经更新,最后还是要看重新打包出来的固件。

Windows 联调层负责视频预览、拍照、COM 终端、A1_TEST 手动检查,以及直连或中继到底盘的调试工具。

STM32 底盘层负责实际运动控制和遥测反馈。

这四层如果混在一起排查,很容易把“刷入的镜像不是最新”“Windows 工具连错路径”“串口中继没通”误判成“模型不准”。

模型输出要先变成契约#

现在这条视觉主线已经不只是一个分类结果,还多了导航区域判断:

combined_logits[17] = semantic[5] + navgrid[12]

semantic 表示语义类别,navgrid 把画面拆成 left / center / right 三个区域,每个区域再判断 clear、near、mid、far 这类障碍状态。

这 17 个维度要在板端、调试接口、Windows 页面和底盘映射里保持同一套解释。否则模型本身没变,系统也可能因为解析错位而表现异常。

两条控制路径不能混#

调底盘时还有一个很容易混淆的点:直连 STM32 和经 A1 中继是两条不同路径。

PC 串口 -> STM32
PC COM -> A1_TEST -> A1 UART -> STM32

前者适合验证底盘协议和基础运动控制,后者适合验证板端程序、视觉结果和底盘动作之间的联动。

如果这两条路径不分开,排查会变得很混乱。比如直连能动,不代表 A1 中继能动;A1 中继能发命令,也不代表视觉推理的动作映射一定正确。

OSD 截图容易误导#

视觉项目里,OSD 是最容易被截图误导的部分。

屏幕上没有显示结果,可能有很多原因:

  • 应用根本没有运行。
  • 镜像不是最新版本。
  • OSD 初始化失败。
  • 图层资源没加载。
  • 贴图或刷新接口调用失败。
  • Windows 预览路径没有显示真实板端画面。

如果只看一张截图,很难区分这些情况。我会在 OSD 初始化、贴图加载、刷新调用附近打 stdout 或日志,再用板端命令和 Windows 工具对一下。

工程入口要写进文档#

这种项目的目录会很深,SDK、厂商代码、训练数据、构建输出和联调工具混在一起时,光靠记忆找入口很危险。

我后来更倾向于在 README 里直接写清楚:

  • 改板端行为先进哪一层。
  • 改镜像构建看哪个脚本。
  • 改 Windows 预览和串口工具看哪个目录。
  • 哪些目录是 vendor 或外部资产,不该随手改。
  • 最小验证命令是什么。

这不是形式主义。嵌入式项目最怕“改了一个看似相关的地方”,结果真实运行路径根本没经过那里。

先证明各层能跑通,再优化模型#

现在我会按这个顺序处理问题:

  1. 确认板端应用是否是最新构建。
  2. 确认最后镜像是否包含最新应用。
  3. 确认相机输入和推理接口有真实数据。
  4. 确认 17 维输出在各端的解析方式一致。
  5. 确认 Windows 工具看到的是同一条调试路径。
  6. 确认底盘控制路径和动作映射正确。
  7. 最后再回到模型效果本身。

这个顺序不一定最快,但它能减少误判。

先把各层拆清楚#

嵌入式视觉机器人项目麻烦在多层之间很容易互相背锅。

把系统拆成板端推理、固件打包、Windows 联调、底盘控制四层,再把 17 维输出的含义写清楚,很多问题就能定位到具体环节,而不是反复猜模型。

这也是我现在更愿意采用的整理方式:先把每层的职责和范围讲清楚,再决定该优化哪一层。

A1 视觉机器人分层调试方法
https://blog.sunmmyapi.xyz/posts/a1-vision-robot-layered-debugging/
作者
Sun
发布于
2026-05-29
许可协议
CC BY-NC-SA 4.0

继续读

相关内容