手眼标定标定版到末端
时间: 2024-12-25 07:22:32 浏览: 5
### 手眼标定中的坐标转换
在手眼标定过程中,为了使机械臂能够精确到达由视觉系统识别的目标位置,必须建立从相机坐标系到机械臂基座坐标系之间的映射关系。具体而言,在处理标定板坐标向机械臂末端执行器坐标转化时,通常遵循如下流程:
#### 1. 获取标定点的世界坐标
通过已知尺寸的标准棋盘格或其他形式的标定物放置于场景内不同姿态下拍摄多张图片来获取这些点的空间位置数据[^1]。
```python
import cv2
import numpy as np
# 准备对象点, 如 (0,0,0), (1,0,0), (2,0,0) ....,(6,5,0)
objp = np.zeros((6*7,3), np.float32)
objp[:,:2] = np.mgrid[0:7,0:6].T.reshape(-1,2)
# 存储每幅图像的对象点和图像点
objpoints = [] # 3d point in real world space
imgpoints = [] # 2d points in image plane.
for fname in images:
img = cv2.imread(fname)
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret, corners = cv2.findChessboardCorners(gray, (7,6))
if ret == True:
objpoints.append(objp)
imgpoints.append(corners)
```
#### 2. 计算外参矩阵
利用OpenCV库函数`cv2.calibrateCamera()`计算内外参数以及畸变系数;对于每一组对应关系(即每次移动后的成像),求解出该时刻下的旋转和平移矢量R,t[]^[]。
#### 3. 转换至工具中心点(TCP)坐标系
一旦获得了上述信息,则可以通过齐次变换矩阵H将任意一点Pw从世界坐标系W投影到摄像机坐标系C中去,再进一步借助之前得到的手-眼相对位姿RT_eye_to_hand完成最终目标——把物体特征点表达为相对于TCP的位置描述[^2]。
\[ P_{tcp} = RT_{eye\_to\_hand}\cdot H\cdot P_w \]
其中\(P_{tcp}\)表示经过一系列转换后获得的机械臂末端坐标系下的坐标值。
阅读全文