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

四、奇异值分解求vb=0

1、奇异值分解

        奇异值分解(SVD):将一个矩阵分解为三个矩阵的乘积,对于一个m x n的矩阵A,SVD将其分解为:A = U\sum V^{T}(其中,U是m x m的正交矩阵,\sum是 m x n 的对角矩阵(除对角线上的元素为,其余元素都为0),V是 n x n的正交矩阵)。

\sum为对角元素的奇异值,U列向量为左奇异向量,V为右奇异向量。

·        特征值:给定一个方阵A,引入一个标量\lambda称其为矩阵A的特征值。

一道例题看懂奇异值分解:求矩阵A = \begin{bmatrix} 1 &0 &1 \\ 0 &1 &1 \\ 0 & 0 &0 \end{bmatrix}的奇异值分解。

B = A \cdot A^{T} = \begin{bmatrix} 1 & 0 &1 \\ 0 & 1 &1 \\ 1&1 &2 \end{bmatrix}

\begin{vmatrix} \lambda 1 -B \end{vmatrix} = \begin{bmatrix} \lambda -1 & 0 &-1 \\ 0& \lambda -1 &-1 \\ -1 &-1 & \lambda -2 \end{bmatrix}(其中\lambda为特征值,1为单位矩阵)。

利用行列式计算:\lambda \bigl(\begin{smallmatrix} \lambda -1 \end{smallmatrix}\bigr)\bigl(\begin{smallmatrix} \lambda -3 \end{smallmatrix}\bigr) = 0,求其特征值为:0,3,1

奇异值:大于0的特征值开根号。则奇异值为\sqrt{3},1

奇异值矩阵\sum = \begin{bmatrix} -\sqrt{3} &0 \\ 0& 1 \end{bmatrix}         \sum ^{-1} = \begin{bmatrix} \frac{1}{\sqrt{3}} & 0\\ 0 & 1 \end{bmatrix}

\lambda = 3时;\begin{bmatrix} \lambda 1 - B \end{bmatrix} = \begin{bmatrix} 2 &0 &-1 \\ 0 & 2 &-1 \\ -1 &-1 &-1 \end{bmatrix} \Rightarrow \begin{bmatrix} 1 &0 &-\frac{1}{2} \\ 0 & 1&-\frac{1}{2} \\ 0 & 0 & 0 \end{bmatrix}(这里化简运用到了行列式的行变换)

\lambda = 1时;\begin{bmatrix} \lambda 1 - B \end{bmatrix} = \begin{bmatrix} 0 &0 &-1 \\ 0 & 0 &-1 \\ -1 &-1 &-1 \end{bmatrix} \Rightarrow \begin{bmatrix} 1 &1&0 \\ 0 & 0&1 \\ 0 & 0 & 0 \end{bmatrix}

\lambda = 0时;\begin{bmatrix} \lambda 1 - B \end{bmatrix} = \begin{bmatrix} -1 &0 &-1 \\ 0 & -1 &-1 \\ -1 &-1 &-2 \end{bmatrix} \Rightarrow \begin{bmatrix} 1 &0&1\\ 0 & 1&1 \\ 0 & 0 & 0 \end{bmatrix}

则上面的特征向量(令X_{1}, X_{2},X_{3}乘以第一行的每一列使其=0,再乘以第二列可以推出下列式子):

\lambda = 3时;\xi_{1} = \begin{bmatrix} 1\\ 1 \\ 2 \end{bmatrix};

\lambda = 1时;\xi_{1} = \begin{bmatrix} 1\\- 1 \\ 0 \end{bmatrix};

\lambda = 0时;\xi_{1} = \begin{bmatrix} 1\\ 1 \\ -1 \end{bmatrix};

将上面得到的特征向量进行单位化(除以向量长度)

v_{1} = \frac{1}{\sqrt{1^{2}+1^{2}+2^{2}}}\begin{bmatrix} 1\\ 1\\ 2 \end{bmatrix} = \begin{bmatrix} \frac{1}{\sqrt{6}}\\ \frac{1}{\sqrt{6}}\\ \frac{2}{\sqrt{6}} \end{bmatrix}

v_{2} == \begin{bmatrix} \frac{1}{\sqrt{2}}\\ -\frac{1}{\sqrt{2}}\\ 0\end{bmatrix}

v_{3} = \begin{bmatrix} \frac{1}{\sqrt{3}}\\ \frac{1}{\sqrt{3}}\\ -\frac{1}{\sqrt{3}} \end{bmatrix}

v= \begin{bmatrix} \frac{1}{\sqrt{6}} & \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{3}} \\ \frac{1}{\sqrt{6}} & - \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{3}} \\ \frac{1}{\sqrt{6}} & 0 & -\frac{1}{\sqrt{3}} \end{bmatrix} = \begin{bmatrix} v_{1} :v_{2} \end{bmatrix}(奇异值有两个,所以取前两项)

则根据奇异值分解的公式得U_{1} = A v_{1}\sum^{-1} = \begin{bmatrix} 1 & 0 &1 \\ 0 &1 &1 \\ 0& 0 & 0 \end{bmatrix} \begin{bmatrix} \frac{1}{\sqrt{6}} &\frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{6}}& - \frac{1}{\sqrt{2}}& \\ \frac{1}{\sqrt{6}} & 0 \end{bmatrix} \begin{bmatrix} \frac{2}{\sqrt{3}} &0 \\ 0& 1 \end{bmatrix} = \begin{bmatrix} \frac{1}{\sqrt{2}} &\frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} &-\frac{1}{\sqrt{2}} \\ 0 & 0 \end{bmatrix}

因为U_{1}^{T} \cdot U_{2} = 0,所以U_{2} = \begin{bmatrix} 0\\ 0\\ 1 \end{bmatrix}

U = \begin{bmatrix} U_{1} : U_{1} \end{bmatrix} = \begin{bmatrix} \frac{1}{\sqrt{2}} &\frac{1}{\sqrt{2}} &0 \\ \frac{1}{\sqrt{2}}& -\frac{1}{\sqrt{2}} &0 \\ 0 & 0 & 1 \end{bmatrix}

所有A的奇异值分解为A = U \begin{bmatrix} \sum &o \\ o & o \end{bmatrix}v = \begin{bmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} &0 \\ \frac{1}{\sqrt{2}} &-\frac{1}{\sqrt{2}} & 0\\ 0& 0& 1 \end{bmatrix} \begin{bmatrix} \sqrt{2} & 0 &0 \\ 0 & 1 &0 \\ 0 & 0 & 0 \end{bmatrix}\begin{bmatrix}\frac{1}{\sqrt{6}} & \frac{1}{\sqrt{6}}& \frac{2}{\sqrt{6}}\\\frac{1}{\sqrt{2}} &-\frac{1}{\sqrt{2}} &0 \\\frac{1}{\sqrt{3}} &\frac{1}{\sqrt{3}} &-\frac{1}{\sqrt{3}} \end{bmatrix}

2、矩阵V的奇异值分解V = U\sum Z,Z的第三列即为方程的解。

B = \lambda K^{-T}K^{-1},可以计算出内参数矩阵K的各个元素值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

没入&浅出

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

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

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

打赏作者

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

抵扣说明:

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

余额充值