SO-101 SE 桌面主从机械臂|从逐关节组装到安全遥操作

双臂示教与跟随

使用国内可购的微雪 SO-ARM101 SE 含打印件套件,完成零件识别、逐个舵机编号、双臂装配、校准与首次空载遥操作。提供逐动作中文教程、真实装配视频时间码和已完成 macOS 安装自检的软件包;不把软件测试等同于实物性能验证。

戴子淇

参数信息

每臂关节输入/驱动数
6 个

复现文档

清点完整套件与安全准备

目标:把主臂、从臂零件分开,全部断电。准备干净桌面、两个零件盘、小标签及随套件螺丝刀。\

\

(1)主臂6个ST3215 Servo(SE)放左盘,从臂6个ST3215 Servo放右盘,按外壳型号区分,不只看大小。\

\

(2)清点2块适配板、2根USB线、2套12V5A电源、4个桌夹。电源不插墙上。\

\

(3)从臂结构件标记F1至F11,主臂L1至L12。F、L不是螺丝规格。

![original_1200px-SO-ARM101_Follower_3D_kit.jpg](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/730012a8-c621-47fd-a551-60965167a4d7/files/image/8dc463fe19fe405fa9a6a148287cfef9.jpg)\

(4)区分带齿中心孔舵盘与无齿支撑舵盘,不把齿孔强压到无齿端。\

\

(5)螺丝按外形和长度分格。塑料固定用尖头螺丝、舵盘用配套平头螺丝;袋子未标识或长度不符时先核对供应商,不凭力气试拧。\

\

(6)检查结构件裂纹、堵孔和变形。轻放舵机试配;不削薄承力件、不用螺丝强行拉合。\

\

完成检查:两套零件分开,电源全断,无明显破损,缺件先补齐。树脂件不需要接触未固化树脂,不加热或强掰修形。\

\

真实零件识别视频:https://www.youtube.com/watch?v=rVP1XQ0PeM4&t=8s (00:08–00:14;Waveshare,版权归原作者)。

安装软件、识别端口并逐个写入ID

适用环境:Apple Silicon Mac、Python 3.12。先解压本页软件ZIP;打开“终端”,输入cd和一个空格,把解压出的SO101_SE_ORecord文件夹拖入终端,再回车。以下命令均在此目录运行。\

\

安装命令:bash 07_software/install_macos.sh\

\

脚本需要python3.12;没有时会提示安装地址并退出。安装完成后运行:bash 08_tests/test_software_bundle.sh\

\

须看到No broken requirements found、lerobot_import: PASS 0.6.1、cli_help: PASS。软件自检不连接硬件,也不证明运动安全。\

\

激活环境:source .venv-lerobot/bin/activate\

\

识别端口:lerobot-find-port\

\

一次只接一块适配板,按提示拔下USB、回车、重新插回。记录完整/dev/cu.usbmodem开头的端口,为板贴“主”或“从”。USB不能给舵机供电,使用SKU33318配套12V5A电源。\

\

写号必须在机械装配前完成。先断电,只接待编号的一只关节件,确认没有第二只串联,然后接好USB和匹配电源再通电。\

\

从臂命令:lerobot-setup-motors --robot.type=so101_follower --robot.port=/dev/cu.usbmodemXXXX\

\

主臂命令:lerobot-setup-motors --teleop.type=so101_leader --teleop.port=/dev/cu.usbmodemYYYY\

\

XXXX和YYYY必须替换为实际完整端口;两臂分别操作,不混线。\

\

程序提示顺序是6到1:gripper=6夹爪/扳机;wrist_roll=5腕部旋转;wrist_flex=4腕部俯仰;elbow_flex=3肘部;shoulder_lift=2肩部抬升;shoulder_pan=1底座旋转。\

\

每只看到motor id set to及对应编号才算完成,贴号并放回对应盘。换下一只前必须断电,握插头拔线,换好后上电并按提示回车。不要把六只一起接上写号。两条独立总线各有1至6,不相互串联。全部编号完成后拔下电源和USB,再开始组装。\

\

报错:先断电检查插头、独立电源和“只接一只”;型号不匹配时停止,核对SKU与标签,不修改代码绕过检查。

![set_id_source.jpg](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/730012a8-c621-47fd-a551-60965167a4d7/files/image/d335ac84a1ea49b190c9586b59202304.jpg)

底座:装入1号舵机、舵盘和走线

全程断电。需要F1底座、从臂1号舵机、两根总线线、F2支架及随件紧固件。\

\

(1)找到舵机两个总线插座,分别插入两根线。对准插头形状,握塑料壳压入,不斜插、不拉线芯。\

\

(2)把舵机放进F1中央凹槽;确认线不垫在下面。\

\

(3)用4枚配套尖头螺丝固定,上方2枚、下方2枚。先逐枚入孔,再交替拧至螺丝头贴住安装面。塑料变形或开裂立即停。\

\

(4)带齿舵盘装在输出齿轴一侧,无齿舵盘装在另一支撑端。舵盘必须平贴、不翘起。\

\

(5)把F2支架放到F1上,两侧固定。不要先锁F2再硬塞舵机。\

\

(6)一根线从F1中央开口引出,留给适配板;另一根放入F2线槽,留给2号舵机。\

\

检查:舵机不晃,两根线自由伸出且未压扁。装错时保持断电,松开F2取出压线;线皮破损先换线,不贴胶布继续用。\

\

连续动作:https://www.youtube.com/watch?v=rVP1XQ0PeM4&t=14s (00:14–01:14)。观察放入舵机、两侧舵盘和支架走线;Waveshare原视频,版权归原作者。

![445px-668px-SO-ARM101_Follower_Assembly_Step_2.jpg](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/730012a8-c621-47fd-a551-60965167a4d7/files/image/61c349884f974bcaa003ef5d9a84fa5e.jpg)

肩部:滑入F3并安装2号舵机

全程断电,使用套件螺丝刀和对应紧固件。\

\

(1)拿起F3肩部件,让两端沿1号舵机两侧内侧的滑动位置水平进入。\

\

(2)两端孔分别对准舵盘孔。孔错开时退出重放,不用螺丝拉正。\

\

(3)用配套平头螺丝固定两端,交替拧至贴合。\

\

(4)把F4舵机支架放到F3上。\

\

(5)把2号从臂舵机放进支架,两端固定。\

\

(6)把1号预留线接到2号的任一总线插座。\

\

(7)在2号两端装对应舵盘:带齿盘接输出轴,无齿盘接支撑侧。\

\

(8)在2号空余插座接新线,留给3号。\

\

检查:F3两端均已固定;线不绕转轴、不夹在连接面中。轻缓改变关节位置时线有余量,不能快速硬掰。发现夹线就断电拆回对应支架重新走线。\

\

连续动作:https://www.youtube.com/watch?v=rVP1XQ0PeM4&t=74s (01:14–02:14)。看清F3水平滑入和两侧舵盘对孔;Waveshare原视频,版权归原作者。

![original_855px-SO-ARM101_Follower_Assembly_Step_4.jpg](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/730012a8-c621-47fd-a551-60965167a4d7/files/image/1f70dbb67493415280d88c2517776172.jpg)

上臂:连接F5后安装3号舵机

先断电。F5一端连接2号舵盘,另一端容纳3号舵机,不是直接装到3号就结束。\

\

(1)拿出F5,找到线槽,让线槽和已有线束同侧。\

\

(2)沿内侧滑动位置把F5接到2号舵盘,先对齐两端孔。\

\

(3)用配套紧固件固定两侧,螺丝头贴合就停止,不能拉弯结构件。\

\

(4)把3号舵机放入F5另一端凹槽,固定两端。\

\

(5)接上2号预留线。\

\

(6)安装3号两端对应舵盘,带齿盘在输出轴侧。\

\

(7)在3号空余插座接一根新线,留给4号。\

\

检查:F5两端连接稳固,线槽与线同侧,线没有被压在舵机下面。阻力异常时退出检查,不强压;孔错位时松开重对齐。\

\

连续动作:https://www.youtube.com/watch?v=rVP1XQ0PeM4&t=134s (02:14–03:28)。观察F5连接顺序、装入3号及舵盘;Waveshare原视频,版权归原作者。

![original_600px-SO-ARM101_Follower_Assembly_Step_7.jpg](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/730012a8-c621-47fd-a551-60965167a4d7/files/image/777cd9502e5648c3af543416230035a2.jpg)

前臂:连接F6、F7与4号舵机

保持断电,使用随件螺丝刀与对应紧固件。\

\

(1)拿出F6,让线槽朝向已有线束。\

\

(2)将F6沿内侧滑动位置接到3号舵盘,两端孔对齐后固定。\

\

(3)把F7支架装到F6,线槽与线束同侧。\

\

(4)把4号舵机放进支架槽,固定两端。\

\

(5)接上3号预留的总线线。\

\

(6)安装4号两端对应舵盘,齿孔对应输出轴。\

\

(7)在4号空余插座接新线,留给腕部。\

\

检查:3到4号线不被F6/F7压住;结构件贴合,螺丝头贴住就停,没有依靠拧紧把塑料拉弯的缝隙。对孔失败就松开并重新对齐,不扩大承力孔。\

\

连续动作:https://www.youtube.com/watch?v=rVP1XQ0PeM4&t=208s (03:28–04:27)。看清F6/F7装入顺序和4号线槽;Waveshare原视频,版权归原作者。

![original_713px-SO-ARM101_Follower_Assembly_Step_10.jpg](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/730012a8-c621-47fd-a551-60965167a4d7/files/image/6ec8cf673524429b930cdbe2970ded6a.jpg)

腕部:先穿线,再滑入5号舵机

这里最容易夹线,全程断电。需要F8、5号舵机、新总线线和配套螺丝刀。\

\

(1)找到F8侧面矩形开口,让开口与4号舵机接线口同侧。\

\

(2)F8与F7水平对齐,沿滑动位置进入4号舵盘处。\

\

(3)两端孔重合后用对应螺丝固定,贴合即停。\

\

(4)把4号预留线从F8底部开口带入,再从侧面矩形口引出。\

\

(5)把这根线接到5号舵机。\

\

(6)在5号另一插座接新线,并从F8底部引出,留给6号。\

\

(7)整理两根线,不能垫在舵机与F8之间。\

\

(8)让5号输出齿轴一侧先进入,齿轴朝上,缓慢放入F8。阻力异常立即退出检查线,不推压。\

\

(9)舵机坐到底且线未受挤压后才固定螺丝。\

\

(10)5号只在输出轴侧装带齿舵盘,另一侧不装。\

\

完成检查:两根线已接好、没有折伤、没有夹在结合面。若先装舵机导致插不进线,拆回第7步;不要在狭缝里用工具硬顶插头。\

\

连续动作:https://www.youtube.com/watch?v=rVP1XQ0PeM4&t=267s (04:27–05:46)。重点看线穿过哪个开口、如何整理余量、舵机如何放入;Waveshare原视频,版权归原作者。

![original_657px-SO-ARM101_Follower_Assembly_Step_14-2.jpg](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/730012a8-c621-47fd-a551-60965167a4d7/files/image/2759d0031c9f412faf123fd2674f8ff7.jpg)

从臂夹爪:安装6号舵机与F10

先断电,准备F9腕部、F10夹爪、从臂6号舵机及随件螺丝刀。\

\

(1)把F9连接到5号舵盘,孔对齐后用对应螺丝固定,贴合即停。\

\

(2)把6号舵机装入F9,固定两端。\

\

(3)接入5号预留线,此时就接,不留到通电前才补。\

\

(4)给6号两端装对应舵盘,齿孔接输出轴。\

\

(5)拿起F10,使它与F9垂直。\

\

(6)从上往下把F10滑入F9槽,直到孔与6号舵盘孔对齐。\

\

(7)固定两端,不用螺丝拉正歪斜的夹爪。\

\

检查:结构没有歪卡;缓慢改变姿态时总线不被夹爪夹住。卡住时退回重新对齐,禁止硬压。不要通电试夹手指或重物。\

\

连续动作:https://www.youtube.com/watch?v=rVP1XQ0PeM4&t=346s (05:46–06:50)。重点观察F10从上往下滑入的过程;Waveshare原视频,版权归原作者。

![original_600px-SO-ARM101_Follower_Assembly_Step_18.jpg](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/730012a8-c621-47fd-a551-60965167a4d7/files/image/3b6ecd80cddb4bbc80b926e8bb764124.jpg)

固定驱动板和从臂底座

保持全部断电。准备一块Bus Servo Adapter、F11支架、两个桌夹。\

\

(1)将适配板固定在F11上,板底焊点不要碰散落螺丝或其他金属。\

\

(2)将F11背部方形连接件安装到F2。\

\

(3)将1号最初从底座引出的线接到适配板匹配的总线接口,辨认插座形状后直插,不能斜插。\

\

(4)从板沿线检查:只连接从臂1至6号,不连接主臂链。\

\

(5)用两个桌夹把底座固定在稳固桌边,交替夹紧,轻推底座不会滑动即可;不要夹裂树脂件。\

\

(6)把电源接头放到随手能切断的位置,线束绕开机械臂活动区。\

\

检查:板已固定,无金属短接;桌夹不松;1至6号线路连续,6号线也已接入。若夹具损伤结构件或板松动,先修正再通电。\

\

连续动作:https://www.youtube.com/watch?v=rVP1XQ0PeM4&t=410s (06:50–07:22)。视频在07:08补接6号线,本教程已要求上一步接好;请再次检查。Waveshare原视频,版权归原作者。

![original_618px-SO-ARM101_Follower_Assembly_Step_19-3.jpg](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/730012a8-c621-47fd-a551-60965167a4d7/files/image/db07feef3e6d4ed9b7acb95ca98c7659.jpg)

主臂:安装扳机、握把与第二块板

主臂使用6个已编号的SE编码器件,不从从臂盘拿动力舵机混装。全程断电。\

\

(1)使用L1至L8和主臂1至5号,依次完成本页底座、肩部、上臂、前臂、腕部五步的同名动作,把F件对应替换为L件。每节检查通过再继续,不把两臂接到同一总线。\

\

(2)将L9主臂腕部固定到5号舵盘,不使用F9。\

\

(3)将主臂6号SE件放入,固定两端。\

\

(4)接上5号预留线;带齿舵盘安装在6号输出轴。另一侧无齿舵盘可不装;若装,必须固定,不能松放。\

\

(5)将L10扳机固定到6号带齿舵盘。它用于手指输入,不是从臂夹爪。\

\

(6)将L11握把安装到L9,连接面贴合后固定,不用螺丝硬拉歪斜的件。\

\

(7)将第二块适配板装到L12,把L12背面方形连接件装到L2。\

\

(8)将主臂1号引出的线接到这块板。\

\

(9)用剩下两个桌夹固定主臂底座。两块板分别贴“主”“从”,记录各自端口。\

\

检查:主臂有握把和扳机,从臂有夹爪;各用独立适配板,两底座轻推都不滑。插头歪斜、线被压住或结构件开裂时停止,断电拆回对应位置修正。\

\

连续动作:https://www.youtube.com/watch?v=rVP1XQ0PeM4&t=442s (07:22–09:27)。重点看主臂L9、扳机与握把的区别;Waveshare原视频,版权归原作者。

![original_SO-ARM101_Leader_Assembly_Step_18.jpg](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/730012a8-c621-47fd-a551-60965167a4d7/files/image/d2e01a56c2fc4bd494e574f08029e9c9.jpg)

通电检查、两臂校准与首次空载跟随

一、通电前检查\

\

清走活动区螺丝和工具;所有插头插正、线皮完整、关节活动时线不绷紧。确认两套电源为SKU33318匹配12V5A型号,铭牌、接口均对应。两臂分别接自己的板、USB和电源。底座夹牢,臂下铺软垫,从臂电源随手可切断,成年人陪同首次通电。\

\

二、分别校准\

\

进入解压目录并激活环境:source .venv-lerobot/bin/activate\

\

下列XXXX、YYYY必须换为实际完整端口。\

\

从臂:lerobot-calibrate --robot.type=so101_follower --robot.port=/dev/cu.usbmodemXXXX --robot.id=my_follower_arm\

\

主臂:lerobot-calibrate --teleop.type=so101_leader --teleop.port=/dev/cu.usbmodemYYYY --teleop.id=my_leader_arm\

\

(1)若提示已有同名校准,新装或重新装配时输入c再回车,不复用别人的文件。\

\

(2)出现middle of its range of motion时,提前支撑臂段,把关节放在可运动范围中间,不顶限位,再回车。程序关闭力矩时机械臂可能下垂。\

\

(3)出现Move all joints except wrist_roll时,依次缓慢移动1、2、3、4、6号,在结构允许范围到两端,观察MIN/MAX变化。不硬撞限位、不拉紧线。\

\

(4)LeRobot0.6.1此阶段排除5号wrist_roll,不要求连续旋转一整圈;盲目转圈会缠线。\

\

(5)记录完回车,看到Calibration saved to和路径才完成。某关节MIN/MAX不变,先检查ID和线,不进入遥操作。\

\

(6)对另一臂重复。保留校准文件,后面使用相同my_follower_arm和my_leader_arm名称。\

\

三、第一次空载跟随\

\

把两臂放在相近且无障碍的姿态,手离开从臂;运行以下一整行命令,替换真实端口:\

\

lerobot-teleoperate --robot.type=so101_follower --robot.port=/dev/cu.usbmodemXXXX --robot.id=my_follower_arm --robot.max_relative_target=2 --teleop.type=so101_leader --teleop.port=/dev/cu.usbmodemYYYY --teleop.id=my_leader_arm --fps=10 --teleop_time_s=15\

\

只小幅移动主臂一个关节,观察从臂是否跟随;15秒后命令结束。max_relative_target限制每次目标改变量,fps限制循环频率,这不是硬件急停或防碰撞保证。正常停止用Control+C;突然撞限位、持续异响、线被拉紧时立即切断从臂电源,不伸手与电机对抗。断电后可能下垂。\

\

四、验收及排错\

\

找不到端口:使用数据线,一次插一块板,重新识别,必要时换电脑接口。无响应:断电查线及独立电源,USB不能代替舵机电源。型号不匹配:停止,核对SKU和标签,不改驱动绕过检查。跟随方向异常:断电,检查ID与装配方向,重新校准,不继续碰运气。\

\

只有两臂校准均保存、所有关节在小幅空载测试中正常且线束不受拉,才继续尝试轻小软物。本项目没有实物测试报告;软件安装和CLI检查通过不等于上述实物验收通过。

![original_570px-SO-ARM101_Leader.png](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/730012a8-c621-47fd-a551-60965167a4d7/files/image/257eb4a9022541aebfbc6e59c2654007.png)