发布时间: 2025-12-26

获取用户坐标系下当前位姿


1.简介

由于CS系列没有直接获取用户坐标下当前位姿的指令,故根据所需求编写对应获取程序,方便用户后续使用。

2.操作流程

根据位姿变换指令,将base坐标系下的位姿(下方示例中get_actual_tcp_pose())转换成user坐标系(下方示例中坐标系_1)下的位姿(var_1)

var_1:= pose_trans(pose_inv(坐标系_1),get_actual_tcp_pose())
# 得到在用户坐标系下的位姿 

2.1获取用户坐标系下的位姿

这里用到的是赋值指令将转换完成的值赋值到var_1,也可以直接使用脚本指令赋值转换。

程序解析

var_1:= pose_trans(pose_inv(坐标系_1),get_actual_tcp_pose())
# 得到在用户坐标系下的位姿 
 
var_1:= [var_1[0]*1000,var_1[1]*1000,var_1[2]*1000,r2d(var_1[3]),r2d(var_1[4]),r2d(var_1[5])]
# 视情况将M单位转换为mm,弧度转角度,以供后续使用
 

2.2用户坐标系下的位姿转换为基座下的位姿

根据位姿变换指令,将user坐标系(坐标系_1)下的位姿(下方示例中var_1)转换成base坐标系下的位姿(var_2)

程序解析

var_1:= pose_trans(pose_inv(坐标系_1),get_actual_tcp_pose())
# 得到在用户坐标系下的位姿var_1 
 
var_2:= pose_trans(坐标系_1,var_1)
# 转换为基座标系下的位姿var_2 
 

3.  常见问题解答

3.1数据单位转换

机器人中获取的位姿数据单位,X Y Z是M米为单位,RX RY RZ是以rad弧度为单位;所以在运行点位数据时也同样需要注意将计量单位转换为M米和rad弧度。

例:

var_1:= [var_1[0]*1000,var_1[1]*1000,var_1[2]*1000,r2d(var_1[3]),r2d(var_1[4]),r2d(var_1[5])]
# 视情况将M单位转换为mm,弧度转角度,以供后续使用

 

3.2指令如何获取

上述指令脚本内容可查看CS脚本手册,具体参数手册都有详细解析,指令编辑框内有一些常用的指令函数,例如位姿变换获取当前位姿等等可直接插入使用。链接如下:技术资料_机器人技术-艾利特机器人

 

 

4.示例

示例内容:获取用户坐标系位姿后,运行至该点的Z方向20mm处。

获取到用户坐标下位姿之后,可更改该数据,插入moveL指令(位姿数据用movel指令,关节数据用movej指令)路点类型选择为可变路点。

 

程序解析

var_1:= pose_trans(pose_inv(坐标系_1),get_actual_tcp_pose())
# 得到在用户坐标系下的位姿var_1 
 
var_1:= [var_1[0],var_1[1],var_1[2]+0.02,var_1[3],var_1[4],var_1[5]]
# Z方向增加20mm 
 
MoveL
var_1 
#直线移动指令
	#移动的路点
 

 

 

提交反馈