news 2026/7/16 8:49:12

Mac 用户如何玩转 LeRobot?M3 芯片部署6 轴机械臂SoArm101经验总结 第2篇

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Mac 用户如何玩转 LeRobot?M3 芯片部署6 轴机械臂SoArm101经验总结 第2篇

关于系列

这个系列会记录我基于 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, 分别负责:

图4:SO-ARM101 主/从臂舵机 ID 分配示意图

这6个关节协同运动,共同决定了末端夹爪在三维空间中的位置与姿态。使用时, 我们通过固定夹把主、从臂牢牢固定在桌面, 额外选配扩展的摄像头也固定到拍摄支架上, 连接好对应的USB接口 ( 主臂USB、从臂USB、相机USB通过扩展程序坞按需连接到Mac的TypeC插口 ), 插入电源并通电即可。 如果你购买的是 DIY 散件版本,无需担心装配难度——哔站、Y管等开源社区中已有大量成熟的装机教程,步骤详尽、资源丰富,跟着操作即可完成整机搭建。本文不再赘述具体的组装过程,仅对 SO-ARM101 的硬件构成做简要介绍,帮助大家建立对整体结构的基本认知。

2.2 串口通信

在开始舵机 ID 分配之前,首先要确保 Mac 与舵机控制板之间能够正常通信。

SO-ARM101 的两条机械臂各配备一块多功能驱动模块,其核心是一颗 USB 转串口芯片( 图中红色方框 )。Mac 只有正确识别并加载了该芯片的驱动程序,才能在终端中看到对应的串口设备文件,后续的舵机控制指令才能正常下发。

图5: SO- ARM101 多功能驱动模块布局

图6:SO-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版本,还需要完成关键的授权步骤驱动才能工作:

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_DOMAIN=https://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.type=so101_follower--robot.port=/dev/tty.wchusbserialXXX

注意: 将上面命令中的/dev/tty.wchusbserialXXX替换为实际的端口号

图11 舵机ID设置接口示意图

操作流程

2) 主臂(领导者)ID设置

lerobot-setup-motors--teleop.type=so101_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 篇:总结与展望

整套流程回顾与后续优化方向

参考

  1. ^南京沁恒微电子 https://www.wch.cn/
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/16 8:42:33

PJSIP C++开发实战:从核心类解析到可运行SIP客户端构建

1. 项目概述:PJSIP库的C世界初探 如果你正在C领域里折腾音视频通信,无论是想做一个自己的软电话、一个带通话功能的IoT设备,还是一个嵌入式的对讲系统,那么PJSIP这个名字你大概率绕不过去。它是一个开源的、功能强大的SIP&#xf…

作者头像 李华
网站建设 2026/7/16 8:38:34

AI Agent环境构建:操作系统级运行时设计与实操

1. 项目概述:这不是搭个“环境”,而是给AI Agent装上操作系统 “Agent -Practice--build your agent environment”这个标题乍看像一句命令行提示,甚至有点像某个IDE报错后的临时笔记——但它背后藏着当前AI工程落地最核心的瓶颈:…

作者头像 李华
网站建设 2026/7/16 8:38:29

强化学习模型蒸馏:PowerOPD幂变换解决奖励无界问题

在强化学习模型蒸馏的实际应用中,OPD(On-Policy Distillation)的奖励函数设计一直是影响性能的关键因素。很多开发者在复现论文或项目落地时,都会遇到奖励值边界不确定、训练不稳定等问题。本文将从实际工程角度深入分析OPD奖励设…

作者头像 李华
网站建设 2026/7/16 8:37:27

《龍魂系统·民间出创意国家出维护永恒锁》

《龍魂系统民间出创意国家出维护永恒锁》 不是协议,是锁。 不是起草,是焊死。 不是闭环,是无限圈圈。P0 焊死 不可修订 民间出创意,国家出维护,此分永不改UID9622一票否决权,此权永不撤16人格对应16部门&am…

作者头像 李华