1)欧拉角正负:
如果是右手系,旋转轴正方向面对观察者时,逆时针方向的旋转是正、顺时针方向的旋转是负。
即使用右手的大拇指指向旋转轴正方向,其他4个手指在握拳过程中的指向便是正方向。
在使用时,要注意机械臂旋转过程中角度是区分正负的!
(3)欧拉角的范围:
假如是车体坐标系(x-前,y-左,z-上),那么roll和pitch应该定义在(-90°,+90°),yaw应该定义在(-180°,+180°)。
但是,不同机械臂的角度限位需要看手册,比如史陶比尔的限位都在-180到180之间,此外还有个别要求:例如系统确保至少两个坐标在-90到90之间,除非rx=180 and ry=0等。
(4)明确旋转顺序和旋转轴:
对于x,y,z三个轴的不同旋转顺序一共有(x-y-z,y-z-x,z-x-y,x-z-y,z-y-x,y-x-z)六种组合,在旋转相同的角度的情况下不同的旋转顺序得到的姿态是不一样的。
比如,先绕x轴旋转alpha,再绕y轴旋转beta;先绕y轴旋转beta,再绕x轴旋转alpha。这两种顺序得到的姿态是不一样的。这里注意的原因是,在转换矩阵和欧拉角转换时,不同的机械臂内定程序旋转方法需要对得到的矩阵进行具体旋转方法对应的反解公式。
(5)内旋和外旋:
每次旋转是绕固定轴(一个固定参考系,比如世界坐标系)旋转,称为外旋。
每次旋转是绕自身旋转之后的轴旋转,称为内旋。
这个比较重要,因为机械臂封装好的程序中对于旋转的定义需要看手册,例如史陶比尔使用的val3程序中trsf定义的旋转就是内旋方法,因此转换方程也不同。
(6)单位问题
因为看到很多程序中默认rx ry rz单位是弧度,但是史陶比尔的机器人手册中单位是度,因此需要特别注意,中间涉及单位问题,对旋转影响还是很大的。
(7)计算问题
由于欧拉角的计算中,固定角是左乘,内旋为右乘,所以具体情况要具体计算中进行区分。
同时旋转顺序也影响最后结果,所以得到的值和旋转矩阵进行互相转化时,要具体情况具体分析。
但是方法上,都是通过旋转矩阵中的参数进行消元法,求得最后结果。实际机器人编程中一定要把以上几点在手册中核对好!!!
参考文章:
旋转矩阵求旋转角度_欧拉角和旋转矩阵之间的转换_weixin_39654751的博客-CSDN博客在使用Eigen时,经常会遇到旋转矩阵,旋转向量,四元数,欧拉角之间的两两相互转换。这里最常见、最容易出错的是欧拉角和旋转矩阵之间的相互转换。下面就欧拉角和旋转矩阵之间的转换进行详细分析。图1 旋转顺序Z-Y-X,正方向内旋1. 欧拉角(1)欧拉角的叫法:欧拉角的叫法不固定,跟坐标轴的定义强相关。在图1中,假设X是车头,Y是车左方,Z是车上方,那么绕X轴旋转得到的是roll,绕Y轴旋转得到的是pi...https://blog.csdn.net/weixin_39654751/article/details/111584053?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1.pc_relevant_paycolumn_v3&spm=1001.2101.3001.4242.2&utm_relevant_index=4机器人理论(2)齐次坐标矩阵:旋转矩阵与角度的相互转化_aic1999的博客-CSDN博客_旋转矩阵 角度引言都知道旋转矩阵表达的是刚体(坐标系{B})相对参考坐标系{A}的姿态信息,那如何利用已知的旋转矩阵,将{A}旋转一定角度变成与{B}一样的姿态呢?有几种方法:固定角旋转、欧拉角旋转、angle-axis表达法、Quaternion表达法等可以求出这个“角度”,在此介绍前两种。另外,机器人学里常规是如何将刚体的位置、姿态信息融合在一起的呢?目录定角(Fixed angles)...https://blog.csdn.net/aic1999/article/details/82415357?spm=1001.2101.3001.6650.13&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-13.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-13.pc_relevant_default&utm_relevant_index=15