66机器人学导论(二).Ⅱ——复合变换、逆变换、变换方程

多次变换/复合变换——固定与相对坐标系的变换

变换在矩阵的表达就是点乘,多次运算也就是做多次点乘。

但要注意,在学习线代时我们知道矩阵的左乘和右乘是不一样的,因此不可交换。

固定坐标系:绕别的固定坐标系旋转

相对坐标系:绕自己的轴旋转

带入具体值后答案显然不一样:

逆变换

上一节我们已经可以求{B}系相对于{A}系的变换_{B}^{A}\textrm{T}了,但为了后续求逆解,我们还需要得到{A}系相对于{B}系的变换_{A}^{B}\textrm{T}
求逆右两个思路,一个是按照线代的方式初等变换或求伴随矩阵,但实际上并没有利用好变换的可逆性质——将【{B}系在{A}系的表达】再次表达回{B}系,实际上就完成了逆变换!

那么对于一个齐次变换矩阵,要进行逆变换,就需要分别对 旋转矩阵_{A}^{B}\textrm{R} 和 平移矩阵_{}^{A}\textrm{P}_{BORG} 求逆,也就是求其在{B}系中的表达。

_{A}^{B}\textrm{R}的逆很好求,就是_{B}^{A}\textrm{R}^T---------- Ⅰ式

但是_{}^{A}\textrm{P}_{BORG}的逆就不是那么好求了
如果没有图,其实并不好理解:

要求_{}^{A}\textrm{P}_{BORG}的逆,就是求其在{B}系中的表达^{B}(_{}^{A}\textrm{P}_{BORG})
首先将_{}^{A}\textrm{P}_{BORG}的方向转化到{B}系中,即_{A}^{B}\textrm{R}_{}^{A}\textrm{P}_{BORG},此时他就在上图①的位置,
接着,将他平移到原来的②的位置,这段距离就是{A}系原点在{B}系的距离_{}^{B}\textrm{P}_{AORG}
因此得到^{B}(_{}^{A}\textrm{P}_{BORG})=_{A}^{B}\textrm{R}_{}^{A}\textrm{P}_{BORG}+_{}^{B}\textrm{P}_{AORG}

显然{B}系的原点映射在{A}系中,再映射回{B}系中就是[0,0,0],于是将右侧_{A}^{B}\textrm{R}_{}^{A}\textrm{P}_{BORG}移过去
_{}^{B}\textrm{P}_{AORG}=-_{A}^{B}\textrm{R}_{}^{A}\textrm{P}_{BORG}=-_{B}^{A}\textrm{R}^T {}^{A}\textrm{P}_{BORG} ----------Ⅱ式

于是将ⅠⅡ式带入齐次变换矩阵_{A}^{B}\textrm{T}得到:

变换方程

我们描述末端执行器相对于基坐标系的位姿时,往往需要通过多个关节坐标系一路传递回来计算的。这个过程其实就是多次变换/复合变换,仅仅需要将各关节变换矩阵相乘即可。

现在要描述{D}工具坐标系在{U}基坐标系的位姿,已经知道了两条传递路径:{U}<-{A}<-{D} 以及 {U}<-{B}<-{C}<-{D},用复合变换方程写出来_{B}^{U}\textrm{T}_{C}^{B}\textrm{T}_{D}^{C}\textrm{T}=_{A}^{U}\textrm{T}_{D}^{A}\textrm{T}
假设我们仅有_{C}^{B}\textrm{T}不知道,就可以利用这个方程解出来,同时左右乘逆就能消去_{C}^{B}\textrm{T}两侧的变量

于是,_{C}^{B}\textrm{T}=_{B}^{U}\textrm{T}^{-1} \cdot _{A}^{U}\textrm{T}_{D}^{A}\textrm{T} _{D}^{C}\textrm{T}^{-1}

上图的关系链是箭头表示的,也就是说,T都代表着后者相对于前者的变换关系,如果描述时遇到了箭头方向与串联方向相反,则先求出逆再带入计算即可。

比如下例,从{U}<-{B}<-{C}<-{D}<-{A}的串联路径,{D}系相对于{C}系的变换是与串联方向相反的,因此先取逆,再带入方程。

在描述工具坐标系、物理坐标系和基坐标系的关系的时候,常常就会使用复合变换刻画。

dnSpy是目前业界广泛使用的一款.NET程序的反编译工具,支持32位和64位系统环境。它允许用户查看和编辑.NET汇编和反编译代码,以及调试.NET程序。该工具通常用于程序开发者在维护和调试过程中分析程序代码,尤其在源代码丢失或者无法获取的情况下,dnSpy能提供很大的帮助。 V6.1.8版本的dnSpy是在此系列软件更新迭代中的一个具体版本号,代表着该软件所具备的功能与性能已经达到了一个相对稳定的水平,对于处理.NET程序具有较高的可用性和稳定性。两个版本,即32位的dnSpy-net-win32和64位的dnSpy-net-win64,确保了不同操作系统架构的用户都能使用dnSpy进行软件分析。 32位的系统架构相较于64位,由于其地址空间的限制,只能支持最多4GB的内存空间使用,这在处理大型项目时可能会出现不足。而64位的系统能够支持更大的内存空间,使得在处理大型项目时更为方便。随着计算机硬件的发展,64位系统已经成为了主流,因此64位的dnSpy也更加受开发者欢迎。 压缩包文件名“dnSpy-net-win64.7z”和“dnSpy-net-win32.7z”中的“.7z”表示该压缩包采用了7-Zip压缩格式,它是一种开源的文件压缩软件,以其高压缩比著称。在实际使用dnSpy时,用户需要下载对应架构的压缩包进行解压安装,以确保软件能够正确运行在用户的操作系统上。 dnSpy工具V6.1.8版本的发布,对于.NET程序员而言,无论是32位系统还是64位系统用户,都是一个提升工作效率的好工具。用户可以根据自己计算机的操作系统架构,选择合适的版本进行下载使用。而对于希望进行深度分析.NET程序的开发者来说,这个工具更是不可或缺的利器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值