这个系列会记录我基于 LeRobot 框架, 在 Mac M3 笔记本上部署 SO-ARM101 六轴机械臂从零到一搭建这套系统的全过程, 包括环境配置、硬件调试、遥操作、数据采集、云端训练( 在云服务器上完成模仿学习模型的训练与推理 ) 和模型部署等环节。过程中遇到的每一次排查、每一段有效代码我都会在这里如实记录。写作目的一是自我沉淀二是希望能给同样在 Mac 上尝试机器人学习的开发者提供一份可参考的实操笔记。这不是一份官方教程只是一份个人的真实工程日志, 如有错误请指正。面向读者想在 Mac 上部署 LeRobot 的开发者对具身智能 / 模仿学习感兴趣的工程师和学生正在或准备调试 SO-ARM 系列机械臂的玩家第 1 篇环境搭建Mac M3 上部署 LeRobot 的第一步Miniconda、虚拟环境与 Feetech 驱动本地有一台Mac笔记本 ( Apple M3 Pro 芯片 ), 云服务器系统为Linus ( Nivida Geforce RTX3090 ), 所以机械臂的 USB 串口只能插在 Mac 上云服务器无法直连本地 USB 设备所以所有和机械臂实时交互的操作都在 Mac 上完成只有训练放到云服务器。图1LeRobot 开发与训练异构计算架构 —— Mac M3 Pro (控制端, 连接机械臂完成数据采集) 云服务器 RTX3090 (训练端负责策略模型训练) 实现低成本高算力的具身智能开发流水线.Soarm101 机械臂提供的官方文档中的环境配置主要针对 Windows 和 Ubuntu所以针对Mac 需要做一些调整:a. 首先启动终端, 进入打算存放安装文件的目录比如 ~/Downloads 或 ~主目录cd~/Downloadscurl-Ohttps://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py311_25.7.0-2-MacOSX-arm64.shbashMiniconda3-py311_25.7.0-2-MacOSX-arm64.sh在安装过程中你需要按 Enter 键阅读并确认许可协议, 输入 yes 来同意协议条款。关于安装路径直接按 Enter 键选择默认的 ~/miniconda3 即可. 被问到是否要 conda init 时输入 yes, 这会让 conda 命令在每次打开终端时自动生效.source~/miniconda3/bin/activatee. 在新打开的终端里输入以下命令来检查是否安装成功conda--version如果成功终端会显示你安装的版本号例如 conda 25.7.0并且你可能会发现终端提示符前面多了 (base) 字样这表示 conda 的基础环境已激活.安装完成后还可以通过 conda config命令将 conda 的软件源也设置为清华镜像以提升后续安装各种 Python 包的速度.#设置清华镜像源conda config--addchannels Index of /anaconda/pkgs/main/|清华大学开源软件镜像站|Tsinghua Open Source Mirror conda config--addchannels Index of /anaconda/pkgs/free/|清华大学开源软件镜像站|Tsinghua Open Source Mirror conda config--setshow_channel_urlsyesconda config--showchannels创建虚拟环境每个项目可能依赖不同版本的库, 比如项目A要torch 2.0项目B要torch 1.8,创建虚拟环境是为了给当前项目隔离出一套独立的 Python 依赖包避免不同项目之间的版本冲突保持环境干净且可复现。习惯为每个项目创建独立的虚拟环境, 是 Python 开发者应该养成的好习惯。a . 创建一个名为 lerobot的独立Python环境, 指定 Python 3.10.18和 ffmpeg 7.1.1conda create-nlerobotpython3.10.18ffmpeg7.1.1-cconda-forge conda activate lerobotconda activate lerobot安装Feetch驱动Feetech飞特是一家专门生产高品质微型伺服电机舵机的公司, 我们需要给 LeRobot 装上舵机驱动程序, 否则LeRobot 软件无法控制由 Feetech 舵机组装的机械臂.前往 Hugging Face 官方 GitHub 仓库github.com/huggingface/lerobot克隆或直接下载源码。# 从 Hugging Face GitHub 官方仓库克隆gitclone https://github.com/huggingface/lerobot.gitcdlerobot如果你购买了某宝的 SO-ARM101 套件也可以直接使用随附资料中的lerobot.zip里面通常已整合好适配硬件的配置省去后续配置的麻烦。将代码解压到桌面或你习惯的目录然后进入该目录执行安装命令。pipinstall-e.[feetech]-ihttps://pypi.tuna.tsinghua.edu.cn/simple若日志里出现feetech-servo-sdk-1.0.0 , 代表驱动包已经就位.在 Mac 上安装此依赖时可能会遇到因系统权限或 Python 环境路径问题导致的失败。如果遇到这种情况检查你是否在正确的 Python 虚拟环境中执行了命令如果提示权限不足可能需要在命令前加上 sudo来尝试解决列出 Mac 上所有已识别的串口设备名称, 用于确认机械臂控制板已被系统正确识别.ls/dev/tty.*如果看到类似 /dev/tty.usbmodemxxx的设备, 说明硬件已被识别.注意, 此处是Mac用户与Windows 和 Ubuntu用户的区别, 在 Mac 上不会出现 Windows 下的 COM 端口号而是以 /dev/tty.usbmodem*或 /dev/tty.usbserial*的形式显示。插入主臂和从臂后出现的这两个设备文件就是系统分配给它们的唯一标识符。图2: 输出结果显示除了蓝牙、耳机等系统设备外识别出两个 USB 串口设备/dev/tty.usbmodem5C4C1245661 和 /dev/tty.usbmodem5C821094991分别对应主臂和从臂的控制板说明两块控制板均已被 Mac 成功识别串口通信环境就绪在成功通过 ls /dev/tty.* 确认 Mac 识别到 tty.usbmodem 设备后我们的环境验证就完成了一大步。然而usbmodem 这个标识有时意味着系统正在使用 macOS 内置的通用 CDC 驱动这在某些情况下可能会导致通信不稳定或功能受限。因此在下一篇内容中我将介绍如何进一步找出这块控制板所搭载的 USB 转串口芯片的具体型号并手动安装其对应的厂商驱动程序。完成驱动更换后设备标识符会从 tty.usbmodem* 转变为 tty.usbserial*。 这样做的好处是厂商提供的专用驱动往往能提供更稳定的数据流控制和更高的通信兼容性尤其是在高波特率如 1000000下进行机械臂控制时能有效降低丢包和延迟风险让后续的舵机控制与数据回传更加可靠顺畅。总结本篇完成了 LeRobot 在 Mac M3 上的基础环境搭建依次完成 Miniconda 安装、虚拟环境创建及 Feetech 舵机驱动安装, 下篇将完成硬件连接与舵机标定包括舵机接线、ID 分配与串口通信调试确保机械臂各关节能被系统正确识别与控制。进度记录:26.07.08第一篇26.07.14第二篇后续章节若更新可点击标题链接跳转到相应界面, 完全开源, 无任何阅读条件:第2 篇硬件连接与舵机标定让机械臂“认识”自己舵机 ID 设置与串口通信调试第 3 篇机械臂校准主从臂对齐让领导者与跟随者同步第 4 篇遥操作测试第一次让主臂控制从臂遥操作可视化与联动验证第 5 篇数据采集录制演示数据给机械臂做示范第 6 篇云端训练把数据传到云服务器用 RTX 3090 训练 ACT 策略第 7 篇推理测试模型部署到真实机械臂端到端模仿学习效果验证第 8 篇总结与展望整套流程回顾与后续优化方向