Calibration
标定流程
预计 1–2 小时:机械标定(臂长测量与配置)、回零标定、视觉标定(棋盘格、像素到毫米映射)与精度测试。
系统标定流程
预计用时:1–2 小时 | 重要程度:★★★★★
⚠️ 为什么要标定? 标定确保机器人的实际运动与软件指令一致,直接影响定位精度和系统可靠性。
1. 机械标定
1.1 臂长测量
用数显卡尺精确测量臂长(球头中心距):
用卡尺测量臂长
| 参数 | 标准值 | 实测值 | 配置文件 |
|---|---|---|---|
| 上臂长度(L) | 150 mm | ______ mm | robotGeometry.cpp |
| 下臂长度(l) | 281 mm | ______ mm | robotGeometry.cpp |
| 末端执行器偏移 | 50 mm | ______ mm | config.h |
1.2 修改配置文件
在 esp32/robotGeometry.cpp 中填入实测值:
// 文件:esp32/robotGeometry.cpp(约第 10 行)
float L = 150.0; // 上臂长度(改为实测值)
float l = 281.0; // 下臂长度(改为实测值)
// 文件:esp32/config.h(约第 15 行)
#define END_EFFECTOR_OFFSET 50.0 // 末端执行器偏移
提示: 修改后需要重新把固件烧录到 ESP32。
2. 回零标定
2.1 限位开关测试
如果使用限位开关,确保安装正确并完成测试:
回零位置示意图
-
手动把机械臂移动到限位开关位置
-
观察限位开关指示灯是否触发
-
通过串口发送
G28测试自动回零
2.2 调整 HOME_STEPS
如果没有限位开关,需要手动设置回零步数:
// 文件:esp32/config.h
#define X_HOME_STEPS 0 // X 限位到初始位置的步数
#define Y_HOME_STEPS 0 // Y 限位到初始位置的步数
#define Z_HOME_STEPS 0 // Z 限位到初始位置的步数
// 调整方法:
// 1. 手动把机械臂移到最高点
// 2. 记录此位置的步数
// 3. 设为 HOME_STEPS
2.3 验证回零
# 发送回零指令
G28
# 观察:
# - 3 个电机应同步转动
# - 末端执行器升到最高点
# - 到位后停止
✅ 回零成功的标志:
-
每次回零后末端执行器位置一致
-
回零后发送
G0 X0 Y0 Z-200能准确到达中心
3. 视觉标定
3.1 摄像头安装
重要: 摄像头位置一旦固定就不要再动!移动后需要重新标定。
推荐的摄像头位置:
-
高度:机器人底座上方 400–500mm
-
角度:垂直向下(或略微倾斜)
-
视野:覆盖整个工作空间(Ø200mm)
3.2 棋盘格标定(可选)
使用 OpenCV 棋盘格标定法校正摄像头畸变:
棋盘格标定过程
# 运行标定程序(如项目中包含)
python calibrate_camera.py
# 按提示从不同角度拍摄棋盘格
# 生成 camera_matrix.npy 与 dist_coeffs.npy
3.3 像素到毫米的映射
建立像素坐标与机械臂坐标之间的映射:
坐标映射示意图
# 映射方法:
# 1. 在工作空间标记已知物理坐标的点(如 4 个角)
# 2. 记录这些点在图像中的像素坐标
# 3. 用透视变换矩阵建立映射
# 示例代码(Python):
import cv2
import numpy as np
# 图像坐标(像素)
pts_src = np.array([[100, 100], [540, 100], [540, 380], [100, 380]])
# 物理坐标(毫米)
pts_dst = np.array([[-100, 100], [100, 100], [100, -100], [-100, -100]])
# 计算透视变换矩阵
h, status = cv2.findHomography(pts_src, pts_dst)
# 保存矩阵
np.save('homography_matrix.npy', h)
3.4 映射精度验证
-
在工作空间的已知位置放一个物体(如 X=50, Y=0)
-
通过视觉系统识别物体坐标
-
比较识别坐标与实际坐标,误差应在允许范围内
4. 精度测试
4.1 重复定位精度测试
测试机械臂多次到达同一位置的一致性:
# 测试脚本
for i in range(10):
send_gcode("G28") # 回零
send_gcode("G0 X0 Y0 Z-200") # 移到测试点
time.sleep(1)
# 手动测量实际位置,记录偏差
# 目标精度:±0.5mm
4.2 工作空间边界验证
测试工作空间边界是否与理论值一致:
# 测试边界点
G0 X100 Y0 Z-200
G0 X-100 Y0 Z-200
G0 X0 Y100 Z-200
G0 X0 Y-100 Z-200
# 检查能否到达、是否超限
4.3 精度评估标准
| 测试项 | 目标精度 | 测试结果 |
|---|---|---|
| 重复定位精度 | ±0.5 mm | ______ mm |
| 绝对定位精度 | ±1.0 mm | ______ mm |
| 视觉坐标误差 | ||
| ✅ 标定完成! | ||
| 所有测试通过后,系统即可投入使用。 |
最后更新 21 Sep 2026