CS機(jī)器人獲取用戶坐標(biāo)下當(dāng)前位姿
1.簡(jiǎn)介
由于CS系列沒(méi)有直接獲取用戶坐標(biāo)下當(dāng)前位姿的指令,故根據(jù)所需求編寫對(duì)應(yīng)獲取程序,方便用戶后續(xù)使用。
2.操作流程
根據(jù)位姿變換指令,將base坐標(biāo)系下的位姿(下方示例中g(shù)et_actual_tcp_pose())轉(zhuǎn)換成user坐標(biāo)系(下方示例中坐標(biāo)系_1)下的位姿(var_1)
1.var_1:= pose_trans(pose_inv(坐標(biāo)系_1),get_actual_tcp_pose())
2.# 得到在用戶坐標(biāo)系下的位姿
2.1獲取用戶坐標(biāo)系下的位姿
這里用到的是賦值指令將轉(zhuǎn)換完成的值賦值到var_1,也可以直接使用腳本指令賦值轉(zhuǎn)換。


程序解析
1.var_1:= pose_trans(pose_inv(坐標(biāo)系_1),get_actual_tcp_pose())
2.# 得到在用戶坐標(biāo)系下的位姿
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單位轉(zhuǎn)換為mm,弧度轉(zhuǎn)角度,以供后續(xù)使用
6.
2.2用戶坐標(biāo)系下的位姿轉(zhuǎn)換為基座下的位姿
根據(jù)位姿變換指令,將user坐標(biāo)系(坐標(biāo)系_1)下的位姿(下方示例中var_1)轉(zhuǎn)換成base坐標(biāo)系下的位姿(var_2)


程序解析
1.var_1:= pose_trans(pose_inv(坐標(biāo)系_1),get_actual_tcp_pose())
2.# 得到在用戶坐標(biāo)系下的位姿var_1
3.
4.var_2:= pose_trans(坐標(biāo)系_1,var_1)
5.# 轉(zhuǎn)換為基座標(biāo)系下的位姿var_2
6.
3. 常見(jiàn)問(wèn)題解答
3.1數(shù)據(jù)單位轉(zhuǎn)換
機(jī)器人中獲取的位姿數(shù)據(jù)單位,X Y Z是M米為單位,RX RY RZ是以rad弧度為單位;所以在運(yùn)行點(diǎn)位數(shù)據(jù)時(shí)也同樣需要注意將計(jì)量單位轉(zhuǎn)換為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單位轉(zhuǎn)換為mm,弧度轉(zhuǎn)角度,以供后續(xù)使用
3.2指令如何獲取
上述指令腳本內(nèi)容可查看CS腳本手冊(cè),具體參數(shù)手冊(cè)都有詳細(xì)解析,指令編輯框內(nèi)有一些常用的指令函數(shù),例如位姿變換獲取當(dāng)前位姿等等可直接插入使用。鏈接如下:
http://m.4xiwenxue.cn/service/technical?kw=&type1=&type2=&type3=&type4=&type5=167&wd=1&tp=1
4.示例
示例內(nèi)容:獲取用戶坐標(biāo)系位姿后,運(yùn)行至該點(diǎn)的Z方向20mm處。
獲取到用戶坐標(biāo)下位姿之后,可更改該數(shù)據(jù),插入moveL指令(位姿數(shù)據(jù)用movel指令,關(guān)節(jié)數(shù)據(jù)用movej指令)路點(diǎn)類型選擇為可變路點(diǎn)。


程序解析
1.var_1:= pose_trans(pose_inv(坐標(biāo)系_1),get_actual_tcp_pose())
2.# 得到在用戶坐標(biāo)系下的位姿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.#直線移動(dòng)指令
10.#移動(dòng)的路點(diǎn)
11.