CS机器人坐标系偏移(用户,基座,工具)
1. 简介
机器人的偏移功能是指对于程序中的已经示教好的轨迹进行位置或姿态上的变化。以满足用户对于某些使用场景的需求。三个关键点:位置、姿态和变化。其中的"位置"指的是点位或者轨迹在参考坐标系的三维空间中所在处。姿态是机器人末端控制点绕参考坐标系的X、Y、Z轴的一个旋转角度。而变化是我们依据什么参考坐标系(用户/基座/工具)和规则进行空间位置的矢量移动和TCP点的绕坐标系旋转。
2.坐标系介绍与偏移方法
2.1基座标
基坐标系是以机器人安装基座为基准、用来描述机器人本体运动的直角坐标系。 任何机器人都离不开基坐标系,也是机器人TCP在三维空间运动空间所必须的基本坐标系(面对机器人正前后:X轴,左右:Y轴,上下:Z轴),坐标系遵守右手准则
艾利特机器人基座标系位置方向图
2.1.1基座标偏移
2.1.1.1示例1
先添加移动指令坐标系改成基座标系,和当前的使用的tcp。
添加偏移的函数pose_add
选择用路点1作为偏移的基准,第二个参数内的z方向偏移+100mm。
艾利特机器人读写坐标系值为国际通用单位(x,y,z是米/m,rx,ry,rz是弧度/rad)。
图中列表中数据得代表得顺序是[x,y,z,rx,ry,rz]
[0,0,0.1,0,0,0]=z正方向增加0.1米得偏移量。
只有X,Y,Z,能直接加减偏移,Rx,Ry,Rz是不能直接加减偏移的。使用时要注意此项。
在添加一个可变位置,修改成我们偏移计算过后得offset_point,就到达偏移后得位置。
2.1.1.2示例2
可以直接使用路点_1的值进行加减赋值给offset_point,实现点位偏移。
只有X,Y,Z,RZ能直接加减偏移,Rx,Ry是不能直接加减偏移的。使用时要注意此项。
2.2用户坐标系
用户坐标系是用户对每个作业空间进行自定义的直角坐标系,它用于的示教和执行、位置补偿指令的执行等。
2.2.1用户坐标偏移
只有X,Y,Z,RZ,四个方向能直接加减偏移,Rx,Ry是不能直接加减偏移的。使用时要注意此项。
建立新的用户坐标系
根据作业空间的平面来示教三点建立用户坐标系。先示教原点,再示教X,Y,的正方向自。在三维坐标系中,如果已知 X 和 Y 轴的方向,可以使用右手定则确定 Z 轴的正方向。
用户坐标系的偏移流程-把基座标系下存储的点位数据转换成用户坐标系下的数据进行加减后-再转换回基座标系下运行,这样可以再添加移动指令时配置只选择基坐标系方便后期维护。
以下是操作流程
2.2.1.1示例1
编写以下脚本代码把偏移功能封装成函数。
def Offs(p,x,y,z,user=[0,0,0,0,0,0]):
# 传入的p是基于base坐标系的
out = p.copy()
out_in_user = pose_trans(pose_inv(user),out)
# 得到在用户坐标系下的值
out_in_user[0] = out_in_user[0]+x
out_in_user[1] = out_in_user[1]+y
out_in_user[2] = out_in_user[2]+z
out = pose_trans(user,out_in_user)
# 返回的是计算后,转化回base坐标系下的值
return out
按照以下步骤填写函数内参Offs(偏移基准点,x,y,z,rz,用户坐标系)
返回值就是再用户坐标系下的进行偏移后的位置,再转换回基座标来运行点位。
2.2.1.2示例2
直接偏移用户坐标系,这样再用户坐标系上的所有点也会按照偏移的方向移动。使用pose_trans函数。
2.3工具坐标系
工具坐标系是机器人系统对其位置的描述和控制是以机器人的工具TCP(tool center point)为基准的,为机器人所装工具建立工具坐标系,可以将机器人的控制点转移到工具末端,方便手动操纵和编程调试。
默认工具坐标系得位置
2.3.1工具坐标系偏移
2.3.1.1示例1
工具坐标系偏移可以直接使用 函数来偏移x,y,z,rx,ry,rz
如下图
2.3.1.2示例2
任务里基本指令自带了方向这个指令,可以实现单方向的从当前位置进行偏移距离,相比其他偏移方式更为简单,操作步骤如下图
3. 常见问题
3.1在基坐标和用户坐标系下,只能加减x,y,z,rz四个数据。
3.2在工具坐标系是可以对六个数据进行加减的
3.3读写坐标系的偏移值要注意数字的单位(x,y,z米/m,rx,ry,rz弧度/rad)
3.4要注意偏移后的点位数据是在那个坐标系下,与移动指令配置中的是否相同。