CS机器人获取用户坐标下当前位姿

2024-11-05

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

#直线移动指令

#移动的路点


download-669.svg comicon14.svg

电话咨询

download-397.svg comicon15.svg

免费试用

Vector.svg Frame.svg

微信小程序

img1.jpg

微信小程序

准备好突破增长瓶颈,开启智能制造了吗?
了解我们的机器人如何帮助您的业务增长
欢迎下载艾利特机器人资料

我已阅读并同意艾利特《隐私政策》《法律声明》

我已知晓并同意艾利特通过电子邮件发送相关资料

提交