解析UR机器人的位姿数据 格式指南
1.位姿数据的含义
1.1 位姿数据的含义
2.理论知识
3.优傲UR默认姿态
3.1示教器给定欧拉角RPY
3.2脚本给定欧拉角RPY
4.疑惑解析旋转矢量
1. 位姿数据的含义
1.1 位姿数据的含义
众所周知,位姿可以分为位置(X,Y,Z)和姿态(RX,RY,RZ)。在三维空间中我们用X,Y,Z,Rx,Ry,Rz来完整的表示一个空间中的任意一个点的位姿。尤其对于一些有体积的点,其姿态更能形象的表示出当前所处的状态。
对于空间中任意有体积的点P,只要我们给出其位姿(X,Y,Z,RX,RY,RZ),那么它在空间中的位姿就是绝对的,可以很轻松的找到该位置。
2. 理论知识
欧拉角(RPY)和旋转矢量(Rx,Ry,Rz)只是位姿的不同表示方式:欧拉角(RPY)是绕着基座的坐标系的X,Y,Z轴转动指定的角度;旋转矢量(Rx,Ry,Rz)是绕着空间的某个轴转动指定的角度,旋转矢量单位化后代表的是旋转轴,其模代表的是旋转的弧度值。
欧拉角可以让我们更直观的知道姿态是如何运动的(绕着XYZ转动),而旋转矢量则本质的解释了空间的任何转动,都可以归结为绕某个轴特定的角度。
关于欧拉角和旋转矢量的详细解释,请参考百度百科的解释,在学术界这方面的文章有很多,大家可以自行阅读。

3. 优傲默认姿态
优傲机器人表示位姿的方法有两种:欧拉角(RPY)和旋转矢量(Rx,Ry,Rz)。

优傲机器人默认的位姿表示方式是旋转矢量。虽然我们通过点击位姿数据编辑器可以进行欧拉角和旋转矢量的切换,但那个仅是显示而已,一旦退出以后会重新变为旋转矢量。即不管是在示教器显示上,还是在脚本的执行上采用均为旋转矢量,即机器人底层接受到的位姿数据均按照旋转矢量执行的。

欧拉角在表示姿态上有它独特的优势,符合大众的思维模式,可以按照我们指定的姿态运动。下面分别介绍如何在示教器和脚本中通过给定欧拉角,让机器人按照指定的姿态(旋转矢量)执行运动。
3.1示教器给定欧拉角RPY
通过点击示教器上移动界面的位姿数据,进入到位姿编辑器界面,在上面选择RPY
],然后输入绕XYZ转动的角度值,便可以让机器人运动到指定的位姿。

3.2脚本给定欧拉角RPY
通过外部的视觉获得姿态一般用欧拉角表示的,这种数据机器人并不能直接使用,必须将其转换为旋转矢量后,机器人才可以认可。下面将通过脚本进行说明,将视觉传回来的姿态数据欧拉角(30
)转换为机器人认可的旋转矢量,并运动到指定的姿态。借助优傲本身的欧拉角和旋转矢量的脚本函数,可以极大的节省时间。
rotvec2rpy()可以将旋转矢量直接转换为欧拉角
rpy2rotvec()可以将欧拉角转换为旋转矢量
d2r()将角度值转换为弧度值

4. 疑惑解析旋转矢量
在使用旋转矢量的时候,大家可能会遇到以下问题:
“同一个位姿点,为什么两次得到的姿态数据不一致呢?”
“同一个位姿点,通过脚本get_actual_tcp_pose()获得的位姿数据和示教器上显示的不一致呢?”下面将为大家解析。
。
举例如下:对于机器人上的位姿点P在示教器上显示的位姿数据如下所示,对旋转矢量进行单位化后,可以得到旋转轴和旋转角度,其姿态所表示的是绕轴(0,-1,0)转动3.166691弧度(181.44
)

通过脚本获得的机器人的P位姿数据如下所示,对旋转矢量进行单位化后,可以得到旋转轴和旋转角度,其姿态所表示的是绕轴(0,1,0)转动3.116529弧度(178.56
)

因此虽然显示的姿态R1(0.0012,-3.1664,-0.0395)和R2(-0.00122,3.11628,0.03889)在数值上不一样,但是他们表示的却是同一个点的姿态。
下面通过脚本函数rotvec2rpy()将2个旋转矢量R1和R2分别转化为欧拉角,来验证我们的结论。从图上可以看出,虽然旋转矢量的显示值不同,但它们转化后的欧拉角为同一个值。

更多技术参考, 公众号文章:
Airking Robots
北京艾科伯特科技有限公司,是专注协作机器人和移动机器人的技术公司,Airking Robots——艾科伯特立足于航空/航天,专注于机器人智能制造方向,Airking Robots是优傲机器人,Robotiq等协作机器人方向中国区域金牌提供商
商务联系:
更多案例请关注公众号:




