![ABB工业机器人进阶编程与应用](https://wfqqreader-1252317822.image.myqcloud.com/cover/794/44819794/b_44819794.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.1.2 四元数与欧拉角的转换
对于空间姿态的表述,显然欧拉角更直观(见图1-7)。其中,ψ、θ和φ分别为绕Z轴、Y轴和X轴的旋转角度。
![](https://epubservercos.yuewen.com/315336/23950325101463306/epubprivate/OEBPS/Images/43597_15_2.jpg?sign=1739038375-gyH5mgIfEddEpvF2NzlMnBkgqena7YoX-0-8e244fb5e83cf2914cabb24c010004a4)
图1-7 Z-Y-X欧拉角
四元数无法直接做加减法运算,且四元数的平方和应为1。故对空间点位的姿态运算时,通常先将四元数转化为欧拉角后进行几何的加减法运算,最后将运算结果再次转化为四元数。
ABB工业机器人提供了欧拉角与四元数转化的相关函数,其中:
①函数EulerZYX(\X,object.rot)可以将四元数转化为对应的欧拉角,此处举例提取绕X轴旋转的角度,也可提取绕Y轴和绕Z轴旋转的角度。
②函数OrientZYX(anglez,angley,anglex)可以将欧拉角转化为四元数。注意,函数中的参数顺序为Rz、Ry、Rx。
例如,平面2D相机得到某点位绕Z轴旋转α度,则可以先计算其姿态对应的欧拉角:
![](https://epubservercos.yuewen.com/315336/23950325101463306/epubprivate/OEBPS/Images/43597_15_3.jpg?sign=1739038375-Ubjxy2GdbIt1sH6HD6JuzeAyg8pIGxSk-0-8e048866569553173a37cc6077d00fe1)
再对欧拉角中绕Z轴旋转的角度做加法,最后重新转化为四元数:
![](https://epubservercos.yuewen.com/315336/23950325101463306/epubprivate/OEBPS/Images/43597_15_4.jpg?sign=1739038375-JsXBWGarZl3vDKvFdpztQsZAUt2YzPMC-0-c9af3008a49693dfca14b8c6c8047fe8)
综合式(1-5)和式(1-6)及图1-7,可以得到Z-Y-X欧拉角(ψ、θ和φ)到四元数的转化公式:
![](https://epubservercos.yuewen.com/315336/23950325101463306/epubprivate/OEBPS/Images/43597_15_5.jpg?sign=1739038375-vNINOZp3zEieK5t4tXVwofYaaSQX49bE-0-159706473e7e3d28c038563994585840)
综合式(1-5)和式(1-6)及图1-7,可以得到四元数到Z-Y-X欧拉角(ψ、θ和φ)的转化公式:
![](https://epubservercos.yuewen.com/315336/23950325101463306/epubprivate/OEBPS/Images/43597_16_1.jpg?sign=1739038375-dalXXFJ8tKNlTVoqXOxdgcXAb2CZorIy-0-88588ce7c4093464a39447759d7f708d)
arctan和arcsin的结果是,并不能覆盖所有朝向,因此使用atan2函数来代替arctan:
![](https://epubservercos.yuewen.com/315336/23950325101463306/epubprivate/OEBPS/Images/43597_16_3.jpg?sign=1739038375-PdChZIkHMWn18yHlG32X8Q6n5nuihThG-0-cfde7453a2805ec3fd7b459ec4653ff0)
综合式(1-7)和式(1-9),可以在RAPID中自己编写函数,实现欧拉角与四元数的转化。欧拉角与四元数转化的RAPID代码如下:
![](https://epubservercos.yuewen.com/315336/23950325101463306/epubprivate/OEBPS/Images/43597_16_4.jpg?sign=1739038375-0UD0M8i5j2TI3HjovBNfuimWd9Fmsbnp-0-d3459af41256f2db1b3463b15dd2c3f5)
![](https://epubservercos.yuewen.com/315336/23950325101463306/epubprivate/OEBPS/Images/43597_17_1.jpg?sign=1739038375-jUqqWwq5lXDAkUdGd0LwtihJqOFpMFoG-0-9cd1178dfe40d8e07c4d12e2addfb701)