机器人学笔记(3)矩阵的伪逆

左逆矩阵与右逆矩阵

对于机器人而言,求解雅可比的矩阵可以通过机器人各个关节的速度求得末端的速度与角速度,而求解逆运动学时,经常会出现已知末端机器人末端速度,求机器人各个关节速度的情况。

对于一个矩阵Am×nA_{m\times n}Am×n​和矩阵Bn×mB_{{n\times m}}Bn×m​,如果矩阵之间满足:
ABA=AABA=A ABA=A
则称BBB是AAA的广义逆矩阵。

在机器人学之中,一般使用矩阵的左逆或者右逆,若AAA是满秩,则可以使用它的左逆或右逆矩阵。

若m>nm>nm>n,则使用左逆矩阵,若n>mn>mn>m,则使用右逆矩阵,下面直接给出左逆矩阵和右逆矩阵的形式:
Aleft−1=(ATA)−1ATAright−1=AT(AAT)−1A_{left}^{-1}=(A^TA)^{-1}A^T\\ A_{right}^{-1}=A^T(AA^T)^{-1} Aleft−1​=(ATA)−1ATAright−1​=AT(AAT)−1

SVD奇异值分解求逆

上述的做法的问题在于,它要求矩阵的满秩,而在机器人正常运行时,有时会运动到奇异点附近,雅可比矩阵发生降秩,此时较小的关节角度要通过较大的速度实现,对机器人造成损害。

所以我们可以将矩阵进行奇异值分解再计算矩阵的逆,假设矩阵AAA是m×nm\times nm×n维矩阵,我们定义AAA矩阵的SVD为:
A=UΣVTA=U\Sigma V^T A=UΣVT
其中,U∈Rm×mU \in \mathbb{R_{m \times m}}U∈Rm×m​​,Σ∈Rm×n\Sigma \in\mathbb{R_{m\times n}}Σ∈Rm×n​​,V∈Rn×nV \in\mathbb{R_{n\times n}}V∈Rn×n​,其中UUU、VVV都是酉矩阵,我们令ATA^TAT与AAA做矩阵乘法,得到一个n×nn\times nn×n的矩阵,对其求特征向量,有:
(ATA)vi=λivi(A^TA)v_i=\lambda_iv_i (ATA)vi​=λi​vi​
viv_ivi​列向量的组合就是矩阵VVV,同样的道理,令AAA与ATA_TAT​做矩阵乘法,有:
(AAT)ui=λiui(AA^T)u_i=\lambda_iu_i (AAT)ui​=λi​ui​
uiu_iui​列向量的组合就是矩阵UUU,下面计算奇异值矩阵,有:
Σ=(σ1∣σ2∣...∣σr∣−−−−十−∣0)\Sigma = \begin{pmatrix} \sigma_1&&&&|&\\ &\sigma_2&&&|&\\ &&...&&|&\\ &&&\sigma_r&|&\\ -&-&-&-&十&-\\ &&&&|&0 \end{pmatrix} Σ=⎝⎛​σ1​−​σ2​−​...−​σr​−​∣∣∣∣十∣​−0​⎠⎞​
对每一个σi\sigma_iσi​,有:
Avi=σiuiAv_i=\sigma_iu_i Avi​=σi​ui​
不过用这个式子来计算是比较困难的,我们一般计算出矩阵AATAA^TAAT的特征值λi\lambda_iλi​用:
σi=λi\sigma_i = \sqrt{\lambda_i} σi​=λi​​
利用SVDSVDSVD计算矩阵的逆,得到的逆矩阵为:
A+=VΣ+UTA^+=V\Sigma^+U^T A+=VΣ+UT
在上式中
Σ+=(1σ1∣1σ2∣...∣1σr∣−−−−十−∣0)\Sigma^+ = \begin{pmatrix} \dfrac{1}{\sigma_1}&&&&|&\\ &\dfrac{1}{\sigma_2}&&&|&\\ &&...&&|&\\ &&&\dfrac{1}{\sigma_r}&|&\\ -&-&-&-&十&-\\ &&&&|&0 \end{pmatrix} Σ+=⎝⎛​σ1​1​−​σ2​1​−​...−​σr​1​−​∣∣∣∣十∣​−0​⎠⎞​
此时可以放弃阈值小于ϵ\epsilonϵ的奇异值,但会产生不连续性,利用阻尼最小二乘法计算伪逆的方式是在倒置奇异值之前为其设置一个下界:
A∗=AT(AAT+λI)−1A^*=A^T(AA^T+\lambda I)^{-1} A∗=AT(AAT+λI)−1
通过引入阻尼参数λ\lambdaλ,避免分母为0,来进行平滑过渡。
A∗=V(σ1σ12+λσ2σ22+λ...σrσr2+λ0000)UTA^*=V\begin{pmatrix} \dfrac{\sigma_1}{\sigma_1^2+\lambda}&&&\\ &\dfrac{\sigma_2}{\sigma_2^2+\lambda}&&\\ &&...&\\ &&&\dfrac{\sigma_r}{\sigma_r^2+\lambda}\\ 0&0&0&0\\ \end{pmatrix}U^T A∗=V⎝⎛​σ12​+λσ1​​0​σ22​+λσ2​​0​...0​σr2​+λσr​​0​⎠⎞​UT

机器人学笔记(3)矩阵的伪逆相关推荐

  1. 使用SVD求取矩阵的伪逆

    ➤01 矩阵的SVD分解 对于矩阵A∈Rn×mA \in R_{n \times m}A∈Rn×m​,可以通过奇异值分解(Singular Vector Decomposite)分解成如下形式:A=U ...

  2. 正规方程详解以及矩阵的伪逆

    正规方程 引入: 我们知道在多元线性回归里面,可以使用梯度下降算法来进行迭代,进而求出最合适的参数向量.但是梯度下降有诸多不便,所以可以在一些情况下考虑用正规方程代替梯度下降,我的另一篇文章里有用py ...

  3. 通过FPGA实现矩阵的伪逆pinv计算

    1.问题描述: 首先对伪逆pinv进行推导,转换为逆inv的过程 2.部分程序: `timescale 1ns / 1ps // // Company:  // Engineer:  //  // C ...

  4. c语言矩阵求伪逆算法pinv,pinv--求矩阵的伪逆矩阵

    pinv--求矩阵的伪逆矩阵 [功能简介]用于求矩阵的伪逆矩阵. [语法格式] 1.B=pinv(A) 函数返回矩阵A的伪逆矩阵.如果矩阵A是可逆(非奇异)的,那么pinv(A)与inv(A)的结果是 ...

  5. 通过FPGA计算矩阵的伪逆pinv

    1.问题描述: 一个12*4的矩阵. 2.部分程序: 然后我们要定义个函数,用来计算复数转置的. 然后是复数乘法器, 这个过程中,我们暂时还没截位,所以计算结果会和matlab一样,后面的会有大量的位 ...

  6. 矩阵的逆、伪逆、左右逆,最小二乘,投影矩阵

    主要内容: 矩阵的逆.伪逆.左右逆 矩阵的左逆与最小二乘 左右逆与投影矩阵 一.矩阵的逆.伪逆.左右逆 1.矩阵的逆 定义: 设A是数域上的一个n阶方阵,若在相同数域上存在另一个n阶矩阵B,使得: A ...

  7. (数学概念)矩阵的逆、伪逆、左右逆,最小二乘,投影矩阵

    主要内容: 矩阵的逆.伪逆.左右逆 矩阵的左逆与最小二乘 左右逆与投影矩阵 一.矩阵的逆.伪逆.左右逆 1.矩阵的逆 定义: 设A是数域上的一个n阶方阵,若在相同数域上存在另一个n阶矩阵B,使得: A ...

  8. 线性代数笔记34——左右逆和伪逆

    原文 | https://mp.weixin.qq.com/s/PRQQvSfmipxPBeF80aEQ1A 一个矩阵有逆矩阵的前提是该矩阵是一个满秩的方阵.然而很多时候遇到的都是长方矩阵,长方矩阵是 ...

  9. 矩阵伪逆的opencv实现

    1.矩阵的逆 定义: 设A是数域上的一个n阶方阵,若在相同数域上存在另一个n阶矩阵B,使得: AB=BA=I. 则我们称B是A的逆矩阵,而A则被称为可逆矩阵. 可逆条件: A是可逆矩阵的充分必要条件是 ...

最新文章

  1. 使用cdn和npm引入的区别_在npm上发布自己的vue组件库(使用npm install 或者 CDN的方式引用)...
  2. jq 给节点node加事件_JavaScript 原生对象、属性、方法、事件、事件参数
  3. boost的chrono模块特殊值的测试程序
  4. 探讨 .NET 4 新增的 SortedSet 类
  5. 社会保险的多层次包括哪些?
  6. 使用TortoiseSVN碰到的几个问题(2)-冲突解决, 图标重载
  7. 什么是python元祖_python元组
  8. Python数据挖掘——文本分析
  9. MT管理系去弹窗【失败】
  10. 1000瓶毒药里有1瓶有毒,问需要多少只老鼠能试出来哪瓶有毒
  11. TimeLine学习笔记
  12. 能够有效提高App线下活动的方法
  13. matlab图像处理学习笔记
  14. Java学习07–前端基础之CSS
  15. python 画箱体图
  16. 一步一步在 Windows 10 用 visual studio 2019 编译 zmqpp 4.2.0 版
  17. DMOZ分类目录对网站推广的作用
  18. 微信WeUI常见页面模板
  19. 骗子不可怕,就怕骗子有文化
  20. 轻量级的Java快速开发平台

热门文章

  1. Non-terminating decimal expansion; no exact representable decimal result. 的恩恩怨怨
  2. 海康摄像头开发笔记(一):连接防爆摄像头、配置摄像头网段、设置rtsp码流、播放rtsp流、获取rtsp流、调优rtsp流播放延迟以及录像存储
  3. 20000字,详解大厂实时数仓建设(好文收藏)
  4. 电视共享计算机用户名和密码是什么情况,智能电视经SMB连接电脑登录时报用户名或密码错误...
  5. 很有道理的一段话。。。。
  6. 06Java异常和网络编程
  7. Oracle数据库笔记总汇
  8. 视错觉:从一个看似简单的自定义控件说起
  9. 开发android版本的直播app
  10. 免费的自媒体辅助软件,辅助自媒体内容创作