从英伟达 GPU 到 RK3566 实机:25 厘米强化学习机器人部署手记
一台 25 cm 高、15 个电机、不到 800 g 的小机器人,
训练在英伟达 GPU 集群上花 1~2 小时收敛,
实机却只靠一块 Rockchip RK3566 开发板,50 Hz · 20 ms 一个 tick 把 15 个舵机稳住。
本文把这条"训练-部署"链路完整拆开,看 RK3566 凭什么能扛下这件事。

一、缘起:一只会走路的小鸭子
2026 年 8 月 27 日,Hugging Face 旗下 Pollen Robotics 团队发布了一款名为 Microduck 的桌面级双足机器人。几个数字很关键:

| 指标 | 数值 |
|---|---|
| 整机高度 | 25 cm |
| 整机宽度 | 14 cm |
| 整机重量 | < 800 g |
| 自由度(电机数) | 15 |
| 传感器 | 头部摄像头 + 两套 IMU + 8×8 ToF 深度 |
| 预订价 | 399 美元 |
| 首批交付 | 2026 年圣诞节前 |
| 机身配色 | 4 色(Sky / Graphite / Cream / Lavender) |

它走路、坐下、踢球、穿上轮子滑行,也会摔倒------但两条腿会重新折回来,15 个电机依次收到新位置,它就又站起来了。这个"摔倒-站起"的循环就是 sim-to-real 强化学习的成果,训练在英伟达 GPU 上完成,实机推理则跑在一块巴掌大的 RK3566 核心板上。
训练靠英伟达,实机靠 RK3566。
一台数据中心规模算力训出的策略,被压缩到一颗四核 A55 SoC 上 20 ms 一拍地执行。
下面把这条链路拆成"训练端"和"部署端"两端,逐段看 RK3566 是怎么接住这个活的。
二、双端架构总览
| 维度 | 训练端(Training) | 部署端(Deployment) |
|---|---|---|
| 硬件 | NVIDIA CUDA GPU / DGX Spark / Jetson / HF Jobs | ROC-RK3566-PC 开发板(RK3566 SoC) |
| 算力形态 | 多卡并行,4096 个仿真环境 | 4× Cortex-A55 @1.8 GHz + 1 TOPS NPU |
| 软件栈 | mjlab / MuJoCo Warp / PPO | ONNX Runtime 1.20.x + 4 个守护进程 |
| 输入 | 机器人 URDF + 任务 + 物理参数 | IMU / ToF / Camera / 手柄命令 |
| 输出 | 训练好的策略网络 | 15 路舵机的目标位置 |
| 时延要求 | 1~2 小时出策略 | 50 Hz / 20 ms 一个 tick |

中间的桥是 ONNX:训练框架导出的策略文件不绑定任何训练框架,部署端用 ONNX Runtime 直接加载,跨端零摩擦。这是现代 sim-to-real 工程的标准做法。
三、训练端:英伟达 GPU + 4096 环境
训练的核心是让一只"虚拟小鸭"在仿真器里反复走路。仓库用的是 mjlab + MuJoCo Warp + PPO 这一套现代组合。

| 阶段 | 工具 | 关键点 |
|---|---|---|
| ① 并行仿真 | mjlab / MuJoCo Warp | 单条命令拉起 4096 个 MuJoCo 鸭子同步跑 |
| ② 强化学习 | PPO | 策略网络 + 价值网络联合训练 |
| ③ 鲁棒性筛选 | 物理扰动 | 摩擦、关节间隙、机械误差都在训练中变化 |
| ④ 导出 | ONNX | 通用推理格式,与训练框架解耦 |
参考训练时间:1~2 小时(机器和超参不同,时间也会不同)。这个时长对一台四卡 GPU 来说非常友好------意味着 sim-to-real 已经不是"实验室独占"的能力,工程师自己就能跑。
ARM 训练说明:仓库里专门为 ARM 机器留了一份说明,给出 NVIDIA DGX Spark、GB10、Jetson 等选项。本地没合适的 GPU 还能把训练任务交给 Hugging Face Jobs。
四、部署端 SoC:Rockchip RK3566
策略落到实机,要看 SoC。Microduck 实机选用的正是 Rockchip RK3566,这颗芯片是 Rockchip 面向边缘 AI / 工业控制 / 轻量多媒领域的经典中端 SoC。
4.1 芯片核心参数
| 项目 | 参数 |
|---|---|
| 制程 | 22 nm 先进工艺,低功耗高性能 |
| CPU | 四核 64 位 ARM Cortex-A55,主频最高 1.8 GHz |
| GPU | ARM Mali-G52 2EE,支持 OpenGL ES 1.1/2.0/3.2、OpenCL 2.0、Vulkan 1.1,内嵌 2D 加速硬件 |
| NPU | RKNN NPU,1 TOPS @ INT8,支持 Caffe / TensorFlow / TFLite / ONNX / PyTorch / Keras / Darknet 一键转换 |
| 视频解码 | 4K@60fps H.265/H.264/VP9;1080P@60fps VC-1/VP8/MPEG-1/2/4 |
| 视频编码 | 1080P@100fps H.265;1080P@60fps H.264 |
| ISP | 8M ISP |
| 内存 | 1/2/4/8 GB LPDDR4 / LPDDR4X,32 bit 位宽 |
| 存储 | 8/32/64 GB eMMC(16/128 GB 可选) |
| 启动 | TF 卡 / U 盘 / eMMC 多启动方式 |
| 系统支持 | Android、Ubuntu、Buildroot+QT、OpenWRT、Debian |
1 TOPS NPU 的关键意义:RK3566 提供了独立的 RKNN NPU 加速器,对 ONNX 模型有原生转换路径(rknn-toolkit)。Microduck 当前的实机部署走的是 ONNX Runtime + CPU 推理(控制循环每 tick 20 ms,对 CPU 已经足够),但芯片本身具备将同一份 ONNX 策略下沉到 NPU 的能力------这是后续降低功耗、释放 CPU 给其它进程的关键路径。
4.2 板卡实测:ROC-RK3566-PC
实机选用的核心板是 ROC-RK3566-PC(Firefly 出品),把 RK3566 配齐电源、内存、eMMC、Wi-Fi/蓝牙、有线网和丰富外设接口。

板卡背面中央的方形芯片就是 Rockchip RK3566 主体,旁侧是 LPDDR4 内存颗粒和 RK809-5 电源管理芯片。丝印清晰可见 "ROC-13-PC / ROC-RK3566-PC / V1.2 / 2022.01.22"。

板卡正面布局紧凑:USB 3.0、USB 2.0、Type-C、HDMI 2.0、MIPI-DSI、MIPI-CSI、TF 卡槽、M.2 PCIe 2.1(2242 NVMe SSD)、30 Pin 2.0 mm 双排扩展针、3.5 mm 音频、千兆 RJ45、AP6256 Wi-Fi 6/BT 5.0 模组一应俱全。
| 板卡特性 | 规格 |
|---|---|
| SoC | Rockchip RK3566 |
| 内存配置(板载) | 1 GB / 2 GB / 4 GB / 8 GB LPDDR4/LPDDR4X 可选 |
| 存储(板载 eMMC) | 8 / 32 / 64 GB(16 / 128 GB 可选) |
| 扩展存储 | 1× M.2 PCIe 2.1 NVMe SSD(2242 规格)+ 1× TF 卡 |
| 以太网 | 1× 1000 Mbps RJ45 |
| 无线 | 2.4 / 5 GHz 双频 Wi-Fi 802.11 a/b/g/n/ac + 蓝牙 5.0 |
| 显示输出 | 1× HDMI 2.0(4K@60Hz)+ 1× MIPI-DSI(单通道 1920×1080@60fps) |
| 摄像头输入 | 1× MIPI-CSI DPHY(30P-0.5 mm,1×4 lanes 或 2×2 lanes,2.5 Gbps/lane) |
| USB | 1× USB 3.0(Max 1000 mA)+ 1× USB 2.0(Max 500 mA)+ 1× Type-C(USB 3.0 OTG / DC 5 V/2 A) |
| 音频 | HDMI 音频输出 + 3.5 mm 耳机口(CTIA 美标,支持 MIC 录音)+ 1.5 W 8Ω / 2.5 W 4Ω 喇叭输出 + MIC 输入 |
| 扩展排针 | 1× 30 Pin 2.0 mm 双排针,引出 I²C / SPI / UART / ADC / PWM / GPIO / I²S 等 |
| 电源 | 5 V / 2 A,Type-C 供电(±5%) |
| 典型功耗 | 休眠 0.03 W · 典型 2.5 W · 最大 5.25 W |
| 板卡尺寸 | 93.46 mm × 60.14 mm |
| 工作温度 | -20 ℃ ~ +60 ℃(存储 -20 ℃ ~ +70 ℃) |
功耗对比:整板最大 5.25 W,而一只 15 电机的双足机器人单次充电续航往往受电池容量限制。RK3566 这颗 22 nm A55 的功耗曲线非常适合 7.4 V 锂电 + 5 V 降压直供,是桌面级双足机器人的"甜点功耗"区间。
4.3 扩展排针:机器人控制接口全集
30 Pin 2.0 mm 扩展针是机器人板最常用的资源,下表摘出与控制直接相关的引脚(按规格书"接口定义"整理):
| 引脚 | 定义 | 电平 | 机器人典型用途 |
|---|---|---|---|
| 6 | 3.3 V Output (Max 500 mA) | 3.3 V | IMU / ToF 模组供电 |
| 11 | 5.0 V Output (Max 500 mA) | 5.0 V | 舵机控制板供电 |
| 13 / 14 | I²C1_SCL / I²C1_SDA(上拉 2.2 kΩ) | 3.3 V | 多个 IMU、ToF 模组挂同一总线 |
| 15~18 | SPI1_MISO / MOSI / CS0 / CLK | 3.3 V | 高带宽传感器扩展(备用) |
| 19~22 | SPI3 / PWM12~15 / UART9 | 3.3 V | 多路 PWM 直驱舵机 / 备用串口 |
| 23 | ADC3 Input | 1.8 V | 电池电压采样 |
| 24 | GPIO0_D5_D | 1.8 V | 通用 IO |
| 25 / 27 | I²C3_SDA / I²C3_SCL(上拉 2.2 kΩ) | 3.3 V | 第二路 I²C 总线,避免与摄像头冲突 |
| 26 / 28 | DEBUG_RX / DEBUG_TX | 3.3 V | 调试串口 |
M.2 PCIe 2.1 接口可接 2242 NVMe SSD(用于保存训练数据集 / 多策略快照),TF 卡槽做系统盘与系统备份,这对"可回滚"的机器人系统非常关键。
五、部署端软件栈:4 进程协作
RK3566 这颗 A55 不像桌面 CPU 有几十核,但它有 4 个进程各司其职:

| 进程 | 职责 | 输入 | 输出 |
|---|---|---|---|
robotd |
50 Hz 控制循环,调度 15 个舵机 | IMU / ToF / 策略推理结果 | 15 路 PWM 目标位置 |
btd |
蓝牙手柄命令接收 | BT 5.0 手柄按键 | 指令写入共享内存 |
mediad |
摄像头画面推流 | MIPI-CSI 摄像头 | WebRTC 视频流(供远程观测) |
tofd |
8×8 ToF 深度读取 | I²C 上的 ToF 模组 | 深度矩阵写入共享内存 |
进程解耦的好处:相机推流和舵机控制互不阻塞;手柄命令任何时候都能进;ToF 深度独立刷新,策略层需要时再读。
游戏手柄按下一次,命令从同一套接口进去;板子再把 ONNX 策略送进控制循环------50.0 Hz 雷打不动。
六、50 Hz 控制循环时序

每 20 ms 一个 tick 跑 4 件事:
- read:读 IMU 当前姿态、ToF 8×8 深度、目标指令;
- infer:ONNX Runtime 跑一次策略前向;
- write:把 15 个舵机的目标位置写进总线;
- wait:等下一个 20 ms。
实测数据非常漂亮:
| 指标 | 数值 |
|---|---|
| 控制频率 | 50.0 Hz(每 tick 20 ms) |
| 统计窗口 | 15022 个 tick |
| 失帧 tick | 3 个 |
| 失帧率 | ≈ 0.02 % |
15022 个 tick 只漏 3 个,是非常稳的状态------这说明 RK3566 在 CPU 推理路径下完全 hold 得住 20 ms 的硬实时要求。
七、sim-to-real 踩坑实录
工程不是童话,部署也踩过坑。最有教育意义的一次:
板上的 ONNX Runtime 是 1.20.1 ,策略要求 1.23.x 或更高。控制线程没进入正常循环------鸭子"没站起来"。
团队的处理路径:
| 步骤 | 操作 | 备注 |
|---|---|---|
| 1 | 补异常处理 | 不让一个 tick 失败带崩整轮控制 |
| 2 | 改升级脚本 | ONNX Runtime 升到 1.23.x+ |
| 3 | 重新部署 | 在同一块板上完成升级 |
| 4 | 健康检查报告正确 | 周期性上报策略版本、ONNX Runtime 版本、控制频率 |
| 5 | 自动回滚 | 健康检查异常时自动回滚到上一个稳定策略 |
关键经验 :sim-to-real 的"最后一公里"不是模型问题,是运行时版本对齐问题。把 ONNX Runtime、策略、机器人固件三者的版本绑定管理,是工程化的硬底线。
附带的供应链信息 :板卡厂商的 RK3566 核心板供货承诺至少延续到 2030 年 9 月。这意味着机器人交付后还有 4 年以上的备件 + 升级窗口,对生命周期以年计的双足机器人产品是重要参考。
八、总结:RK3566 在边缘机器人上的可行域
把上面所有内容压缩成一张总表:

| 维度 | RK3566 能 / 不能 | 备注 |
|---|---|---|
| 跑 1~2 Hz 重型策略 | ✅ 充裕 | A55 4 核 @1.8 GHz 足够 50 Hz |
| 多模态融合(IMU+ToF+Camera) | ✅ 充裕 | I²C / SPI / MIPI-CSI / USB 全在 |
| 多进程协作 | ✅ 充裕 | Linux 标准进程模型 |
| 板上训练 / 在线学习 | ❌ 不建议 | 数据中心级算力更适合 |
| 1 TOPS NPU 加速 ONNX | ✅ 可用 | rknn-toolkit 一键转换 |
| 长生命周期供货 | ✅ 至 2030+ | 板卡厂商承诺 |
| 整机功耗 | ✅ < 5.5 W | 电池直供友好 |
一句话:RK3566 不是"高性能选手",但它是一颗把"够用 + 低功耗 + 长供货 + 丰富外设 + Linux 生态"打包到极致的边缘 SoC。对桌面级双足机器人这种"小而美、长生命周期、需多模态感知"的形态,几乎是量身定做。
附:参考与软硬件清单
| 类型 | 内容 |
|---|---|
| 训练框架 | mjlab / MuJoCo Warp / PPO |
| 推理框架 | ONNX Runtime 1.23.x+ |
| 机器人本体 | 25 cm 双足,15 电机,IMU×2 + 8×8 ToF + 摄像头 |
| 核心板 | ROC-RK3566-PC(Firefly 出品,93.46 × 60.14 mm) |
| SoC | Rockchip RK3566,四核 A55 @1.8 GHz,1 TOPS NPU |
| 操作系统 | Debian / Ubuntu(官方支持) |
| 许可证 | 运行端、模拟环境、强化学习脚本、sim-to-real 流程全部 Apache 2.0 |
如果这篇文章对你了解 sim-to-real 部署链路有帮助,欢迎点赞、收藏、评论区交流。后续会继续更新 RK3566 NPU 加速 ONNX 策略的实战记录。