从一辆 STM32 小车开始:我如何构建 Robot Twin AI 的最小验证闭环
陈淮锐 · 项目时间:2026 年 7—8 月 · 网站收录 2026-09-17
GitHub · 0hello-bit/Robot_twin
本文回顾 2026 年 7—8 月的项目,包含后续整理与补充。实验数字和验证范围按原始项目记录陈述;文末仓库路径为记录索引。
2026 年 9 月 18 日状态更新:Robot Twin AI 目前基本停止维护,本文保留原阶段复盘。后续硬件投入转向 Atom-S,先推进小智对话与鲸鱼娘陪伴交互,详见新项目记录。
这件事的起点,是我手里那辆 STM32 小车。
既然 AI 已经能帮我写代码,那能不能再往前走一点:看看机器人哪里出了问题,比较几个方案,再告诉我哪个值得上车试?每次都直接改参数、跑一遍,变量太多,很难说清到底改对了什么。
听起来可以叫“数字孪生”。但往下做,先冒出来的都是具体麻烦:传感器有噪声,通信一批一批地到,时间戳记的未必是我想要的时刻。相机更直接,视频录下来了,标签却没认出几帧。前面的数据都没弄明白,后面画面再漂亮,也不知道在模拟什么。
所以先围着这辆小车做。控制器、传感器、通信、电机,它一样不少,规模又还在我能拆开查的范围里。真要研究仿真和现实差在哪儿,这些已经够折腾了。
从候选方案到实车验证
长期还是想让 AI 参与机器人研发。完整的设想大概长这样,不过当前只在验证其中很小的一段:
真实行为
-> 问题或假设
-> 算法、参数或硬件候选
-> 数字孪生筛选
-> 人工确认
-> 受控实机验证
-> 证据判断
-> 接受或回滚
-> 下一轮研究
这里最容易想多的地方,是以为有了仿真就能省掉实车。我的打算要小一些:在模型管得着的范围里先筛一遍,明显不合适的别上车,剩下的再用真实实验确认。模型到底管得着多大范围,本身也要测。
因此,每次实验都要把通过的条件和观测结果放在一起:软件路径连通、控制协议响应、车辆运动符合预期,需要各自的记录。
按硬件接口、数据和模型划分职责
目前我把系统理解成几层:
硬件
-> Robot Adapter
-> 数据、时间与状态
-> Robot Twin Core
-> 实验与评估
-> AI Engineer
-> 数据集与后续训练
其中,硬件层负责真实的传感器和执行器;适配层负责把 STM32、ESP-01S 和 TCP 的具体接口接入系统;数据、时间与状态层负责回答“这条数据是什么、什么时候产生、是否有效”;Robot Twin Core 才负责模型、状态估计和预测。
后面的 AI Engineer、经验数据集和自动研发循环属于长期方向。当前工作主要集中在前几层,以及它们之间的证据边界上。
各层已经验证的范围
| 层次 | 当前判断 | 已经能说明什么 | 还不能说明什么 |
|---|---|---|---|
| V1-A 离线闭环 | VERIFIED |
控制器、车辆模型、虚拟传感器、预测和候选排序已经连成可重复的软件路径 | 不能说明模型已经完成真实标定 |
| 真实控制链路 | VERIFIED,范围受限 |
一次受控硬件 Smoke 完成了参数下发、ACK、心跳、启动、停止和清理生命周期 | 不能说明小车在地面上的轮速、位移或循迹性能 |
| 相机与 AprilTag 观测 | INSUFFICIENT EVIDENCE |
已经可以记录视频、分析失败帧,并在部分运行中通过时间对齐门 | 不能说明已经获得连续、准确的真实位姿 |
| ClockSync 与时间语义 | VERIFIED,仅限软件契约 |
已经识别并修正了部分时间戳边界问题,记录也更加保守 | 不能说明物理时钟已经绝对同步 |
| AI 自主改进 | PLANNED |
已经定义了候选筛选和人工确认的方向 | 没有经过真实验证的 AI 自动算法或硬件改进 |
表里的 VERIFIED 得连着后面的范围一起看。离线代码跑通,是电脑里的事;小车回了 ACK,是协议层的事。轮子有没有按预期转,还得拿别的观测来回答。
第一段:先在电脑里跑一遍
如果每次改一个 PID 参数都直接上车,我很难判断一次结果究竟来自参数本身、赛道状态、相机观测、通信延迟,还是车体和电机的差异。真实实验当然不可替代,但真实实验应该用来回答更具体的问题,而不是承担所有排错工作。
那就先把条件固定在电脑里:给定初始状态和赛道,控制器出动作,车辆模型往前算,虚拟传感器再给观测,最后比较不同候选。这是第一版探索性闭环,先确认这条路真的连起来了。
这一阶段的价值不是把模型伪装成真实车辆,而是先让候选方案比较具备确定的输入、输出和失败规则。
第二段:接上小车,事情就没那么简单了
接上真实小车后,问题换了个样子。命令能发,状态能回,但我要怎么知道车实际做了什么?
通信层可以确认一条命令有没有被解析、一个参数有没有返回 ACK、一个运行租约有没有超时。但如果没有轮速编码器、可靠的相机位姿和正确的时间对齐,就不能从这些回包推导出“车跑得更快”或“循迹更稳定”。
相机记录也有同样的问题。视频保存下来以后,要继续检查 AprilTag 的检测结果和姿态连续性,才能判断这份轨迹是否适合标定。
这组文章会记录什么
接下来的文章按项目推进顺序展开:
- 先让数字孪生在电脑里跑起来:V1-A 离线闭环
- 接入真实世界:通信、心跳和安全边界
- 相机能录下来,不代表机器人被正确看见
- 一次 ClockSync 失败如何暴露时间戳语义
- 把失败也写进系统:证据驱动的 Robot Twin 迭代
这些文章分别对应离线比较、受控接入、视觉观测和时间分析,保留各阶段的结果与未解决项。
已有路径与尚缺的实车数据
目前可重复的是离线候选筛选,以及带通信和安全生命周期的硬件接入。把这套结构用于真实标定、候选比较和经验积累,仍属于合理推测(INFERENCE);模型在实车上是否足够准确、AI 能否改善机器人,都缺少对应的验证。
当时计划在固定赛道上补齐相机和车辆标定,用独立 holdout 检查预测,再做时间边界明确的 baseline/candidate 实机对照。连续的具身智能闭环尚未形成。
当时准备怎么继续
当时排下来的顺序是:固定实验条件,保留 baseline,补相机与车辆标定,再用没参与调参的真实数据检查预测。过了这些步骤,才轮到挑候选、人工确认、上车对照。现在项目已基本停止维护,这里保留的是那一阶段的路线,后续投入方向见文首更新。
相关记录
CONTEXT.md:项目使命、分层路线和长期边界PROJECT_STATE.md:当前证据分类docs/PROJECT_PLAN.md:当前研发路线docs/agent-context/CURRENT_STATUS.md:详细历史实验状态