使用LeRobot项目组装与配置SO-101机器人全指南
前言
LeRobot项目为机器人学习与控制提供了一个强大的开源框架,其中SO-101是其旗舰机器人平台。本文将详细介绍如何从零开始组装、配置和使用这款双机械臂系统,帮助开发者快速上手机器人学习与控制。
一、准备工作
1.1 硬件准备
SO-101机器人由两个机械臂组成:
- 领导者机械臂(Leader Arm):用于人工示教
- 跟随者机械臂(Follower Arm):用于自主执行
每个机械臂需要:
- 6个STS3215型号伺服电机
- 1个电机控制总线适配器
- 3D打印结构件(约20个部件)
- 各类螺丝(M2x6mm和M3x6mm)
1.2 软件环境搭建
推荐使用Python 3.10环境:
conda create -y -n lerobot python=3.10
conda activate lerobot
conda install ffmpeg -c conda-forge
安装LeRobot核心库:
pip install -e ".[feetech]"
注:若遇到编译错误,可能需要安装额外依赖:
sudo apt-get install cmake build-essential python3-dev pkg-config \
libavformat-dev libavcodec-dev libavdevice-dev libavutil-dev \
libswscale-dev libswresample-dev libavfilter-dev
二、电机配置
2.1 识别电机总线端口
首先需要确定两个机械臂对应的USB端口:
python lerobot/scripts/find_motors_bus_port.py
脚本会引导你断开连接来确定每个机械臂对应的端口,典型输出如下:
- Linux系统:
/dev/ttyACM0
和/dev/ttyACM1
- Mac系统:
/dev/tty.usbmodemXXXXX
2.2 更新配置文件
找到配置文件lerobot/common/robot_devices/robots/configs.py
中的SO101RobotConfig
类,更新端口信息:
leader_arms: dict[str, MotorsBusConfig] = field(
default_factory=lambda: {
"main": FeetechMotorsBusConfig(
port="/dev/tty.usbmodem58760431091", # 替换为实际端口
# ...其他配置保持不变
)
}
)
2.3 设置电机ID
为每个电机分配唯一ID(1-6):
python lerobot/scripts/configure_motor.py \
--port /dev/tty.usbmodem58760432961 \
--brand feetech \
--model sts3215 \
--baudrate 1000000 \
--ID 1
重复此过程为所有12个电机(6个领导者+6个跟随者)设置ID。
三、机械臂组装
3.1 领导者机械臂特殊配置
领导者机械臂使用不同减速比的电机组合:
| 关节 | 电机编号 | 减速比 | |------|----------|--------| | 基座/肩部偏航 | 1 | 1:191 | | 肩部俯仰 | 2 | 1:345 | | 肘部 | 3 | 1:191 | | 腕部旋转 | 4 | 1:147 | | 腕部俯仰 | 5 | 1:147 | | 夹持器 | 6 | 1:147 |
3.2 分步组装指南
-
关节1组装
- 安装基座电机,使用4个M2x6mm螺丝固定
- 安装电机支架和联轴器
- 连接肩部部件,使用8个M3x6mm螺丝
-
关节2组装
- 从顶部插入肩部电机
- 固定电机并安装联轴器
- 连接上臂部件
-
关节3-5组装
- 类似方法依次组装肘部、腕部旋转和腕部俯仰关节
- 注意各关节电机的固定方向和螺丝数量
-
末端执行器
- 跟随者机械臂安装夹持器
- 领导者机械臂安装示教手柄
- 确保所有线缆通过线槽整齐布线
四、系统校准
4.1 跟随者机械臂校准
运行校准脚本:
python lerobot/scripts/control_robot.py \
--robot.type=so101 \
--control.type=calibrate \
--control.arms='["main_follower"]'
按照提示将机械臂移动到四个关键位置:
- 中间位置
- 零位位置
- 旋转位置
- 休息位置
4.2 领导者机械臂校准
同样方法校准领导者机械臂:
python lerobot/scripts/control_robot.py \
--robot.type=so101 \
--control.type=calibrate \
--control.arms='["main_leader"]'
五、机器人控制与学习
完成上述步骤后,SO-101机器人已准备好进行任务学习:
-
数据采集
- 使用领导者机械臂示教任务
- 记录机械臂运动轨迹和环境状态
-
策略训练
- 基于采集的数据训练神经网络策略
- 优化策略以提高任务成功率
-
策略评估
- 将训练好的策略部署到跟随者机械臂
- 观察自主执行效果并迭代优化
结语
通过本指南,您已成功搭建了一套完整的SO-101机器人学习平台。这套系统特别适合研究模仿学习、强化学习等机器人学习算法。下一步可以尝试实现具体的任务学习,如物体抓取、装配等操作,探索机器人自主学习的无限可能。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考