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

2024-11-04

1.简介

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

2.操作流程

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

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

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

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



程序解析

1.var_1:= pose_trans(pose_inv(坐标系_1),get_actual_tcp_pose())
2.# 得到在用户坐标系下的位姿
3.
4.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])]
5.# 视情况将M单位转换为mm,弧度转角度,以供后续使用
6.

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

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



程序解析

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

3.  常见问题解答

3.1数据单位转换

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

例:

1.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])]
2.# 视情况将M单位转换为mm,弧度转角度,以供后续使用

3.2指令如何获取

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

https://www.elibot.com/service/technical?kw=&type1=&type2=&type3=&type4=&type5=167&wd=1&tp=1


4.示例

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

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



程序解析

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

 11.



download-669.svg comicon14.svg

电话咨询

download-397.svg comicon15.svg

免费试用

Vector.svg Frame.svg

微信小程序

img1.jpg

微信小程序

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

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

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

提交