想要低成本体验先进的机器人技术,SO-ARM100 开源项目提供了一个完整的入门方案。该系统基于 3D 打印和标准舵机,硬件成本控制在千元以内,却具备工业级机器人的核心功能。所有 CAD 文件、控制代码均免费开放,适合零基础爱好者上手。
硬件准备
组装前需备齐以下核心部件:
3D 打印结构件(推荐 PLA+ 材料):
- Base_SO101.stl - 机器人底座
- Upper_arm_SO101.stl - 上臂结构
- Rotation_Pitch_SO101.stl - 俯仰关节模块
电子元器件:
- STS3215 舵机 ×6 个(每个机械臂)
- Waveshare 电机控制板 ×1 块
- 5V/2A 电源模块 ×1 个
工具与配件:
- M3 螺丝套装
- USB-C 数据线
- 3D 打印机(精度±0.1mm)
机械组装流程
打印完成后,先用 Gauges 文件夹中的测试件验证精度,例如 Lego_Size_Test_02_zero.STL 用于验证基本尺寸,Gauge_0.STL 检查装配间隙。
安装舵机时,使用 Feetech 软件设置 ID(主臂 1-6,从臂 7-12),将其固定到对应的 3D 打印支架中,并连接电机控制板,注意电源正负极不要接反。机械结构组装顺序建议为:先安装底座和电机支架,再连接上臂与下臂结构,最后安装末端执行器(夹爪或钩状工具)。
软件配置与控制
开发环境推荐使用 FT_SCServo_Debug_Qt 进行舵机调试,若需高级控制可接入 ROS。基础运动控制可通过 Python 脚本实现串口通信。
import serial
import time
# 连接机器人
robot = serial.Serial('/dev/ttyUSB0', 115200)
def move_joint(joint_id, position):
command = f"#{joint_id}P{position}T100\r\n"
robot.write(command.encode())
# 示例:移动第一个关节到中位
move_joint(1, 1500)
进阶功能扩展
SO-ARM100 支持主从臂协作控制。通过 USB-C 接口建立实时通信链路,主臂发送关节角度数据,从臂接收并执行相同动作,可实现毫米级精度的轨迹同步。
视觉增强方面,可加装 Intel RealSense D405 深度相机或小型相机模块。安装时需打印专用支架固定在腕部位置,并通过 USB 接口供电。在正式组装前,建议利用项目提供的 URDF 文件在 Gazebo 或 Rviz 中进行仿真测试,验证运动学、碰撞检测及路径规划。
常见问题排查
- 舵机无响应:检查电源供电是否充足,确认舵机 ID 设置是否正确。
- 装配过紧:使用 Gauge_tight_1.STL 检查间隙,必要时调整打印尺寸。
- 同步误差大:优化通信延迟补偿算法,检查 USB 线缆质量。
该项目的模块化设计便于后续扩展,无论是结合 ROS 进行教育科研,还是添加定制末端执行器用于工业应用,都能找到相应的解决方案。

