您好,欢迎来到东莞市库崎智能科技有限公司官网!
公司动态
您现在的位置:首页新闻动态公司动态

UR机器人位姿表示

发布时间:2020-10-19

位姿或者坐标系有许多种表示方法,本文主要介绍 UR机器人的位姿表示方法,希望能够回答以下一些常见的问题:

1、什么是位姿以及它有哪些常见表示方法;

2、UR 机器人使用的位姿表示方法以及它的特点;

3、UR 机器人脚本相关的位姿表示方法转换。


1、位姿的定义

位姿,顾名思义,包含位置和姿态;对应UR机器人中数据类型Pose(p[x,y,z,Rx,Ry,Rz]), 在三维空间中任意一个三维物体的自由度是6,即X、Y、Z三个位置和绕X、Y、Z轴的旋转。为了表示一个三维物体在三维空间的确定位姿,在三维物体上定义了一个与物体刚性连接的坐标系,位置就是坐标系原点的位置,而X,Y,Z轴在空间的分布就是不同的姿态表示方法来表达。位置的表示很直观,因此后面针对姿态的表示做更多的介绍。
UR 机器人

常见的姿态表示方法

姿态的表示方法有很多种,常见的有X-Y-Z固定角坐标系,Z-Y-X欧拉角,RPY角,四元数和旋转矢量等。


⚫ X-Y-Z固定角坐标系,图 2:为了表示坐标系B在已知参考系A中的表示位姿,将一个坐标系先与A坐标系重合,然后按照参考系A的X,Y,Z轴依次旋转这个坐标系使其与B坐标系重合,用这个X,Y,Z轴的旋转角度来表示。

UR 机器人
图 2 X-Y-Z固定角坐标系


⚫ Z-Y-X欧拉角,图 3:为了表示坐标系B在已知参考系A中的表示位姿,将一个坐标系先于A坐标系重合,然后按照这个坐标系最新的Z,Y,X轴依次旋转这个坐标系从而与B坐标系重合,用Z,Y,X轴的旋转角度来表示。

UR 机器人

图 3 Z-Y-X欧拉角

⚫ RPY(Roll-Pitch-Yaw)角,图 4:RPY主要在航空航天以及航海中用得比较多,前进方向定义为本地坐标系X轴,向上定义位Z轴,根据右手法则,Y轴朝向左侧。绕着X轴的旋转叫做翻滚Roll, Y轴旋转角俯仰角Pitch, Z轴旋转角偏航角Yaw。RPY相对的坐标系也是固定的参考系,如图 4中的世界坐标系,因此可以看到RPY定义跟X-Y-Z固定角坐标是一样的,只是因为历史习惯而采用不同的叫法。UR机器人中的RPY表示方法就是这种。

UR 机器人
UR 机器人
UR 机器人

图 4 RPY角

⚫ 四元数和旋转矢量:四元数和旋转矢量的表示方法实际上属于一类表示法——等效轴角坐标系表示法。前三种表示方法都是采用按照一定的顺序旋转三个坐标轴,而等效轴角坐标系则是通过在空间定义一个轴,B坐标系可以通过使A参考坐标系绕着这根轴旋转一定的角度达到B坐标系位置来表示。

UR 机器人

图 5 等效轴角坐标系表示法


UR 机器人
当然还有许多其他的姿态表示方法,以上罗列出来的仅仅是机器人方面用得最多的几种,这里不再过多介绍。

2、不同姿态定义特点

对于本文中提及的几种姿态表示方法他们在不同的场合中被使用,例如X-Y-Z固定角(RPY),Z-Y-X欧拉角比较容易为人所理解,而四元数和旋转矢量则更易在计算机中进行计算。关于他们之间的换算关系超出了本文的范围,读者有兴趣可自行参考机器人学方面的书籍,在下一章节中也会介绍使用UR机器人脚本如何实现不同表示方法的换算。这里指列出几个结论:

1、对于同一个姿态来说,无论是使用X-Y-Z固定角/RPY角,还是使用Z-Y-X欧拉角,数值都是相同的,也就是说不管你绕着X,Y,Z某一个轴转动,虽然顺序和参考轴不同,但是对应的数值是一样的。固定角/RPY对应的X,Y,Z数值跟Z-Y-X欧拉角对应的X,Y,Z数值相同;

2、同一个姿态,用旋转矢量表示是不唯一的,有的读者可能注意到在使用UR机器人时,示教器上TCP的旋转矢量跟通过Socket端口读到的数值不相同,就是这个不唯一性造成。虽然旋转矢量可能不同,但是表示的机器人TCP姿态是一样的。其不唯一性的原因可以结合旋转矢量的定义来: 如果一个坐标系B可以通过A参考坐标系
UR 机器人


3、位姿变换脚本

UR机器人的编程方式有两种:PolyScope图形界面和Script脚本;图形界面直观、简便,效率高,Script脚本则提供高级的机器人接口指令、更具灵活性。位姿的变换则通过脚本来实现。位姿在UR机器人中定义了一种数据类型pose,其格式为p[x,y,z,Rx,Ry,Rz],其中p为固定前缀以区别于列表(List)数据类型, x,y,z表示位置,Rx,Ry,Rz表示旋转矢量。相关的脚本包括:

1、rotvec2rpy(rotation_vector), 将旋转矢量转换成RPY角,其中R可以对应欧拉角中的X,P对应欧拉角中的Y,Y对应欧拉角中的Z, rotation_vector为长度为3的列表(List)类型,例如:retv = rotvec2rpy([3.14,1.57,0]);

2、rpy2rotvec(rpy_vector),将RPY转换成旋转矢量,其中rpy_vector为长度为3的列表(List)数据类型,也可以将欧拉角(Ex,Ey,Ez)作为输入,将其转换成旋转矢量,例如:retv= rpy2rotvec([3.14,1.57,0])。

3、pose_trans(p_from, p_from_to),B坐标系在A坐标下的位姿为pose1, C坐标系在B坐标系下的位姿为pose2,那么C坐标系在A坐标系的位姿为pose_trans(pose1,pose2)。

4、pose_add(p_1, p_2),将位姿p_1,p_2的x,y,z部分相加,而Rx,Ry,Rz部分按照pose_trans的规则一样相乘。

5、pose_inv(p_from),将位姿求逆。B坐标系在A坐标系下的位姿为pose1,那么pose_inv(pose1)返回的就是A坐标系在B坐标系下的位姿。

6、pose_sub(p_to, p_from),将位姿p_to, p_from的x,y,z部分相减,假如p_to旋转矢量为R1, p_from旋转矢量为R2,返回的旋转矢量就是pose_trans(pose_inv(p_from),p_to)的旋转矢量部分。

东莞库崎智能科技有限公司作为UR协作机器人和mir机器人优选经销商,为您提供更多机器人自动化解决方案。详询:15814107663
公司销售商品: 优傲协作机器人 | MiR自主移动机器人,激光导航AGV小车 |台达SCARA机器人 四轴机器人 | robotiq夹爪 | robotiq真空吸盘|robotiq腕部相机|onrobot夹爪 | pickit 机器人3D视觉 |所罗门3D视觉|复合机器人(AGV+机械臂)|scara螺丝机|紫外线消毒机器人
应用场景:汽车制造行业 | 3C行业 | 电子电气 | 机械加工 | 液晶半导体 | 食品加工行业 | 医药行业 | 化工行业 | 教育行业 | 娱乐生活 | 其他行业
应用案例:包装码垛 | 拧螺丝 | 注塑成型 | 抛光打磨|实验室分析 | 涂胶,点胶,焊接 | 机床管理 | 拾取和放置 | 装配 | AGV | 质量检验 | 设备看护

地址:东莞市南城区白马村永利达科技园3楼  粤ICP备17066985号
电话:0769-22235080    传真:0755-23068836  
E-mail:wangluotuiguang@yixincnc.com
著作权 2017东莞市库崎智能科技有限公司 保留所有权利