![人工智能:智能机器人](https://wfqqreader-1252317822.image.myqcloud.com/cover/828/33114828/b_33114828.jpg)
2.3 通用旋转变换
我们已经在前面研究了绕x、y和z轴旋转的旋转坐标变换。下面来研究最一般的情况,即研究某个绕着从原点出发的任一向量(轴)旋转角度θ时的旋转坐标变换。
2.3.1 通用旋转变换公式
设f为坐标系{C}的z轴上的单位向量,即:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_42_1.jpg?sign=1739199010-72FiN53UaQAA4mkZUc1KA4fJ6qlrLcOs-0-358885b165149ba8276014ed4bd9e02e)
绕向量f旋转等价于绕坐标系{C}的z轴旋转,即:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_42_2.jpg?sign=1739199010-jvRYcCJx9RxujayO56WyGp5BZ3kePiNg-0-e860c18b8e96b35722b8a9006fd4f1c2)
如果已知以参考坐标系表示的坐标系{T},那么能够求得以坐标系{C}表示的另一坐标系{S},因为
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_42_3.jpg?sign=1739199010-YpB5s2bKV9ezjv6CeswUVD82xDD9EsT1-0-27373312e77aa8d8a28303573d000a27)
式中,S表示坐标系{T}相对于坐标系{C}的位置。对S求解得:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_42_4.jpg?sign=1739199010-uHYPGM4CwyGlbIi87NpTwA5oe57fD45D-0-c3f361a5eaf9fb6f8564f21191e74ac7)
T 绕f旋转等价于S绕坐标系{C}的z轴旋转,即:
Rot(f,θ)T=CRot(z,θ)S
Rot(f,θ)T=CRot(z,θ)C-1T
于是可得:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_42_5.jpg?sign=1739199010-QZZWwPcNz4HPWPpD9s9TOZEYbL6iZ4NH-0-681ba25714f591b565f39a0a3445e298)
因为f为坐标系{C}的z轴上的单位向量,所以对式(2-34)加以扩展可以发现,Rot(z,θ)C-1仅仅是f的函数,因为
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_42_6.jpg?sign=1739199010-iaOcCjadLnChl4lcbYqL4q5c8havOKOO-0-9ab2e419a1bc5fa3df65f0de4a3bbb77)
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_43_1.jpg?sign=1739199010-bYU9NLd7R9yGv3a0Jta5p1sFhWTEcpmW-0-e0622d7066daba0dda53564d1762df0d)
根据正交向量点乘、向量自乘、单位向量和相似矩阵特征值等性质,并令versinθ=1-cosθ,fx=ax,fy=ay,fz=az,f=fxi+fyj+fzk,对式(2-35)进行化简,可得:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_43_2.jpg?sign=1739199010-NUGS2IGBeVSksDu3fV5XanSYMF3TmsLH-0-57f7118997eb87b1a2e09c0f81e8203d)
这是一个重要的结果。从上述通用旋转变换公式能够求得各个基本旋转变换。例如,当fx=1、fy=0和fz=0时,Rot(f,θ)=Rot(x,θ)。若把这些数值代入式(2-36),可得:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_43_3.jpg?sign=1739199010-7qbvoBUrGdwoCGDcKeFmMIT2OCn1QJrS-0-b3dc2f8c365f2ee45a5418cdbda63da2)
这与式(2-24)一致。
2.3.2 等效转角与转轴
对于任一旋转变换,均能够由式(2-36)求得进行等效转角的转轴。已知旋转变换:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_44_1.jpg?sign=1739199010-ss6gbuEktmJKmZwK3dSwGHNQHvSBVoSS-0-ecd2273b0d3643bd3118f39134595a1b)
令R=Rot(f, θ),即:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_44_2.jpg?sign=1739199010-9TRfiOOmJPqqqaI4YXQ3gwqKLGFUKqbI-0-e580d0ff1f15da0e5da796f4884a62a4)
把式(2-37)右边除元素1以外的对角线项分别相加并进行化简,可得:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_44_3.jpg?sign=1739199010-fmeh68iv3deT7Q300zQW8zn5lx0iNGOP-0-a996955bc40470f119b4cb94b43ff320)
以及
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_44_4.jpg?sign=1739199010-zXv7bJGe8dPPTb8kAoyfDYBrzBOnmNRi-0-0fe84265aeac4460afbfa8755f7973c3)
把式(2-37)中的非对角线项成对相减,可得:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_44_5.jpg?sign=1739199010-wvlL8WB6cfD3KYMdmVDgICTe7Thubr8j-0-f6cc031206070de54e1c1a21404fc272)
将式(2-40)各行平方相加后,可得:
(ox-ay)2+(ax-nz) 2+(ny-ox) 2=4sin2θ
以及
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_44_6.jpg?sign=1739199010-DJQEP8yx2ize5361HFTsn4nWWAqxUzHc-0-b540e162268f192bbdf1913b3de437a8)
把旋转规定为绕向量f的正向旋转,使得0≤θ≤180°[16]。这时,式(2-41)中的符号取正号。于是,角度θ被唯一地确定为:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_44_7.jpg?sign=1739199010-FuS2e8qUnuOpdqvpieBFI105ygDpwCbv-0-a32da66997f47575cdc89f9434e6748a)
向量f的各分量可由式(2-40)求得,即:
![](https://epubservercos.yuewen.com/FD2240/17725770706724906/epubprivate/OEBPS/Images/38284_45_1.jpg?sign=1739199010-FprxM0NWvlg4OVpajuWdQF6tJvo5zEmB-0-8296556e060019488dfc4ab0a1ba89bd)