接入真实世界:通信、心跳和安全边界
陈淮锐 · 项目时间:2026 年 7—8 月 · 网站收录 2026-09-17
GitHub · 0hello-bit/Robot_twin
本文回顾 2026 年 7—8 月的项目,包含后续整理与补充。实验数字和验证范围按原始项目记录陈述;文末仓库路径为记录索引。
电脑里的闭环接好了,接下来总得碰一碰真实小车。
但先别急着让它跑。主机掉线了怎么办,程序报错了怎么办,结束实验时能不能把它停下来?这些不确定,后面调什么参数都不踏实。所以这一步先查命令和状态怎么走,尤其是怎么收场。
主机与固件分别负责什么
当前路径以 STM32 固件为实时控制边界,通过 ESP-01S 和 TCP 与主机交换命令、状态和遥测:
主机
-> TCP / ESP-01S
-> STM32 运行时协议
-> 参数、启动或停止状态机
-> 电机 PWM 与传感器遥测
分工先定清楚:主机管实验会话和记录,STM32 管实时控制、看门狗、心跳租约、超时保护和停止。上面的程序可以出错,但底下不能因为等不到下一条命令,就一直按上一条跑。
先做一次小范围 Smoke
这里的 Smoke 可以理解成一次小范围的接入检查。目标暂时很朴素,把下面这串事情走完:
- 参数命令是否被正确解析;
- 每个参数更新是否得到匹配的 ACK/STATUS;
- START 是否进入 RUNNING;
- 主机是否持续发送心跳;
- 心跳中断或会话结束时,系统是否回到停止状态;
- 主机是否发送终态 STOP,并观察到 STOPPED;
- TCP、相机、读取线程和原始日志是否都能完成清理。
到这一步,就算全部通过,也只说明这次控制会话能正常开始、维持和结束。车跑得好不好,还没测。
2026-08-06:这条链路通了
在 2026-08-06 的一次授权抬轮 Smoke 中,报告记录了:
| 检查项 | 结果 | 范围 |
|---|---|---|
| 控制生命周期 | VERIFIED |
SHAKEDOWN_PASS,没有报告主流程、解析或清理错误 |
| 参数更新 | VERIFIED |
580、480、380、280、260 五个受限速度更新均返回相关 APPLIED ACK |
| 启动与停止 | VERIFIED |
同一会话观察到 START/RUNNING 和 STOP/STOPPED |
| 心跳与清理 | VERIFIED |
心跳、静默确认、socket 关闭和采集清理完成 |
| 物理性能 | INSUFFICIENT EVIDENCE |
抬轮实验没有测量地面轮速、位移、循迹效果或轨迹改善 |
这一轮总算把入口和出口走通了:参数有人收,启动有状态,最后也停下并清理了会话。车轮是抬起来的,所以地面上的表现先别算进去。
ACK 不能代替运动观测
ACK 确认的是协议层对命令或状态的响应。它不包含下面这些运动测量:
- 轮子实际转了多少转;
- 车体是否发生了位移;
- 电机负载变化后 PWM 是否仍然对应同样速度;
- 车辆是否沿着预期轨迹行驶;
- 新候选是否比 baseline 更好。
这里特别容易看错的是 m1..m4。遥测里有四个电机数值,看起来很像反馈,但它们仍然是命令值,没有经过编码器变成实测 RPM。就算以后用相机算出车体速度,那也是整车运动,不能顺手改名叫轮速。
通过了,然后又发现 IMU 有问题
后续抬轮记录出现了控制会话通过、IMU 输入无效的情况。SHAKEDOWN_PASS 只覆盖控制与清理流程,不包含所有传感器的有效性。
一次后续运行仍然返回了控制和清理层面的 SHAKEDOWN_PASS,但原始 26 字节 telemetry 中的 imu_init_status 为 0x21,对应的有效性信息也没有持续满足 IMU 输入要求。因此,这次运行不能被用作有效 IMU 姿态观测证据。
因此这次保留两个结果:控制会话通过,IMU 观测无效。后续相机、物理运动和算法效果也分别验收,避免总状态掩盖具体故障。
候选上车时复用控制生命周期
对真实机器人来说,安全状态机应该先于候选优化存在。当前路径保留了这些约束:
参数更新
-> ACK/STATUS 相关确认
-> START/RUNNING
-> 心跳租约维持
-> 超时、line loss 或异常时禁止运动
-> STOP/STOPPED
以后挑出了仿真候选,也得人工确认,再从这条受控路径上车。传输、协议、心跳、停止都已经有入口了,新实验继续复用。临时再写一个“发条命令试试”的客户端,很容易把前面刚做好的保护绕掉。
从抬轮检查到地面实验还缺什么
这次受控硬件 Smoke 连通了 STM32、ESP-01S、TCP、运行时协议、ACK、心跳、START/RUNNING、STOP/STOPPED 和清理流程。后续可以考虑沿用它采集真实数据、进行 baseline/candidate 对照;这是对复用方式的判断,尚无地面运动、轮速、位移、循迹、数字孪生校准或控制器改进的结果。
当时计划先在明确授权、固定赛道和完整观测条件下采集真实运动数据,再做匹配的实机比较。项目现已基本停止维护,此处保留原阶段路线。
相关记录
- 上一篇:V1-A 离线闭环
- 下一篇:相机与 AprilTag 观测
docs/agent-context/PROJECT_MEMORY.md:通信、安全和复用边界docs/agent-context/handoffs/2026-08-06-v1-b2-hardware-smoke-pass.md:Smoke 证据记录tools/shakedown_toolchain/ground_shakedown.py:受控硬件 Smoke 入口