![人形机器人(原书第2版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/375/51975375/b_51975375.jpg)
2.1.2 局部坐标系和同次变换矩阵
现在转动机器人的肩部,来分析手指的位置ph会发生怎样的变化。从图2.3a中ΣW的视角看,机器人的左肩位置为pa,机器人的肩膀到指尖的向量为r。从图2.3中可以得出
ph=pa+r
由图2.3b可知,如果将手臂张开状态下从肩膀指向指尖的向量设为r′,则指尖位置为
![](https://epubservercos.yuewen.com/210333/30719289307016706/epubprivate/OEBPS/Images/34_03.jpg?sign=1739478286-nelUSBXXJlwUaocx7JykCgamMTjXIFD8-0-00c044b04ded1184f31a04b80551e2a3)
肩部的位置pa保持不变,通过向量r向r′的旋转可以实现手指尖的运动。
![](https://epubservercos.yuewen.com/210333/30719289307016706/epubprivate/OEBPS/Images/35_01.jpg?sign=1739478286-05KKVsEXtMPKdnqBIiGmkft3GX1LrBoy-0-a3bcb32f010cfa5e6ee2b03cebe9c0eb)
图2.3 世界坐标系ΣW和手臂的局部坐标系Σa
现在考虑固定在手臂(肩膀)上的局部坐标系Σa。与固定在地面上的世界坐标系不同,局部坐标系是根据机器人的运动而改变位置和姿态的“可移动坐标系”。
Σa是根据肩膀上设定的原点和x、y、z轴的单位向量组成。三个单位向量eax,eay,eaz在手臂放下的初期姿态与ΣW平行(见图2.3a)。一旦机器人手臂抬起,Σa就会以eax轴为中心旋转,旋转角度为ϕ(见图2.3b)。
手臂的旋转角度ϕ和Σa的关系如下所示。
![](https://epubservercos.yuewen.com/210333/30719289307016706/epubprivate/OEBPS/Images/35_02.jpg?sign=1739478286-ejeWErIl9CJVRaPihOwVB2GUlsPHack2-0-71165157aa9d4bf3e6f8c594b9797add)
因为是围绕x轴的旋转,所以只有eay、eaz发生变化。将三个向量汇总后的3×3矩阵Ra定义如下。
![](https://epubservercos.yuewen.com/210333/30719289307016706/epubprivate/OEBPS/Images/35_03.jpg?sign=1739478286-WZPdPUJERIe9OqVJUA5AJiVfKbfsbTsG-0-10efcb9e64827402f0525a6b7cb5707d)
使用矩阵Ra,图2.3中的r和r′的关系可以用下式表示。
![](https://epubservercos.yuewen.com/210333/30719289307016706/epubprivate/OEBPS/Images/35_04.jpg?sign=1739478286-YLQlfYbfBITnfkRWzCzOEGI0eWOQQBcz-0-5f0cd1727ea9ae8d6f41c7979299a2fa)
也就是说,乘以矩阵Ra,向量会旋转。关于这一点将在后面详细说明(2.2节)。
将以局部坐标系Σa为基准点看指尖的位置设为aph。左上角的附带字a表示以Σa为基准点。
![](https://epubservercos.yuewen.com/210333/30719289307016706/epubprivate/OEBPS/Images/36_01.jpg?sign=1739478286-5gcCNVU3AGSrRYgVCmXmu24mnPyZMsCo-0-ad32e69c57c641d31a8cd50f97cc0a1f)
在图2.3中,Σa和整个左臂作为一个整体进行旋转,aph是不变的。
表示左手臂手指尖的位置的方法如下:
• 从世界坐标系ΣW的视角看手指尖位置ph。
• 从局部坐标系Σa的视角看手指尖位置aph。
基于这些关系,式(2.1)、式(2.4)、式(2.5)可以表达为
![](https://epubservercos.yuewen.com/210333/30719289307016706/epubprivate/OEBPS/Images/36_02.jpg?sign=1739478286-nMJUnvHbpdU0gtjFkTVKXi1aeCBfexaI-0-d9cdb6ff16656fe7a96cce6c0a25bfef)
式(2.6)还有如下的表达方式。
![](https://epubservercos.yuewen.com/210333/30719289307016706/epubprivate/OEBPS/Images/36_03.jpg?sign=1739478286-l4YuWRAFNJulZ0JMOCF4xMwZhBfKlPPt-0-73bd2a3dc6c1c35985b8c9ba65fad196)
这里为了使矩阵计算前后一致,使结果与式(2.6)相同,适当地在向量和矩阵中追加了0和1。右边出现的4×4矩阵将手臂的位置和(pa,Ra)整合在一起。这里可以写为
![](https://epubservercos.yuewen.com/210333/30719289307016706/epubprivate/OEBPS/Images/36_04.jpg?sign=1739478286-Vb4QpSr5TwJI9t69WX4i6meNesILLk2L-0-bc0eb1d054bf814f4b3fc40e7219c945)
这样的矩阵称为同次变换矩阵[2]。同次变换矩阵Ta将手臂的局部坐标系表示的点的坐标变换到世界坐标系。
![](https://epubservercos.yuewen.com/210333/30719289307016706/epubprivate/OEBPS/Images/36_05.jpg?sign=1739478286-h6QVmVmGZLLvtJpW25jDk7vWravSpeuz-0-a17963e06e31b590112942997525018c)
左臂上的任意点都对应着一个ap,所以手臂的位置和姿态的信息包含在同次变换矩阵Ta中。也就是说,可以认为同次变换矩阵本身表示手臂的位置和姿态。