CS機器人獲取用戶坐標下當前位姿
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腳本手冊,具體參數手冊都有詳細解析,指令編輯框內有一些常用的指令函數,例如位姿變換獲取當前位姿等等可直接插入使用。鏈接如下:
http://www.996cqq.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.