
关于系列这个系列会记录我基于 LeRobot 框架, 在 Mac M3 笔记本上部署 SO-ARM101 六轴机械臂从零到一搭建这套系统的全过程, 包括环境配置、硬件调试、遥操作、数据采集、云端训练( 在云服务器上完成模仿学习模型的训练与推理 ) 和模型部署等环节。过程中遇到的每一次排查、每一段有效代码我都会在这里如实记录。写作目的一是自我沉淀二是希望能给同样在 Mac 上尝试机器人学习的开发者提供一份可参考的实操笔记。我会持续更新欢迎关注交流。面向读者想在 Mac 上部署 LeRobot 的开发者对具身智能 / 模仿学习感兴趣的工程师和学生正在或准备调试 SO-ARM 系列机械臂的玩家第 1 篇环境搭建Mac M3 上部署 LeRobot 的第一步Miniconda、虚拟环境与 Feetech 驱动第2 篇硬件连接与舵机标定让机械臂“认识”自己串口通信调试与舵机 ID 设置2.1 硬件连接与准备工作SO-ARM101 是一款 6 自由度串联关节机械臂采用上下位机分离的架构设计其核心执行单元为 Feetech 品牌的高精度串行总线舵机。整条运动链由 6 个关节按串联方式耦合构成。在软件控制层面每个关节均被映射为一个独立的舵机 ID从而实现对各关节位置的单点精确控制。图3 SO-ARM101 单臂系列 硬件合集 (图片来源幻尔科技)机械臂从上往下( ID6 到 ID1) )每个舵机的命名依次为 gripper 、 wrist_roll 、 wrist_flex 、 elbow_flex 、 shoulder_lift 和 shoulder_pan, 分别负责:ID6 gripper夹爪 负责末端执行器的开合用于抓取物体ID5 wrist_roll腕部旋转 控制手腕绕自身轴线旋转ID4 wrist_flex腕部俯仰 控制手腕上下摆动ID3 elbow_flex肘部弯曲 控制小臂相对于大臂的折叠ID2 shoulder_lift肩部抬升 控制大臂在竖直平面内的升降ID1 shoulder_pan肩部旋转 控制整个臂在水平面内的左右摆动图4SO-ARM101 主/从臂舵机 ID 分配示意图这6个关节协同运动共同决定了末端夹爪在三维空间中的位置与姿态。使用时, 我们通过固定夹把主、从臂牢牢固定在桌面, 额外选配扩展的摄像头也固定到拍摄支架上, 连接好对应的USB接口 ( 主臂USB、从臂USB、相机USB通过扩展程序坞按需连接到Mac的TypeC插口 ), 插入电源并通电即可。 如果你购买的是 DIY 散件版本无需担心装配难度——哔站、Y管等开源社区中已有大量成熟的装机教程步骤详尽、资源丰富跟着操作即可完成整机搭建。本文不再赘述具体的组装过程,仅对 SO-ARM101 的硬件构成做简要介绍帮助大家建立对整体结构的基本认知。2.2 串口通信在开始舵机 ID 分配之前首先要确保 Mac 与舵机控制板之间能够正常通信。SO-ARM101 的两条机械臂各配备一块多功能驱动模块其核心是一颗 USB 转串口芯片( 图中红色方框 )。Mac 只有正确识别并加载了该芯片的驱动程序才能在终端中看到对应的串口设备文件后续的舵机控制指令才能正常下发。图5: SO- ARM101 多功能驱动模块布局图6SO-ARM101 USB 转串口芯片CH343P目前市面上的 USB 转串口芯片主要分为两类CH340沁恒微电子和 CP210x芯科科技。我手中的Soarm101 套件中搭载的是 CH343P 芯片 ( CH343P 是南京沁恒微电子[1]WCH推出的一款USB 转高速异步串口桥接芯片)因此我们以 CH343P 为例进行讲解。如果你手中的芯片型号不同只需到对应厂商官网下载驱动即可操作流程是类似的。1)串口芯片驱动安装激活虚拟环境并进入工程目录conda activate lerobotcd~/Desktop/lerobot# 根据实际路径调整使用brew安装驱动程序brewinstall--caskwch-ch343图7: bash中显示安装成功期间会弹出若干窗口, 根据不同的macOS版本还需要完成关键的授权步骤驱动才能工作macOS 11.0及以上版本a. 打开“启动台”找到并打开 CH34xVCPDriver 应用程序b. 点击Install按钮。系统可能会提示安全验证根据指引在“系统设置”中允许该驱动扩展对于 macOS 13 及以上你可以在系统设置 → 通用 → 登录项与扩展 → 驱动程序扩展中找到并手动启用CH34xVCPDriver:图8: 为驱动程序扩展授权所有版本通用a. 安装和授权后需要重启电脑才能使驱动生效b. 将设备连接到电脑在终端使用命令ls /dev/tty.*检查驱动是否成功加载如果看到类似tty.wchusbserialxxx的设备就表示成功了.图9: 完成驱动更换后设备标识符从 tty.usbmodem* 转变为 tty.usbserial*, 以此实现更稳定的数据流控制和更高的通信兼容性至于有的读者会问, 这里的两个串口设备, 我如何确定哪个是主臂, 哪个是从臂? 方法很简单, 通过插拔每次只留一个臂和Mac相连, 记下相对应的串口号即可. 比如在这里, 图9黄色方框序列号中5C8开头的设备是我的从臂, 5C4是我的主臂.补充:若国内用户若安装失败, 可以切换镜像源# 切换Homebrew核心源git-C$(brew--repo)remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git# 切换Homebrew Bottles源exportHOMEBREW_BOTTLE_DOMAINhttps://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles# 重试安装brewinstall--caskwch-ch343如果以上方法都不行可以直接从WCH官网下载CH343驱动, 步骤如下a.访问 WCH官网b.下载macOS版本的驱动图10: 驱动程序的下载c.手动安装2.3 舵机标定标定旨在确立控制信号与舵机物理转角之间的精确映射关系是保障后续运动控制精度的基础。设置舵机ID时每次只能有一个舵机连接主控板其他串联的信号线需全部拔掉。1) 从臂跟随者ID设置lerobot-setup-motors--robot.typeso101_follower--robot.port/dev/tty.wchusbserialXXX注意: 将上面命令中的/dev/tty.wchusbserialXXX替换为实际的端口号图11 舵机ID设置接口示意图操作流程终端会依次提示6个舵机名称gripper → wrist_roll → wrist_flex → elbow_flex → shoulder_lift → shoulder_pan每次提示时只插入对应ID的舵机(详见2.1)然后按回车出现下一个舵机名称提示表示当前舵机设置完成重复插拔和回车操作直到全部设置完毕2) 主臂领导者ID设置lerobot-setup-motors--teleop.typeso101_leader--teleop.port/dev/tty.wchusbserialXXX操作流程与从臂相同:图12 主臂舵机ID设置总结本篇介绍了SO-ARM101的硬件架构, CH343P串口芯片驱动的安装与授权流程完成了主、从臂各舵机ID的分配与标定。舵机ID标定完成后机械臂的各个关节已就位但主臂与从臂之间尚未建立统一的运动参考系。下一篇我们将进入机械臂校准环节为主、从臂建立统一的关节角度映射关系为后续遥操和数据采集铺平道路。校准完成后便可通过主臂直接遥控从臂运动真正让机械臂动起来。进度记录:26.07.08第一篇26.07.14第二篇后续章节若更新可点击标题链接跳转到相应界面, 完全开源, 无任何阅读条件:第 3 篇机械臂校准主从臂对齐让领导者与跟随者同步第 4 篇遥操作测试第一次让主臂控制从臂遥操作可视化与联动验证第 5 篇数据采集录制演示数据给机械臂做示范第 6 篇云端训练把数据传到云服务器用 RTX 3090 训练 ACT 策略第 7 篇推理测试模型部署到真实机械臂端到端模仿学习效果验证第 8 篇总结与展望整套流程回顾与后续优化方向参考^南京沁恒微电子 https://www.wch.cn/