[控场AI]
· 3 分钟阅读· 1,796 字

参数化机器人身体:改三行代码让鸭子变火烈鸟(开源)

参数化机器人身体:改三行代码让鸭子变火烈鸟(开源)

用Python参数化代码替代固定STL模型,改三个数值即可将机器人从鸭子变成火烈鸟,并在MuJoCo中重新训练配套控制策略。

开源项目 Open Duck Mini v2 探索了一种「身体即代码」的机器人设计范式:用 CadQuery(Python参数化CAD库)将所有3D打印件重写为程序,使结构件的舵机安装位、螺丝孔等几何约束由代码逻辑保证。只需修改三个参数值,就能在不破坏任何装配关系的前提下生成全新形态——作者由此将鸭子机器人扩展为腿部与颈部更长的火烈鸟。结构改变后,项目还在 MuJoCo 仿真环境中为新形态重新训练了运动控制策略,形成「参数化建模→仿真适配→策略训练」的完整闭环。项目以 Apache-2.0 协议开源,仓库同时收录了 SO-101 和 LeRobot humanoid 的代码化版本,为 DIY 机器人开发者提供了一个低门槛的可参数化改造平台。

把机器人的身体写成代码

传统机器人结构设计中,3D打印件往往是一张张固定的STL模型文件——想改尺寸,就得重新建模。来自开源项目的这个尝试走了一条不同的路:把 Open Duck Mini v2 的所有打印件用 CadQuery(一个基于 Python 的参数化建模库)重写成程序。

这意味着机器人的「身体」不再是静态模型,而是一段可以被修改、复用的代码。只要改动一个文件里的三个数值,就能生成一套全新尺寸的结构件。作者用这个方法,把一只「鸭子」变成了一只「火烈鸟」(Flamingo)。

CadQuery 是一个基于 Python 和 OpenCASCADE 几何内核的开源参数化 CAD 库,允许开发者用代码描述三维几何体,而非在图形界面中手动拖拽。它的工作方式类似于「文字版 SolidWorks」:通过链式调用描述草图、拉伸、布尔运算等操作,最终导出 STL 或 STEP 文件供打印使用。与 OpenSCAD 类似,但 CadQuery 可以直接调用完整的 Python 生态(numpy、变量逻辑、循环等),使得参数之间的依赖关系可以任意复杂。对于机器人结构件这类有大量重复安装孔、对称特征的场景,代码化建模能大幅减少「改一处、错一片」的维护成本。

为什么改三个值就够了

这背后的关键在于参数化设计的约束逻辑。作者强调,火烈鸟的腿部和颈部零件并不是鸭子零件的复制粘贴,而是运行着鸭子自己的那套程序,只是传入了新的参数值。

换句话说,舵机凹槽(servo pockets)和螺丝孔的相对位置被程序逻辑锁定——它们始终对齐 STS3215 舵机所需的安装位,唯一改变的只是零件之间的长度。这是参数化 CAD 相比手工建模的核心优势:几何约束由代码保证,改一个变量不会破坏整体的装配关系。

基于这套机制,作者在原有鸭子结构上加了翅膀和一个小鸟头,拉长了腿和脖子,火烈鸟就此成形。整个过程不需要重新设计任何装配接口。

结构变了,策略也得跟上

仅仅造出新身体还不够。机器人的运动控制策略(policy)是针对特定身体形态训练的——腿变长了、重心变了,原来的步态策略就不再适用。

该项目的另一个重点是:在新身体上重新训练了控制策略,并使用 MuJoCo 作为仿真环境。这体现了「身体即代码」思路的完整闭环——结构参数化之后,仿真和强化学习流程也能更顺畅地适配新形态,不必每换一个外形就从零搭建仿真模型。

MuJoCo(Multi-Joint dynamics with Contact)是 DeepMind 维护的高性能物理仿真引擎,专为机器人和运动控制研究设计。它以快速、精确的接触动力学著称,是目前强化学习领域训练步态策略的主流仿真平台之一。在「sim-to-real」工作流中,研究者先在 MuJoCo 里用虚拟机器人跑数百万步仿真,让强化学习算法收敛出一套控制策略(policy),再把策略部署到真实硬件上。由于 CadQuery 生成的结构参数(如腿长、连杆比例)可以直接写入 MuJoCo 的 MJCF 模型描述文件,「换身体 → 更新仿真模型 → 重新训练策略」这一链路的自动化程度显著提升,避免了手工修改仿真模型带来的错误和工作量。

开源仓库里还有什么

项目以 Apache-2.0 协议开源(仓库地址:github.com/yotown/gym)。除了鸭子和火烈鸟,仓库里还把 SO-101 和 LeRobot humanoid(人形机器人) 也用代码形式提供出来。

这意味着使用者拿到的不只是几个固定模型,而是一组可以被参数化改造的机器人平台。对于想要尝试自定义形态、低成本迭代硬件设计的开发者和研究者来说,这种「代码化身体」的范式降低了实验门槛。

这个思路的意义

把机械结构写成可执行程序,再配合仿真里重新训练的控制策略,指向的是一种更敏捷的机器人原型迭代方式。设计者可以像改软件参数一样调整硬件形态,而装配约束和控制适配不再是每次都要从头来过的负担。

当然,从一个 Reddit 社区分享来看,这更像是一个有趣的概念验证而非成熟产品。它展示的核心价值在于方法论:参数化建模 + 仿真训练策略 + 开源协议,三者结合为 DIY 机器人和教学研究提供了一个可玩性很高的起点。"

#参数化机器人#CadQuery#开源机器人#MuJoCo仿真#Open Duck Mini#LeRobot#机器人策略训练
分享:

相关推荐