CS機器人獲取用戶坐標下當前位姿
1.簡介
由于CS系列沒有直接獲取用戶坐標下當前位姿的指令,故根據所需求編寫對應獲取程序,方便用戶后續(xù)使用。
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,弧度轉角度,以供后續(xù)使用
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,弧度轉角度,以供后續(xù)使用
3.2指令如何獲取
上述指令腳本內容可查看CS腳本手冊,具體參數手冊都有詳細解析,指令編輯框內有一些常用的指令函數,例如位姿變換獲取當前位姿等等可直接插入使用。

4.示例
示例內容:獲取用戶坐標系位姿后,運行至該點的Z方向20mm處。
獲取到用戶坐標下位姿之后,可更改該數據,插入moveL指令(位姿數據用movel指令,關節(jié)數據用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
#直線移動指令
#移動的路點