日期
02/07
2024
咨询
  • QQ扫一扫

  • Vision小助手
    (CMVU)

3D视觉引导原理&3D面扫结构光相机
收藏
2024-02-07 18:51:43来源: 中国机器视觉网

什么是视觉引导?视觉引导=定位+引导

定位:视觉系统定位到引导物体。引导:视觉系统引导机械手按需要的轨迹实现一定的动作流程。在工业中,视觉引导应用广泛,包括但不局限于自动化视觉检测、机器人视觉引导。

视觉引导的组成部分

手眼标定:手眼标定分为两种Eye-in-Hand方式和Eye-to-Hand。图像采集与处理:视觉引导系统中的相机选择和布局,以及图像采集后的预处理步骤,如去噪、图像增强和校正。特征提取和匹配:从图像中提取特征并与预先设定的模板或目标进行匹配的过程,用于目标定位和识别。机械手控制:根据图像处理结果(计算出的绝对坐标或偏移量)告知机械手让机械手进行运动。

微信图片_20240123185455.jpg

什么是手眼标定?

手眼标定是为了得到相机坐标系与机器人坐标系之间的位姿关系,包括两种:eye in hand (相机安装在机械臂末端)、eye to hand (相机安装在机械臂外侧)。

微信截图_20240123185507.jpg

根据Eye-in-Hand方式和Eye-to-Hand方式的不同,标定方法稍有不同,但最终是把被测物相对于相机的坐标转换成被测物相对于机械手坐标系的坐标。

眼在手上-eye in hand

假设我们有一个相机坐标系 C,其中相机的位置和方向可以由齐次变换矩阵 Tcam 表示。假设手部坐标系H 相对于相机坐标系的位置和方向可以由齐次变换矩阵 Thand 表示。我们的目标是通过观察手上的特征点,计算出相机在手上的位置和方向。

假设手上的一个特征点在相机坐标系下的坐标是[X,Y,Z,1]T,在图像上的坐标是[u,v,1]T。这个特征点的在相机坐标系下的坐标可以通过相机内参矩阵 K 进行投影:

微信图片_20240123185511.jpg

其中,s 是尺度因子。将上述方程展开并化简,我们可以得到:

微信图片_20240123185513.jpg

通过求解上述方程,我们可以得到相机在手上的变换 Tcam·Thand。通常,这个问题是非线性的,需要使用数值优化方法来找到最优解。

眼在手外-eye to hand

假设我们有一组特征点集合,每个特征点在相机坐标系下的坐标为 [Xi,Yi,Zi,1]T,在图像上的坐标为 [ui,vi,1]T。

我们可以使用相机内参矩阵 K 进行投影,得到:

微信图片_20240123185516.jpg

其中,Si是尺度因子。将上述方程表示成矩阵形式:

微信图片_20240123185518.jpg

其中,Pi 是投影矩阵Pi = K · Tcam。通过多个特征点的观测,我们可以形成一个方程组:A·x=0。其中,A 是一个由每个特征点对应的投影矩阵 Pi构成的矩阵,x是一个列向量,包含相机在手外的位姿参数的元素。通常,我们使用SVD (奇异值分解)等方法来解这个线性方程组,从而得到相机在手外的位姿。

机械手旋转角

不同表示方式 :旋转的表示方式,可以大致分为RPY角,欧拉角,四元数和轴角。

· RPY角

首先解释字母:R:Roll   横滚  、P:pitch  俯仰、Y:Yaw    偏航。从字母的顺序就可以知道旋转的次序:首先绕着x轴转,再绕着y轴转,最后绕着z 轴转。但是需要注意的是RPY角中的旋转都是绕着最开始的坐标系旋转的,这是与欧拉角不同的地方。

· 欧拉角

欧拉角和RPY角很像,但是其旋转都是绕着旋转后的坐标系转的,而且旋转的次序是先z-y-x。先绕着开始的坐标系转z,再绕着旋转后的坐标系转y。经过这样旋转后,欧拉角旋转后的姿态和RPY角旋转后的姿态是一样的。

适用于3D视觉引导的面结构光3D相机Velociraptor

微信图片_20240123185537.jpg