SO-ARM 开源机械臂设计决策全解析:从 SO-100 到 SO-101 的 5 个关键取舍
【免费下载链接】SO-ARM100Standard Open Arm 100项目地址: https://gitcode.com/GitHub_Trending/so/SO-ARM100
SO-ARM 是 RobotStudio 与 Hugging Face 联合设计的低成本开源机械臂,主打 3D 打印组装加主从臂遥操作。SO-100 时代一个常见事故是:腕部零件打坏了,整条臂的打印件跟着报废,而电机孔位偏 0.2 毫米就要整盘返工。这篇文章基于仓库内的 BOM、打印文件和仿真模型,拆解从 SO-100 到 SO-101 的 5 个关键取舍,并附一份实操避坑清单。
SO-ARM 是什么:一套为遥操作训练的开源机械臂
SO-ARM(仓库同时提供 SO-100 与 SO-101 两代)是一套 5 自由度主从式机械臂:人拿 leader 臂做出动作,follower 臂复现,再交给 LeRobot 库做数据采集和策略训练。核心用户是跑视觉-语言-动作(VLA)模型的研究者和想低成本上手的硬件爱好者。
一句话设计哲学:把 BOM 压到个人可承受区间,把组装难度压到新手可完成。两臂全套 BOM 官方标价为 229.88 美元(US 渠道,含 12 颗 STS3215 舵机、2 块 WaveShare 电机控制板、电源与夹具);单臂约 121.94 美元。SO-101 作为二代的改进写在 README 开头:改进走线、组装不再需要拆齿轮、leader 臂换用新电机。
核心设计拆解:5 个决定可用性的取舍
Leader 臂电机分减速比选型的逻辑
约束:SO-100 两臂全部使用 1/345(C001)单型号 STS3215。leader 臂需要把人手动作传回给 follower,减速比一味求扭矩,手感就会发滞;follower 臂则要顶住负载,扭矩不能少。单型号无法两头兼顾。
取舍:SO-101 给 leader 臂做了分级配置——3 颗 1/147(C046)、2 颗 1/191(C044)、1 颗 1/345(C001);follower 臂保持 6 颗 1/345 高扭矩版本。舵机本体不变(7.4V,6V 下堵转扭矩 16.5 kg·cm),只靠换减速比区分手感与扭矩。
效果:同一型号舵机、两种角色,采购仍走单一 SKU 渠道;leader 六颗电机支持整包购买。代价是装 leader 时不能再"一把梭"同型号,装错减速比会直接改变手感。
腕关节为什么拆成两段独立打印件
约束:腕部零件数量最多、离抓取目标最近,是磨损和磕碰的高发区。若按整臂一体化打印,一颗活动指破损就得重跑整盘。
取舍:两代都坚持每个关节独立出件。SO-101 的单个零件目录 STL/SO101/Individual/ 提供 16 个独立 STL,腕部拆成 Wrist_Roll_Pitch_SO101.stl(通用件)和 Wrist_Roll_Follower_SO101.stl(follower 专用),活动指单独是 Moving_Jaw_SO101.stl。SO-100 的 STEP 源文件同样按 Follower_Specific 与 Leader_Specific 分目录管理。
效果:损坏单件重印成本从"整臂"降到"一件",这也是柔性夹爪等改装件能以"外形不变、直接替换"方式接入的前提。
打印文件按机型做成托盘文件
约束:一条臂十几个零件,逐件摆床费时间且易摆错朝向;用户打印机床尺寸也不统一(Ender 220×220、Prusa 205×250、Bambu 系列各不相同)。
取舍:官方按床型各出一份"托盘文件"——所有零件已摆好、Z 轴朝上以最小化支撑。220×220 床打 Ender_Follower_SO101.stl 和 Ender_Leader_SO101.stl;Prusa/UP 床打 Prusa_Follower_SO101.stl 和 Prusa_Leader_SO101.stl。SO-100 时代还针对 Bambu A1Mini 拆过分体文件(part1/part2),说明"一台机型一个文件"的思路两代延续。
效果:切片软件里导入即可打印,摆床和支撑决策从用户转移到维护者。打印参数统一为 PLA+、0.4mm 喷嘴 0.2mm 层厚(或 0.6mm 喷嘴 0.4mm 层厚)、15% 填充。
打印校准的双基准量规
约束:FDM 打印实际尺寸与名义尺寸的偏差,直接决定舵机能不能插进去、关节会不会松旷。这是 3D 打印机器人项目里最隐蔽的报废源。
取舍:官方不假设打印机是准的,而是提供两套基准量规:手上有 STS3215 舵机就打 Gauge_0.STL 和 Gauge_tight_1.STL 对着真舵机试配;没有舵机就用标准 4×2 乐高块打 Lego_Size_Test_02_zero.STL 和 Lego_Size_Test_02_minuspoint1.STL。流程明确写在 README:量规不匹配就先改打印设置或提 issue,不许直接开印正式件。
效果:把精度问题拦在"最便宜的零件"上,而不是发现舵机孔装不进去时才回溯。
仿真模型与两版校准零点
约束:3D 打印件有公差、人工装配有偏差,仿真坐标若与实机约定不一致,校准数据无法迁移。
取舍:Simulation/ 目录里 SO-100 提供 URDF,SO-101 同时提供 URDF 与 MuJoCo(MJCF)文件,由 Onshape CAD 通过 onshape-to-robot 插件生成。SO101 明确给出两套零点约定:新版 so101_new_calib.urdf 把每个关节虚拟零点设在行程中点;旧版 so101_old_calib.urdf 设在完全水平伸展位,切换只需改 scene.xml 的引用。README 同时坦白一个已知缺口:LeRobot 中夹爪按线性关节映射(0 全闭、100 全开),这一点尚未写进 URDF/MJCF。
效果:仿真侧的约定是显式、可切换、可审计的,而不是藏在某个脚本里。
上手避坑清单
舵机孔位过紧或过松→ 根因:打印件整体缩放偏差 → 解法:先限量规试配,用 Gauge_0.STL 对舵机、Lego_Size_Test_02_zero.STL 对乐高,确认贴合度符合教程后再批量打印。
方框往臂身里推不动→ 根因:公差配合件手工硬顶 → 解法:打印 Mount_Helper 工装,用它垫着推入,README 里附了使用视频。
follower 臂抬不动负载→ 根因:想上 12V 版舵机却还挂着 5V 电源 → 解法:README 标注 7.4V 版在 6V 下堵转扭矩 16.5 kg·cm,够用;若换 12V/30 kg·cm 版本,电源必须同步换成 12V 5A 以上,且 leader 臂永远用 7.4V 版。
支撑长进螺丝孔,装配时要扩孔→ 根因:切片支撑策略过激 → 解法:支撑设为全范围但忽略大于 45° 斜面,并检查水平轴螺丝孔内不得有支撑——这条在 SO-100/SO-101 两代打印说明中都是硬性要求。
接线后电机无响应→ 根因:总线参数未初始化 → 解法:USB 接 PC,用 Feetech 官方软件(Windows)或 FT_SCServo_Debug_Qt(Ubuntu)排查;正常流程下 LeRobot 库即可配置,不必手工动 PID。
生态与文档体系
扩展件全部放在 Optional/ 目录,覆盖视觉、安装和末端三类场景,且都声明与两代机械臂兼容:
| 类别 | 内容 | 亮点 |
|---|---|---|
| 腕部相机 | 32×32 UVC 三种形态 + RealSense D405/D435 + 网络摄像头,共 6 套支架 | 每套独立 README 与 STL |
| 顶部相机 | 单臂/双臂俯视图支架 | overhead 相机方案 |
| 安装 | 4040 铝型材底座、抬高基座 | M4 固定,多臂平台用 |
| 末端 | TPU 95A 柔性夹爪、AnySkin 触觉 | 柔性爪利用 Fin Ray 效应,出自 LeRobot Hackathon |
仿真侧:SO-100 的 URDF 可用 rerun 直接可视化;SO-101 的 MuJoCo 场景文件支持新旧两种校准切换。文档分三层:README(BOM、打印、扩展清单,快速上手)、SO100.md(一代文档,已标注 deprecated)、3DPRINT.md(无打印机用户的代工服务指南,含 Craftcloud3d 与 PCBWay 两种下单流程,两臂合计约 95 美元)。组装教程主体挂在 LeRobot 官方文档。供应链上,PartaBot、Seeed Studio、WowRobo 等 7 家渠道销售组装版或零件套件,社区问答走 Discord。
下一步与经验提炼
路线图方面,仓库里唯一有据可查的下一步是 CHANGELOG.md v0.1.12(2024-10-01):"上传 7 自由度 SO-Arm 的早期 URDF 草稿以启动建模"——即 7DOF 版本已在预研,但尚无设计文件落地,暂不展开。
可迁移的设计原则有三条:
公差留给用户的打印机,而不是假设它是准的。按床型出托盘文件、预置支撑与朝向,再用量规把校准前移到最便宜的环节。
可替换性优先于整体性。关节独立出件、夹爪外形不变直接换 TPU 版,让"坏一件"永远不等于"废一臂",也让第三方改装有标准接口可挂。
坐标约定必须显式声明。仿真提供新旧两套零点并在文件里写清切换方式,实机与仿真共享同一份声明,校准数据才能流通。
行动指引:打印偏差、机型适配问题直接提 issue(量规流程里官方就要求"不匹配就开 issue");发现其他地区的采购链接,按 README 的说法提 issue 或 PR 补充进 BOM 表;跟踪 7DOF 草稿与文件更新看 CHANGELOG.md。
【免费下载链接】SO-ARM100Standard Open Arm 100项目地址: https://gitcode.com/GitHub_Trending/so/SO-ARM100
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考