跳转到主要内容
机器人 Physical AI FORTE MuJoCo 工程

与 Codex Astra 打造机械臂:我们的机器人开发实践

Akash Verma - VoicePing
与 Codex Astra 打造机械臂。浅蓝色蓝图背景上,滑动底座上的 FORTE 式机械臂位于开门的打印机和显示数字孪生的笔记本电脑旁。
打印机操作概念:开关门、进入工作空间并返回。实体操作仍有待验证。
本文内容

3D 打印机可以在无人守候的情况下打印零件,但打开机箱门并完成下一步实体操作,仍然需要人参与。我们正在改造 FORTE 这一开放式机械臂设计,研究如何填补这段空白,并使用 Codex Astra 辅助开发机械结构、仿真和检查工具。

第一个目标是让机械臂能够进入打印机内部。长期来看,我们还想探索与服务器等其他设备的实体交互。先从一项完整、可测量的任务入手,更便于判断进展。

有用的机械臂必须完成整项任务

到达打印机内部的某个点,只是操作打印机的一部分。机械臂还必须开关门、避开机箱、退出,并让设备做好下一步准备。有利于某个动作的底座位置,可能会妨碍另一个动作。

我们的原型由六关节机械臂、夹爪和实验性滑动底座组成。目前已调整 CAD、模拟进入打印机的动作序列,并打印了首批零件。组装完毕、通电后实际操作打印机的机械臂,仍是下一阶段的目标。 下文的实验用于判断哪些方案值得制造、接下来需要测量什么。

商用机械臂:Universal Robots、Franka 和 UFACTORY

商用平台展示了不同的物体操作思路。OpenArm 则提供了开放硬件选项,也是我们讨论自制还是购买时的参考。

Universal Robots 提供的 e-Series 机械臂 UR7e-920 产品渲染图。

整合完整任务

Universal Robots e-Series

紧凑型生产机械臂,配备工具 I/O、力传感及丰富的兼容部件生态。

研究启示: 除机械臂外,夹爪、夹具与机器接口同样重要。

图片:Universal Robots
制造商图片中,两台 Franka Research 3 机械臂演示灵巧操作。

理解接触

Franka Research 3

七个带扭矩传感的关节,以及用于底层控制和测量的1 kHz 接口。

研究启示: 接触研究需要可观测的力与精确控制接口。

图片:Franka Robotics
UFACTORY 的 xArm 7 示意图,展示七个关节及活动范围。

使用软件接口

UFACTORY xArm 7

七轴机械臂,提供 Python/C++ SDK、ROS/ROS 2 软件包及兼容夹爪和直线轴配件。

研究启示: 确认预定实验实际需要哪些接口。

图片:UFACTORY
WowRobo 的 OpenArm 2 双臂平台,两条机械臂安装在中央支架上。

基于开放硬件构建

OpenArm 2

可通过制造合作伙伴购买组装成品的开放式双臂平台,配置与支持因供应商而异。

研究启示: 区分实验灵活性与装配、适用性验证所需的工作。

图片:WowRobo

制造商图片及规格核查于 2026 年 9 月 24 日。研究启示属于我们的分析,并非实际使用后的对比结果。

购买平台可以减少机械集成工作。自制 FORTE 让我们能够调整线缆路径、安装结构和几何形状,同时也需要自行测定这些结构的行为特性。这个取舍适合本次实验,但不能证明自制机械臂更适合生产应用。

我们在机器人市场中的定位

成熟的机器人企业已经提供性能出色的机械臂、控制器和自动化平台。我们希望在应用层做出贡献:把机器人能力变成日常运营中实用的工具,从 3D 打印机操作开始,再拓展到与其他设备的交互。

我们追求的是易于适配、兼顾成本的自动化。通过结合开放硬件、AI 辅助工程设计和面向具体任务的软件,让机器人更容易适应周围的工作。FORTE 是一个早期尝试,帮助我们理解如何让这类系统在实际应用中有用、易维护且经济可行。

系统如何连接

计划中的硬件链路是 主机 → 微控制器和电机驱动器 → 机械臂和夹爪。滑动底座增加了第二个工作位置。对装配配合、关节响应和接触的实测,将用于校准模型。

三个概念层:软件规划轨迹,微控制器和电机驱动器发出指令,关节传动机构与夹爪的分解图展示机械部件。
软件定义运动,电子系统驱动执行器,传动机构和夹爪将运动转化为实体交互。这是一张部件构成概念图。

目前,运动在 MuJoCo 中运行:控制器发出执行器指令,物理引擎计算接触。Codex Astra 在该控制回路之外辅助开发。明确区分这些角色,才能将失败的动作追溯到几何结构、控制器或模型假设。

我们如何开展开发

开发分为七个步骤;当试验改变了我们的认识,就返回设计环节。

定义目标、选择硬件、准备工具、与 Codex Astra 共同设计、仿真测试、改进设计、打印零件,共七步。测试结果反馈到设计中。
Codex Astra 在工程迭代的各个环节辅助我们提出并检查改动。

定义目标

第一套动作是 开门、伸入、退出、关门,目标周期为 60 秒。竖立的机械臂必须通过接触推动无动力的门,同时避开机箱。空夹爪伸入测试检验的是可达性;取出打印件需要另做物体操作试验。

选择硬件

FORTE 论文 和公开代码仓库 提供了可改造的打印结构、线缆传动和同步带。我们早期做出的一个决定,是在批准 CAD 设计前确认准确的电机型号:外形规格相同,不代表轴和机身长度也相同。

计划中的电气系统将主机笔记本电脑连接到 Pico 2、电机驱动器和夹爪舵机。将信号与电源路径分开,更便于检查每个选定部件的作用。

FORTE 电气概览:笔记本电脑经 USB 线缆连接 Pico 2 和信号接口,控制步进电机驱动器及夹爪舵机。独立电源路径连接带保险丝的 24 V 电源、由停止信号控制的继电器、散热风扇和舵机用 6 V 稳压器。
计划中电气系统的功能概览。打开原尺寸图,可查看部件标签及供电路径。

计划中的现金预算也考虑了已有设备。OpenArm 的配置与交付成熟度不同,但有助于理解购买方案的成本规模。

自制 · 2026年9月11日计划

我们的 FORTE 原型

¥145,338

计划现金支出,已取整

单臂;复用现有工作间设备。

未计入工程人工及返工费用。

购买 · 2026年9月24日核查

OpenArm 2

US$6,500

起售价 · 按计划汇率约104万日元

双臂产品,能力与配置不同。

需获取含配置、运费和税费的日本交付报价。

¥113,126设备 + 工具
¥19,000运输与进口预留费用
¥13,213预备费
按原计划每美元160日元估算现金规模,并非实时汇率。FORTE 的准确计划总额为145,338.16日元。显示的日元金额已取整;两个平台的配置和成熟度不同。

FORTE 的估算复用现有打印机、笔记本电脑和工作间设备,未计入工程人工及返工费用。OpenArm 2 是双臂产品。参考其起售价与供应商选项 做采购决定时,还需要包含日本交付费用的报价。

查看机械臂 CAD 和选定的电机 (2)
展示机械臂底座、肩部、前臂、腕部与夹爪的零件图。
机械臂的主要机械组件。各接口必须匹配选定的电机、轴承与驱动部件。打开图纸可按原始分辨率检查。

4 × NEMA17

5 mm 轴;其中一个为双出轴电机。

2 × NEMA23

轴径不同:8 mm 与6.35 mm。

1个夹爪舵机

DS3225,270°型号。

已购电机轴孔 · 安装 · 间隙
我们采用的电机配置。仅凭外形规格,无法确定轴、安装和间隙要求。

配置包括四个 NEMA17 步进电机、两个 NEMA23 步进电机和一个夹爪舵机。轴尺寸决定安装结构与带轮配合;硬件接口计划使用 Pico 2 和电机驱动器。

准备工具

本地环境运行在配备 128 GiB 内存的 Apple M5 Max 上,使用 Python 3.11。MuJoCo 在 CPU 上进行物理计算,PyTorch 可使用 Apple 的 MPS 后端训练。学习放置方块与脚本控制打印机访问这两条实验路径,共享同一台机器的独占运行配额。

了解仿真架构与实验流程 (1)
本地 macOS 环境CPU 物理计算 · PyTorch 训练 · 原生查看器
任务与源码快照配置 · 不可变代码 · 源码哈希
仿真独占运行配额托管任务、研究启动器与查看器共享

方块放置学习

  1. Prefect 管理环境Gymnasium ↔ MuJoCo · 脚本示范
  2. HDF5 → PyTorch轨迹 · 训练 · 保存策略
  3. 预留仿真试验策略 + 任务序列器 + 逆运动学
  4. MLflow + PostgreSQL运行历史 · 指标 · 产物引用

打印机访问研究

  1. 有执行限制的研究启动器源码快照 · 共享配额
  2. 接触控制器 ↔ MuJoCo执行器指令 · 无动力门接触
  3. 周期评估可达性 · 接触 · 间隙 · 耗时
  4. 研究输出文件结果 · 轨迹记录 · 回放记录
两条实验路径共享机器与执行限制。方块放置策略通过学习获得,打印机动作序列由脚本控制。Codex Astra 在物理循环之外辅助开发。

可复现的执行。 simctl 启动器保存源代码与任务配置的快照。Prefect 工作进程在运行前校验源代码哈希;仿真、训练和查看器共享独占运行配额,并限制内存、运行时间、数值计算线程数和产物大小。

学习路径。 Gymnasium 封装 MuJoCo 的重置、观测、动作和步进接口。脚本控制器将示范记录为包含时间戳和随机种子的 HDF5 轨迹。PyTorch 将 100 条示范按 80/20 划分,训练 16 → 128 → 128 → 4 的行为克隆网络。输入归一化只使用训练集的数据,检查点依据验证损失选择。显式任务序列器和数值逆运动学将策略输出转换成关节运动。

预留的执行试验用于独立于训练损失评估任务表现。以 PostgreSQL 记录跟踪数据的 MLflow,将参数和指标关联到数据集、检查点和回放。

打印机路径。 另一套有资源及时间限制的启动器运行脚本接触控制器,并输出研究结果和回放文件。它共享机器配额,但并非每次运行都会登记到 MLflow。执行器指令与 MuJoCo 接触计算使无动力的门运动;没有通过门电机或夹爪刚性连接来强制得到结果。

线缆弯曲、回程间隙和完整的自身碰撞,尚未纳入当前模型。FORTE 公开的 CAD 、固件 及仿真 是上游参考资料;我们集成后的实验环境仍未公开。

与 Codex Astra 共同设计

我们向 Codex Astra 提供具体的机械问题、已购硬件和验收检查项。在腕部设计中,一个重要决定是 同时检查两个带轮与线缆路径:单个零件看起来合理,组成相连的机构后仍可能失效。

从约束到可检查的设计

整体考虑相连的机构

检查零件

实际腕部带轮 CAD 几何及线缆固定件的近景。

线缆出口 + 固定点

成对检查

通过交叉线缆连接的腕部带轮与电机带轮成对机构的简化示意图。需同时考虑线缆出口、固定点与缠绕方向;这不是带尺寸的制造图。腕部带轮电机带轮

路径 + 缠绕方向

  1. 明确条件

    电机尺寸、线缆路径与约束。

  2. 用 Astra 起草

    CAD 改动及相应检查脚本。

  3. 验证

    工程师检查配合、载荷路径与操作空间。

以腕部为例,同时检查几何形状与相连机构。打开 CAD 图片可查看原始工程图。

Codex Astra 辅助起草 CAD 改动及检查脚本。工程师在接受改动前检查装配配合、载荷传递路径和工具操作空间。其价值在于缩短从提出改动到实际检查、测试之间的距离。

仿真测试

固定底座完成了十次开关门与伸入循环,每次耗时 58.18 个仿真秒,但只能进入假定打印区域内侧 20 mm。把底座移近后,内部可达范围扩大了,却破坏了完整的开关门流程。

固定底座 FORTE 机械臂伸入建模打印机的入口附近
固定底座

可操作门,伸入深度有限

测试目标:假定打印区域内侧20 mm。

沿直线导轨移向假定打印板中心的 FORTE 机械臂
移动底座

第二个工作位置

360 mm 行程让空夹爪到达假定的打印板中心。

不同配置下的实际仿真画面。两者都使用空夹爪,均未演示取出打印件。

这一取舍促使我们采用 行程 360 mm 的滑动底座,分别在两个位置操作门和进入内部。机械臂先折叠再向内移动,到达假定的打印板中心后,按相反顺序返回。

以 12 倍速播放的完整仿真序列,视频长 16 秒,对应 190.02 个仿真秒。空夹爪到达假定的打印板中心;并未演示移除打印件。

改进设计

滑动底座使机械臂能够伸得更深,但完整周期耗时 190.02 个仿真秒,超过了 60 秒目标。

移动底座周期

190.02 s仿真周期耗时

60秒目标

到达中心 · 未满足时间要求

≈61 s折叠 / 展开
≈48 s开门 / 关门
≈46 s进入 / 退出
滑动底座扩大了伸入深度,但完整序列超过60秒目标。各阶段的近似耗时有助于确定下一轮改进重点。

折叠、开关门和接近路径占据了大部分周期。单纯提高导轨速度,无法解决大部分延迟。采样得到的约 0.45 mm 间隙也需要结合实际公差检查,而且仿真导轨使用的是最新 CAD 之前的设计。将动作转移到硬件前,必须解决这两点。

打印零件

我们从转台开始打印,并在 Bambu Studio 中准备其余零件。凹刻编号有助于将外观相似的打印件与装配文档对应起来。

在 Bambu Studio 中排列的带编号机械臂零件
打印准备

识别每个零件

零件编号将各部件与装配文档对应起来。

CAD 零件上凹刻编号的近景
零件识别

把编号刻进零件

离开打印板后,凹刻文字仍保留在零件上。

凹刻编号有助于在装配过程中识别零件。切片软件画面展示了融入几何结构的文字。

剩余批次包含 35 种设计、37 个零件。按选定的 PLA 配置,预计用料 1.60 kg、打印时间 80 小时 49 分钟。尽早检查轴承座配合和紧固件操作空间,可以避免因小小的配合误差而再次进行长时间打印。

通过仿真研究不同条件

仿真让我们在改变硬件前,逐项测试假设。针对进入打印机的任务,后续实验计划改变三类条件:

  • 几何: 改变底座位置、门的开启幅度和目标位置,找出可达性或间隙不足的边界。
  • 接触: 改变门的阻力与摩擦,测试夹爪是否能维持有效接触。
  • 位置不确定性: 扰动估计的目标位置和关节位置,找出依赖过度精确状态信息的动作。

我们会先固定控制器,记录完成情况、意外接触和耗时,并预留未见过的条件组合进行评估。随后用实测数据确定更符合实际的变化范围。

已完成的学习实验范围更窄。通过从示范中学习动作的行为克隆,一个边长 30 mm、质量 20 g 的方块在 100 次预留试验中均成功放置,平均误差为 4.45 mm。起始位置在水平方向变化 ±8 mm。这里使用的是精确的仿真器状态及较早的机械臂模型,并未使用摄像头或学习型打印机操作策略。

以 2 倍速播放完整的学习型放置过程,视频长 14 秒:将方块放入 10 mm 容差范围内,并保持稳定两个仿真秒。更广泛的接触及感知变化仍有待后续实验。

方块结果验证了在这些条件下,一条小规模学习与评估流程能够运行。它尚未证明系统对门接触或感知误差具有鲁棒性。扩展测试才能判断哪些失败需要修改机械结构、调整控制器或增加示范。

我们希望研究的问题

从仿真走向实体测试

下一个里程碑是组装完成,并通电测试各个独立动作。尝试完整的访问周期前,需要测量关节响应、线缆张力、打印机几何结构和门的阻力。

尚待回答的工程问题

哪些测量能让仿真器更准确地预测实体行为? 我们计划让同一套打印机访问控制器分别在初始仿真器和校准后的模型中运行,再将两者的预测与预留的实体试验对照。保持任务与控制器不变,有助于分离校准本身的价值。

我们会比较周期完成情况、意外接触及耗时的预测与观测结果。随后,在相同调参预算下分别用两个模型开发控制器,并在相同条件下比较实机完成情况和人工干预。这样能区分预测改善与控制改善,也能检验更快的动作是否仍然可靠。

新同事可以参与的工作

机构设计、接触控制、仿真校准和感知都有具体工作需要推进。我们期待能将改动方案落实为可复现实验与可测量结果的同事。了解 VoicePing 工程岗位 。

分享这篇文章

一起制造、测试与学习

了解 VoicePing 的工程岗位,以及团队正在研究的问题。

视频
0:00 0:00