Skip to content
 
 

Latest commit

 

History

28 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Seeed Studio SoARM 系列校准工具

Seeed Studio SoARM Series Calibration Tool

专为 Seeed Studio SoARM 10X 系列机械臂设计的 FTServo 舵机工厂校准与 LeRobot 校准工具包

A complete FTServo servo factory calibration and LeRobot-style calibration toolkit designed for Seeed Studio SoARM 10X series robotic arms

Platform Python License

功能特性 快速开始 使用文档 故障排除


功能特性

特性 说明
自动端口检测 智能识别 USB 串口,自动过滤虚拟设备
跨平台支持 Windows / Ubuntu / macOS 全平台兼容
网页校准台 浏览器内完成扫描、中位校准、单舵机控制和高级维护
自动扫描 自动检测 ID 1-20 范围内所有舵机
安全任务控制 操作超时自动结束,中位测试 30 秒后自动失能
LeRobot 校准 生成 LeRobot 格式的 JSON 校准文件,支持 LeRobot 匹配模式
校准文件中位运行 根据校准文件将机械臂移动到中位

快速开始

1 环境要求

  • Python >= 3.8
  • pyserial >= 3.5

2 安装依赖

推荐安装在 LeRobot 虚拟环境中,如需单独使用建议创建新的虚拟环境,避免污染系统 Python。

# 安装依赖
pip install -r requirements.txt

3 检查环境

python setup.py

看到 [OK] 环境检查通过 即可。

setup.py 同时是 pip 安装脚本。也可直接运行 pip install -e . 将项目安装为 Python 包,安装后会得到 roboctrl-web 命令用于启动校准台。

4 开始使用

# 启动本机网页校准台
python -m src.web.factory_calibration_web

# 不自动打开浏览器
python -m src.web.factory_calibration_web --no-browser

# 端口 8765 被占用时使用其他网页端口
python -m src.web.factory_calibration_web --port 8766

# 不连接硬件,预览界面和操作流程
python -m src.web.factory_calibration_web --demo

网页校准台启动后会自动打开 http://127.0.0.1:8765。如未自动打开,请在本机浏览器手动访问该地址。

同一块控制板一次只能由一个程序占用。启动网页校准台前,请关闭串口助手及其他正在访问同一 COM/USB 串口的程序。


使用文档

完整操作步骤、安全说明和 ID 修复流程见 用户手册.md

网页校准台工作区

  • 校准:扫描、中位校准、中位测试和全部失能
  • 单舵机:状态读取、限位检查、位置控制和力矩开关
  • 高级工具:ID 修改、角度限位修复、寄存器读写、波特率修改和恢复出厂
  • 校准文件:从动臂/领导臂文件管理、运行到中位、六关节数值编辑和整臂校准向导

校准向导

校准文件 > 校准向导 中选择机械臂类型和文件 ID 后开始校准。向导会先失能舵机并持续同步 ID 1-6 的当前位置和 EEPROM 中位偏移。依次记录六个关节中位,再逐个开始和停止范围记录。勾选 LeRobot 匹配 选项后,向导会先将舵机 Homing Offset 清零,确保生成的 homing_offset 天然落在硬件范围内,文件可直接用于 LeRobot。


串口配置

所有工具使用 src/port_utils.py 进行智能端口检测:

优先级排序:
┌─────────────────────────────────────────────────────────┐
│ macOS: cu.usbserial → cu.usbmodem → cu.* → tty.*      │
│ Linux: ttyUSB → ttyACM → others                        │
│ Windows: COM1 → COM2 → ... (按编号)                    │
└─────────────────────────────────────────────────────────┘

自动过滤:
┌─────────────────────────────────────────────────────────┐
│ ❌ DEBUG      (调试端口)                                 │
│ ❌ BLUETOOTH  (蓝牙设备)                                 │
│ ❌ RFCOMM     (蓝牙 RFCOMM)                              │
│ ❌ INCOMING   (传入连接)                                 │
│ ❌ ttyS*      (Linux 虚拟串口)                           │
└─────────────────────────────────────────────────────────┘

常见问题

Q: 提示串口被占用,或任务长时间没有结束?

A: 先停止当前任务并关闭网页校准台、串口助手等可能占用该 COM 口的程序,再重新启动网页校准台。仍未释放时,在任务管理器中结束残留的项目 Python 进程,然后重新插拔控制板。不要同时启动多个网页校准台实例。

Q: 修改 ID 后页面为什么仍显示原 ID?

A: ID 已写入舵机,但页面保留的是上一次扫描结果。点击黄色提醒中的 立即扫描,或左侧串口区域常驻的 立即扫描,成功扫描后列表才会更新。

Q: 舵机可以读取状态和开关力矩,但无法移动?

A: 点击 读取状态,检查单舵机卡片上的"限位"。限位跨度过小时,页面会标记 限位异常 并禁用移动。失能舵机后手动移动到两个机械端点并记录位置,再到 高级工具 > 角度限位 写入真实最小值和最大值。

Q: 网页打不开?

A: 确认启动终端仍在运行,并访问 http://127.0.0.1:8765。如果 8765 被占用:python -m src.web.factory_calibration_web --port 8766,然后访问 http://127.0.0.1:8766

Q: Ubuntu 提示串口权限不足?

A: sudo usermod -a -G dialout $USER,重新登录后再运行工具。

Q: 可以读取 ID 6 状态,但夹爪不移动?

A: 检查 ID 6 卡片显示的角度限位。如果最小值和最大值几乎相同,说明机械范围采集时夹爪没有被移动。按照"高级工具 > 角度限位"的步骤重新采集。


系统要求

项目 要求
🐍 Python 3.8 或更高版本
🔌 pyserial >= 3.5

项目结构

Seeed_RoboController/
├── src/                           # 源代码
│   ├── port_utils.py              # 串口工具模块
│   ├── calibration_manager.py     # LeRobot 校准文件管理
│   ├── tools/                     # 后台工具脚本
│   │   ├── scan_id.py             # 舵机 ID 扫描
│   │   ├── run_calibration_middle.py  # 校准文件中位运行
│   │   ├── servo_center_test.py   # 中位测试
│   │   ├── servo_disable.py       # 舵机失能
│   │   ├── servo_quick_calibration.py  # 快速校准
│   │   └── servo_web_command.py   # 网页端结构化舵机命令
│   └── web/                       # 网页校准台
│       ├── factory_calibration_web.py   # Web 服务与任务管理
│       ├── calibration_store.py         # 校准文件存储模块
│       └── static/                # 网页界面资源
│           ├── index.html
│           ├── app.js
│           └── app.css
├── scservo_sdk/                   # SCServo SDK
├── setup.py                       # 环境检查 + pip 安装脚本
├── requirements.txt               # 依赖清单
├── 用户手册.md                     # 详细使用手册
├── README.md                      # 项目文档
└── LICENSE                        # MIT 许可证

许可证

本项目采用 MIT 许可证开源。


如有问题,请提交 Issue

Built with ❤️ for the SoARM 10X community

Powered by Seeed Studio

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages