Dobot magician机械臂抓取实战---手眼标定(6)

一、手眼标定

        在做视觉机械臂抓取的时候我们需要进行一步非常重要的步骤,那就是手眼标定,那么手眼标定的主要目的就是求解末端坐标系和相机坐标系之间的坐标变换。

        手眼标定有两种,一个是眼在手上(Eye-in-hand),另一个是眼在手外(Eye-to-hand)。

1、眼在手上(Eye-in-hand)

 保持标定板不动,控制机械臂使相机拍摄不同机械臂位姿下的棋盘格。

(1)定义几个坐标系:P代表标定板坐标系,C代表相机坐标系,e代表机械臂末端坐标系,b代表基坐标系。

_{e}^{c}M = _{p}^{c}M _{b}^{p}M _{e}^{b}M

_{b}^{p}M = _{p}^{c}M^{-1}* _{e}^{c}M *_{e}^{b}M^{-1}

在拍摄n副图片后,棋盘格和机械臂坐标系关系不变

_{p}^{c}M_{1}^{-1}*_{b}^{p}M *_{e}^{b}M_{1}^{-1} = _{p}^{c}M_{2}^{-1}* _{e}^{c}M *_{e}^{b}M^{-1}_{2}

A = _{p}^{c}M_{n} *_{p}^{c} M^{-1}_{n-1}

B = _{e}^{b}M_{n} ^{-1}*_{e}^{b} M_{n-1}

X = _{e}^{c}M

所以上式可以写为AX = BX

2、眼在手外(Eye-to-hand)

标定板固定在机械臂末端执行器上不动,改变机械臂位姿,从不同角度拍摄。

_{e}^{p}M = _{p}^{c}M* _{e}^{p}M* _{b}^{e}M

由于标定板相对于机械臂末端是不变的

_{e}^{p}M = _{p}^{c}M^{-1}*_{b}^{c}M*_{b}^{e}M^{-1}

_{p}^{c}M_{1}^{-1}* _{e}^{p}M* _{b}^{e}M_{1}^{-1} =_{p}^{c}M_{2}^{-1}*_{b}^{c}M*_{b}^{e}M^{-1}_{2}

根据上面可得AX = BX

二、AX = BX 的求解(Tsai-Lenz算法

1、罗德里格斯公式

罗德里格旋转公式,是描述空间中向量旋转的公式。

R = \left ( I +\left ( 1-\cos \left ( \theta \right ) \right )K^{2}+\sin \left ( \theta \right )K \right )

推导过程网上有很多,其中K为旋转轴,\theta是旋转角度,R为旋转矩阵

2、范数

        范数(Norm)是一个数学概念,用于衡量向量或矩阵的大小。在线性代数和函数空间的理论中,范数是一种度量向量或矩阵的长度或大小的方法。

        在实数向量空间中,对于一个n维向量x=(x₁, x₂, ..., xₙ),它的范数通常表示为\left \| x \right \|,它可以定义为:

  1. L1范数(曼哈顿范数或绝对值范数): \left \|x \right \|_{1} = \left | x_{1} \right |+\left | x_{2} \right |+ ...+\left | x_{n} \right |

  2. L2范数(欧几里得范数或二范数): \left \| x \right \|_{2} = \sqrt{x_{1}^{2}+x_{2}^{2}+...x_{n}^{2}}

  3. Lp范数(p-范数): \left \| x_{p} \right \|=\begin{pmatrix} \left | x_{1} \right |P+\left | x_{2} \right |P+...+\left | x_{n} \right |P \end{pmatrix}\Lambda (\frac{1}{P}) (其中p是一个正实数,p ≥ 1)

  4. 无穷范数(最大值范数): ∥x∥ᵢₙᶠ = max(|x₁|, |x₂|, ..., |xₙ|)

        对于矩阵来说,通常采用Frobenius范数,它定义为矩阵所有元素的平方和的平方根。

        Frobenius范数: ∥A∥ₖ = √(ΣᵢΣⱼ |aᵢⱼ|²) (其中aᵢⱼ表示矩阵A的第i行第j列的元素)

        所以通俗的说,范数就是为了方便度量而定义出的一个概念,主要就是面对复杂空间和多维数组时,选取出一个统一的量化标准,以方便度量和比较。请务必记住,范数是人为定义的一种度量方法。

3、反对称矩阵

        反对称矩阵(Skew-Symmetric Matrix),也称为斜对称矩阵或反对阵,是一种特殊类型的方阵(即行数和列数相等的矩阵)。在一个反对称矩阵中,对角线上的元素必须都为零,而非对角线上的元素满足一个特殊的性质:第i行第j列的元素等于第j行第i列元素的相反数。

        形式化地,对于一个n阶的反对称矩阵A,其特征是:

        1、对角线元素:aᵢᵢ = 0(其中1 ≤ i ≤ n)

        2、非对角线元素:aᵢⱼ = -aⱼᵢ(其中1 ≤ i, j ≤ n)

        例如,一个3阶的反对称矩阵可以表示为:

        A = \begin{vmatrix} 0 & a_{12} & a_{13}\\ -a_{12}& 0 & a_{23}\\ - a_{13}& -a_{23} & 0 \end{vmatrix}

        反对称矩阵的一个重要性质是,它的特征值(Eigenvalues)要么为0,要么成对出现且为共轭复数。换句话说,所有的特征值的实部都是0,而虚部可能不为零。

4、求解

  定义H_{gj}为机械臂末端执行器在不同位姿下之间的相对位姿之间的变换关系;H_{cj}为相机坐标系之间的相对位姿的变换关系,H_{cg}为相机坐标系到末端执行器之间的变换关系。

那么AX = BX \Rightarrow H_{gj}H_{cg}=H_{cg}H_{cj}

\bigl(\begin{smallmatrix} R_{gj} &T_{gj} \\ 0 & 1 \end{smallmatrix}\bigr)\bigl(\begin{smallmatrix} R_{cg} & T_{cg}\\ 0& 1 \end{smallmatrix}\bigr) = \bigl(\begin{smallmatrix} R_{cg} &T_{cg} \\ 0& 1 \end{smallmatrix}\bigr)\bigl(\begin{smallmatrix} R_{cj} &T_{cj} \\ 0 & 1 \end{smallmatrix}\bigr)

上式进行展开得到\left\{\begin{matrix} R_{gj}R_{cg}= R_{cg}R_{cj}\\ \left ( R_{gj}-1 \right )T_{cg}=R_{cg}T_{cj}-T_{gj} \end{matrix}\right.\left\{\begin{matrix} P_{gj} = 2\sin \frac{\theta _{gj}}{2}N_{gj}\\ P_{cj} = 2\sin \frac{\theta _{cj}}{2}N_{cj} \end{matrix}\right.

利用罗德里格斯公式将旋转矩阵转化为旋转向量得到下面式子

r_{gj} = rod(R_{gj})

r_{cj} = rod(R_{cj})

将得到向量进行二范数和归一化

\theta _{gj} = \left \| r_{gj} \right \|_{2} (二范数)

N_{gj} = \frac{r_{gj}}{\theta gj}N_{gj} = \frac{r_{gj}}{\theta gj}(归一化)

\theta _{cj} = \left \| r_{cj} \right \|_{2}

N_{cj} = \frac{r_{cj}}{\theta cj}

使用罗德里格斯公式表示姿态变换

\left\{\begin{matrix} P_{gj} = 2\sin \frac{\theta _{gj}}{2}N_{gj}\\ P_{cj} = 2\sin \frac{\theta _{cj}}{2}N_{cj} \end{matrix}\right.

\left ( skew(P_{gj}+P_{cj}) \right )*P_{cg^{'}} = P_{cj}-P_{gj}

P_{cg}=\frac{2P_{cg^{'}}}{\sqrt{1+\left | P_{cg^{'}}\right |^{2}}}

R_{cg}=\begin{pmatrix} 1-\frac{\left | P_{cg} \right |^{2}}{2} \end{pmatrix}I+\frac{1}{2}\begin{pmatrix} P_{cg}P_{cg}^{T}+\sqrt{4-\left | P_{cg} \right |^{2}}skew(P_{cg}) \end{pmatrix}

(R_{gj}-I)T_{cg} = R_{cg}T^{cj}-T_{gj}

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
dobot机械臂抓取主要是通过改变机械臂的base坐标系(tool坐标系)来实现的。视觉机械臂可以安装摄像头来实现视觉识别,摄像头可以安装在机械臂上或周围环境上。为了确定摄像头和机械臂的位置坐标关系,需要进行手眼标定,并得到机械臂坐标系和摄像头坐标系之间的转换矩阵。 dobot机械臂抓取过程中,还涉及相机坐标系和图像坐标系之间的转换。图像坐标系的坐标原点是相机光轴与成像平面的交点,而相机坐标系和图像坐标系之间的转换可以使用转换矩阵实现。 相机的成像原理是通过光学系统将光线聚焦在感光元件上,感光元件将光线转换为电信号,然后进行图像处理和存储。这个过程通过摄像头来实现,可以获取到图像信息,从而进行抓取操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Dobot magician机械臂抓取实战---前言](https://blog.csdn.net/weixin_64037619/article/details/130691848)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Dobot magician机械臂抓取实战---手眼标定(1)](https://blog.csdn.net/weixin_64037619/article/details/131161932)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

没入&浅出

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值