外观
教程github.com7 天前
手眼标定与多传感器时空同步实操手册
在具身智能数据采集(VLA / Diffusion Policy)和视觉抓取(MoveIt 2 / GraspNet)中,80% 的真机抓取失败并非源于算法精度不够,而是源于相机光学坐标系与机械臂基座/末端坐标系之间的外参偏差(超过 5mm 即可导致精细插拔或夹取失败)。
1. 两种标定构型与方程定义
text
【构型 A:Eye-in-Hand(眼在手上 / 腕部相机)】 【构型 B:Eye-to-Hand(眼在手外 / 头部或第三视角固定相机)】
相机固联在机械臂末端法兰 (link6 / hand) 上, 相机固定在桌面支架或机器人头部/胸部,
标定板固定在桌面上不动。 标定板固联在机械臂夹爪末端随机械臂运动。
求解目标:T_{gripper}^{camera} (X) 求解目标:T_{base}^{camera} (X)
核心方程:A_i * X = X * B_i 核心方程:A_i * X = Z * B_i黄金避坑法则:永远核对 camera_color_optical_frame
无论是 RealSense D435i/D405 还是 Stereolabs ZED 2i,图像像素 (u, v) 与深度值 d 反投影出的 3D 点 (X, Y, Z) 均定义在 光学坐标系(*_optical_frame:Z 轴朝前指代景深、X 轴朝右、Y 轴朝下),而不是外壳连杆坐标系(camera_link:X 轴朝前、Y 轴朝左、Z 轴朝上)。标定节点中传入的 tracking_base_frame 必须填 camera_color_optical_frame。
2. 基于 ROS 2 Humble + AprilTag 的标准标定流程
2.1 启动相机与 AprilTag 检测节点
bash
## 1. 启动 RealSense 相机并开启深度对齐到彩色图
ros2 launch realsense2_camera rs_launch.py \
align_depth.enable:=true \
pointcloud.enable:=true \
rgb_camera.profile:=1280x720x30
## 2. 启动 AprilTag 36h11 标定板位姿解算节点(请用游标卡尺实测打印出来的黑色方框边长 size!)
ros2 run apriltag_ros apriltag_node --ros-args \
-r image_rect:=/camera/camera/color/image_raw \
-r camera_info:=/camera/camera/color/camera_info \
-p family:=36h11 \
-p size:=0.0502.2 采样 18–25 组非退化姿态并求解蔡氏方程(Tsai-Lenz / Daniilidis)
采集姿态时必须覆盖绕 X、Y、Z 三个轴的充分旋转(角度变化 >= 25°)。若机械臂只做纯平移运动,旋转矩阵 R_A 为单位阵,手眼标定方程会严重病态退化!
python
import cv2
import numpy as np
## R_gripper2base, t_gripper2base: 从机械臂正运动学 /tf (base_link -> link6) 读取的 N 组位姿
## R_target2cam, t_target2cam: 从 AprilTag (camera_color_optical_frame -> tag_0) 读取的 N 组位姿
R_cam2gripper, t_cam2gripper = cv2.calibrateHandEye(
R_gripper2base,
t_gripper2base,
R_target2cam,
t_target2cam,
method=cv2.CALIB_HAND_EYE_PARK,
)
print("Rotation Matrix:\n", R_cam2gripper)
print("Translation Vector (m):\n", t_cam2gripper.T)3. 标定精度闭环验收(重投影与点触测试)
切勿跑完标定直接存盘!必须执行以下两步定量验收:
- 变换一致性残差检验:计算所有采样点下标定板在
base_link系下的坐标标准差 $\sigma_{xyz}$,合格标准为 $\sigma_{xyz} < 2.0\text{ mm}$。 - 探针物理点触验证:令机械臂夹爪闭合持握一根尖头马克笔,点击图像中标定板中心角点,将反投影三维点通过标定矩阵转换至
base_link,控制机械臂缓慢移动至该点上方5 mm处,目视核对笔尖与角点水平偏差是否在±2 mm以内。
来源
本页事实对应的公开页面,以原文为准。
- IntelRealSense ROS 2 Wrapper访问 2026-10-21
- MoveIt 2 Hand-Eye Calibration Tutorial访问 2026-10-21