首页 > 其他分享 >手眼标定原理

手眼标定原理

时间:2023-08-19 20:14:25浏览次数:52  
标签:target gripper 标定 base cam 原理 坐标系 手眼

手眼标定原理

Write By Champrin From 2022-11-03 To 2022-11-04.
GUET Evolution Team Visual Group
参考资料:
外文教程
5.2-手眼标定(外参标定)

要实现由 图像目标点 到 空间实际物体上抓取点 之间的坐标转换,就必须拥有 相机 与 机械臂 之间的位姿转换关系,即手眼关系,因此这种标定就称之为手眼标定。

根据相机固定的地方不同,标定的转换关系也不同,有两种:如果 相机 与 机械臂末端 固定在一起,就称之为“眼在手(eye in hand)”;如果 相机 与 机械臂以外 固定在一起,则称之为“眼在外(eye to hand)”。

总的来说:任意类型的相机标定一定是在标定一个相对不变的量,不会去标定一个变化的量,这会在两种手眼标定所标定的变换矩阵有所体现。

坐标系名称:

  • base:机械臂基地坐标系
  • gripper:机械臂末端坐标系(夹爪坐标系)
  • cam:相机坐标系
  • target:标定板坐标系(世界坐标系)

眼在手外(Eye To Hand)及其推导

相机固定在机械臂以外的地方,因此 相机 与 机械臂基底 在整个机械臂抓取过程中的相对位置保持不变,手眼标定求解的量为 相机坐标系 相对于 机械臂基底坐标系 的变换矩阵。

这种关系下,几次运动,标定板 和 机械臂末端 的位姿关系始终不变也就是 标定板坐标系 相对于 机械臂末端坐标系 的变换矩阵不变,可以以此建立方程组求解标定结果。

求解目标:

相机坐标系 相对于 机械臂基底坐标系 的变换矩阵 \({^{base}_{cam}T}\)。

实现方法:

  1. 把标定板固定在机械臂末端
  2. 使用相机拍摄不同机械臂姿态下的标定板图片\(n\)张\((n>3)\),建议\(n>10\)

已知对每张图片有:

\[{^{gripper}_{target}T} = {^{gripper}_{base}T}{^{base}_{cam}T}{^{cam}_{target}T} \]

  • \({^{gripper}_{target}T}\):未知量.由于标定板固定在机械臂末端,所以对每组图片,该变换矩阵都相同
  • \({^{gripper}_{base}T}\):可由机械臂末端位姿参数求得
  • \({^{cam}_{target}T}\):可由通过拍摄的标定板图片直接求解

设标定图为第 \(1 - n\) 张,那么有:

\[ {^{gripper}_{target}T^{(1)}} = {^{gripper}_{target}T^{(2)}} = \cdots = {^{gripper}_{target}T^{(n)}} \]

\[ {^{gripper}_{base}T^{(1)}} \, {^{base}_{cam}T} \, {^{cam}_{target}T^{(1)}} = {^{gripper}_{base}T^{(2)}} \, {^{base}_{cam}T} \, {^{cam}_{target}T^{(2)}} \\ {^{gripper}_{base}T^{(2)}} \, {^{base}_{cam}T} \, {^{cam}_{target}T^{(2)}} = {^{gripper}_{base}T^{(3)}} \, {^{base}_{cam}T} \, {^{cam}_{target}T^{(3)}} \\ \cdots \\ {^{gripper}_{base}T^{(n - 1)}} \, {^{base}_{cam}T} \, {^{cam}_{target}T^{(n - 1)}} = {^{gripper}_{base}T^{(n)}} \, {^{base}_{cam}T} \, {^{cam}_{target}T^{(n)}} \\ \]

整理得:

\[ {(^{gripper}_{base}T^{(2)})^{(-1)}} \, {^{gripper}_{base}T^{(1)}} \, {^{base}_{cam}T} = {^{base}_{cam}T} \, {^{cam}_{target}T^{(2)}} \, {(^{cam}_{target}T^{(1)})^{(-1)}} \\ {(^{gripper}_{base}T^{(3)})^{(-1)}} \, {^{gripper}_{base}T^{(2)}} \, {^{base}_{cam}T} = {^{base}_{cam}T} \, {^{cam}_{target}T^{(3)}} \, {(^{cam}_{target}T^{(2)})^{(-1)}} \\ \cdots \\ {(^{gripper}_{base}T^{(n)})^{(-1)}} \, {^{gripper}_{base}T^{(n - 1)}} \, {^{base}_{cam}T} = {^{base}_{cam}T} \, {^{cam}_{target}T^{(n)}} \, {(^{cam}_{target}T^{(n - 1)})^{(-1)}} \\ \]

令:

\[\begin{cases} {A_i} = {(^{gripper}_{base}T^{(i + 1)})^{(-1)}} \, {^{gripper}_{base}T^{(i)}} \\ {X} = {^{base}_{cam}T} \\ {B_i} = {^{cam}_{target}T^{(i + 1)}} \, {(^{cam}_{target}T^{(i)})^{(-1)}} \end{cases} \, , \, i \in [1, n - 1] \]

得到 \(n\) 个方程组,标定结果转为求解这 \(n\) 个方程组:

\[ {A_i} \, {X} = {X} {B_i} \, , \, i \in [1, n - 1] \]

眼在手上(Eye In Hand)及其推导

相机固定在机械臂末端,因此 相机 与 机械臂末端 在整个机械臂抓取过程中的相对位置保持不变,手眼标定求解的量为 相机坐标系 相对于 机械臂末端坐标系 的变换矩阵。

这种关系下,几次运动,标定板 和 机械臂基底 的相对位置始终不变,也就是 标定板坐标系 相对于 机械臂基底坐标系 的变换矩阵不变,可以以此建立方程组求解标定结果。

求解目标:

相机坐标系 相对于 机械臂末端坐标系 的变换矩阵 \({^{gripper}_{cam}T}\)

实现方法:

  1. 把标定板放到固定位置不动
  2. 移动机械臂末端,从不同角度拍摄 \(n\) 张标定板图片

已知对每张图片有:

\[ {^{base}_{target}T} = {^{base}_{gripper}T} \, {^{gripper}_{cam}T} \, {^{cam}_{target}T} \]

  • \({^{base}_{target}T}\):未知量,但是由于标定板全程固定在一个位置不动,所以对每组图片,该变换矩阵都相同,所以以此建立方程
    • 因此要保证在标定时,机械臂基底与标定板的相对位置不变
  • \({^{base}_{gripper}T}\):可由机械臂末端位姿参数求得
  • \({^{cam}_{target}M}\):可由通过拍摄的标定板图片直接求解

设标定图为第 \(1 - n\) 张,那么有:

\[ {^{base}_{target}T^{(1)}} = {^{base}_{target}T^{(2)}} = \cdots = {^{base}_{target}T^{(n)}} \]

\[ {^{base}_{gripper}T^{(1)}} \, {^{gripper}_{cam}T} \, {^{cam}_{target}T^{(1)}} = {^{base}_{gripper}T^{(2)}} \, {^{gripper}_{cam}T} \, {^{cam}_{target}T^{(2)}} \\ {^{base}_{gripper}T^{(2)}} \, {^{gripper}_{cam}T} \, {^{cam}_{target}T^{(2)}} = {^{base}_{gripper}T^{(3)}} \, {^{gripper}_{cam}T} \, {^{cam}_{target}T^{(3)}} \\ \cdots \\ {^{base}_{gripper}T^{(n - 1)}} \, {^{gripper}_{cam}T} \, {^{cam}_{target}T^{(n - 1)}} = {^{base}_{gripper}T^{(n)}} \, {^{gripper}_{cam}T} \, {^{cam}_{target}T^{(n)}} \\ \]

整理得:

\[ {(^{base}_{gripper}T^{(2)})^{(-1)}} \, {^{base}_{gripper}T^{(1)}} \, {^{gripper}_{cam}T} = {^{gripper}_{cam}T} \, {^{cam}_{target}T^{(2)}} \, {(^{cam}_{target}T^{(1)})^{(-1)}} \\ {(^{base}_{gripper}T^{(3)})^{(-1)}} \, {^{base}_{gripper}T^{(2)}} \, {^{gripper}_{cam}T} = {^{gripper}_{cam}T} \, {^{cam}_{target}T^{(3)}} \, {(^{cam}_{target}T^{(2)})^{(-1)}} \\ \cdots \\ {(^{base}_{gripper}T^{(n)})^{(-1)}} \, {^{base}_{gripper}T^{(n - 1)}} \, {^{gripper}_{cam}T} = {^{gripper}_{cam}T} \, {^{cam}_{target}T^{(n)}} \, {(^{cam}_{target}T^{(n - 1)})^{(-1)}} \\ \]

令:

\[\begin{cases} {A_i} = {(^{base}_{gripper}T^{(i + 1)})^{(-1)}} \, {^{base}_{gripper}T^{(i)}} \\ {X} = {^{gripper}_{cam}T} \\ {B_i} = {^{cam}_{target}T^{(i + 1)}} \, {(^{cam}_{target}T^{(i)})^{(-1)}} \\ \end{cases} \, , \, i \in [1, n - 1] \]

得到 \(n\) 个方程组,标定结果转为求解这 \(n\) 个方程组:

\[ {A_i} \, {X} = {X} {B_i} \, , \, i \in [1, n - 1] \]

也就是说,无论是眼在手外还是手在眼上,最终都是以 \(n - 1\) 个方程组(若标定图有 \(n\) 张),去求解 \(AX=XB\) 中的 \(X\) 即为手眼标定结果。

\(X\) 即为我们要求得的变换矩阵,里面有6个线性无关的变量;其中旋转 3 个自由度,平移 3 个自由度。

求解 \(AX=XB\)

OpenCV 4.1.0 及以上的版本,带有了求解 \(AX=XB\) 的方法——cv::calibrateHandEye(),调用方法求解即可。

标签:target,gripper,标定,base,cam,原理,坐标系,手眼
From: https://www.cnblogs.com/champrin/p/17642989.html

相关文章

  • FTP协议的历史及其工作原理
    FTP(文件传输协议)是一个非常古老的网络协议,它的历史可以追溯到1971年。当时,FTP最早是在ARPANET中使用的,跑在ARPANET的传输层协议NCP之上。而TCP/IP协议此时还未出现。直到1980年,RFC765才首次定义了基于TCP/IP的FTP操作标准。1985年,RFC959公布了FTP的第二个版本,这个版本比之前有了更......
  • 计算机组成原理
    部分笔记 1.计算机的分类➢模拟计算机:是由模拟运算器件构成,其变量由连续量来表示,运算过程也是连续的;➢电子数字计算机:则是由逻辑电子器件构成其变量为开关量(离散的数字量),采用数字式按位运算,运算模式是离散式的。二者的主要区别比较内容 数字计算机 ......
  • 【8月摸鱼计划】剪映的底层原理
    剪映是一款视频编辑软件,其底层原理处理和音频处理等多个方面。1.视频处理:剪映的底层实现了视频的导入、裁剪、拼接、调整速度、添加特效、应用滤镜等功能。在视频处理过程中,剪映会对视频进行解码、帧间差分、帧率控制、编码等操作,以达到用户所需的编辑效果。2.图像处理:剪映提供......
  • api接口的使用原理是什么?
    随着互联网的发展和不同系统之间的交互越来越频繁,API接口的使用已经成为软件开发和集成中不可或缺的一部分。API接口的使用原理是通过预定义的接口规范,软件系统可以调用或提供API接口的服务,来实现不同系统之间的数据传输和功能调用。本文将详细介绍API接口的使用原理,包括API接口的......
  • api接口的使用原理是什么?
    ​随着互联网的发展和不同系统之间的交互越来越频繁,API接口的使用已经成为软件开发和集成中不可或缺的一部分。API接口的使用原理是通过预定义的接口规范,软件系统可以调用或提供API接口的服务,来实现不同系统之间的数据传输和功能调用。本文将详细介绍API接口的使用原理,包括API接......
  • 网络原理之TCP
    TCP(TransmissionControlProtocol)传输控制协议:对数据的传输进行详细的控制TCP协议段格式TCP报文=TCP报头+TCP载荷选项之前的长度固定20个字节TCP并不像UDP长度固定8个字节,长度不固定首部长度:描述Tcp报头具体有多长 选项:相当于对TCP报文的一些属性进行解释说明TCP报头......
  • SSL原理、生成SSL密钥对、Nginx配置SSL
    1SSL原理 2生成ssl密钥对2.1进入指定目录并生成私钥文件[root@jimmylinux-001~]#cd/usr/local/nginx/conf[root@jimmylinux-001conf]#opensslgenrsa-des3-outtmp.key2048GeneratingRSAprivatekey,2048bitlongmodulus..............................................
  • 张正友的相机标定论文Flexible camera calibration by viewing a plane from unknown
    张正友的相机标定论文Flexiblecameracalibrationbyviewingaplanefromunknownorientations的翻译:翻译的pdf版本为:http://pan.baidu.com/s/1pKshsPP翻译搜索复制......
  • 振弦采集仪模拟信号转数字信号的工作原理
    三河凡科科技学习飞讯振弦采集仪模拟信号转数字信号的工作原理振弦采集仪是一种非常重要的测试仪器,其主要作用是将物理系统中的震动信号转换成数字信号,并且进行进一步的信号处理和分析。本文将详细介绍振弦采集仪模拟信号转数字信号的工作原理。 1.模拟信号采集振弦采集仪......
  • 降噪耳機原理介紹
    1.降噪原理:主要是主动降噪在起作用。主动降噪,简称ANC(英文activenoisecancelling),并不是把噪音给消除掉,而是通过抵消的方式实现降噪。当降噪耳机的麦克风监测到检测到外部噪音,通过芯片产生一个与噪音反相的白噪音的方式,使两者叠加,从而降低噪音的波幅。简单理解就是,如果一个数字为1......