摘要:針對(duì)SCARA機(jī)器人末端在做直線運(yùn)動(dòng)" title="直線運(yùn)動(dòng)">直線運(yùn)動(dòng)時(shí)難以判定是否到達(dá)極限位置的問題,提出一種基于幾何學(xué)的求解算法,用于精確計(jì)算出任意末端位置與可變工作空間條件下的直線運(yùn)動(dòng)極限點(diǎn)" title="極限點(diǎn)">極限點(diǎn)位置坐標(biāo)值。并分別在左、右手系下通過MATLAB理論仿真與VC實(shí)際開發(fā)相對(duì)應(yīng)的方式驗(yàn)證了該算法的正確性和可行性。
關(guān)鍵詞:SCARA機(jī)器人; 直線運(yùn)動(dòng); 極限點(diǎn); MATLAB; VC
1. 引 言
SCARA機(jī)器人(Selective Compliance Assembly Robot Arm,選擇順應(yīng)性裝配機(jī)器手臂)是一種四軸" title="四軸">四軸機(jī)械手,它的第一、二、四軸具有轉(zhuǎn)動(dòng)特性,而第三軸具有線性移動(dòng)特性,故其工作空間類似于一個(gè)扇形柱體區(qū)域。SCARA機(jī)器人主要用于完成搬運(yùn)、裝配等職能工作,目前廣泛應(yīng)用于汽車、電子、塑料、藥品、食品等工業(yè)領(lǐng)域。
當(dāng)SCARA機(jī)器人在流水線上進(jìn)行往復(fù)運(yùn)動(dòng)時(shí),其末端點(diǎn)經(jīng)常會(huì)處于直線運(yùn)動(dòng)狀態(tài)。由于末端位置與工作空間會(huì)隨實(shí)際工況的要求而發(fā)生變化,預(yù)先確定末端在直線運(yùn)動(dòng)下的極限點(diǎn)坐標(biāo),并提前設(shè)定軟件限位,對(duì)于防止過度驅(qū)動(dòng)或錯(cuò)誤操作下的機(jī)器人碰撞與損壞,具有非常重要的現(xiàn)實(shí)意義。因此,本文基于幾何學(xué)理論,提出一種用于求解末端直線運(yùn)動(dòng)下的極限點(diǎn)位置坐標(biāo)的算法。
2. 算法設(shè)計(jì)
假定SCARA機(jī)器人的基座安裝在水平面內(nèi),依照從基座到末端的順序,將其四個(gè)軸分別命名為X、Y、Z、R軸,且將R軸末端視為一個(gè)點(diǎn)(設(shè)為End),若在R軸末端安裝夾具,則將夾具末端也視為一個(gè)點(diǎn)(設(shè)為Tip)。
2.1 前提條件
本算法的實(shí)現(xiàn)基于如下三個(gè)客觀前提條件:
(1) 由于Z軸僅在豎直平面內(nèi)做上下運(yùn)動(dòng),并不會(huì)影響End點(diǎn)的水平面投影位置。而在不安裝夾具的情況下,R軸的旋轉(zhuǎn)運(yùn)動(dòng)也不會(huì)對(duì)此產(chǎn)生影響;再者,由于夾具沒有附帶對(duì)應(yīng)的驅(qū)動(dòng)裝置,即使安裝夾具也僅相當(dāng)于將End點(diǎn)的水平面投影點(diǎn)在二維空間內(nèi)相對(duì)平移了一個(gè)固定的矢量位置,擴(kuò)展了一定的工作空間范圍,但求解Tip點(diǎn)的直線運(yùn)動(dòng)極限點(diǎn)坐標(biāo)的思想與End點(diǎn)完全一致。所以,Z軸和R軸的運(yùn)動(dòng)都不會(huì)影響到末端點(diǎn)的水平面投影位置。
(2) 由于SCARA機(jī)器人的工作空間是一個(gè)類似于扇形的柱體區(qū)域,將其投影在水平面上并不會(huì)使工作空間的邊界發(fā)生改變。所以,End點(diǎn)的直線運(yùn)動(dòng)是否超出工作空間的范圍僅與X、Y兩軸的運(yùn)動(dòng)有關(guān)。
(3) 由于End點(diǎn)(或Tip點(diǎn))在水平面二維空間下的直線運(yùn)動(dòng)有無窮多種可能的方向,而每種方向均與x-y直角坐標(biāo)軸成一定角度,經(jīng)旋轉(zhuǎn)變換后都能歸結(jié)到與坐標(biāo)軸平行的方向上。所以,本算法只針對(duì)分別平行于x-y直角坐標(biāo)軸的兩種直線運(yùn)動(dòng)求解四個(gè)極限點(diǎn)坐標(biāo)即可,其余運(yùn)動(dòng)方向上的極限點(diǎn)坐標(biāo)可參照本算法旋轉(zhuǎn)相應(yīng)角度后求解。
2.2 設(shè)計(jì)過程" title="設(shè)計(jì)過程">設(shè)計(jì)過程
設(shè)基座位于x-y直角坐標(biāo)系的原點(diǎn)O,SCARA機(jī)器人的大、小臂均完全展開時(shí)的姿態(tài)與x軸正向重合,為初始狀態(tài),規(guī)定兩臂旋轉(zhuǎn)的方向均取逆時(shí)針為正,順時(shí)針為負(fù),據(jù)此建立幾何學(xué)模型。先由四條平面圓?。ㄔO(shè)為C1~C4)確定水平面工作空間,同時(shí)給定末端當(dāng)前點(diǎn)(設(shè)為Now)的坐標(biāo);再過點(diǎn)Now分別作兩條坐標(biāo)軸的平行線(設(shè)平行于x軸的直線為Line_H、平行于y軸的直線為Line_V),與邊界圓弧相交;然后分別求出Line_H、Line_V與C1~C4的8個(gè)交點(diǎn),若無交點(diǎn)則默認(rèn)交點(diǎn)坐標(biāo)為點(diǎn)Now的坐標(biāo)值;接著判斷交點(diǎn)中的有效點(diǎn);最后確定出四個(gè)極限點(diǎn)(設(shè)為P1~P4)的位置坐標(biāo)即為所求。
2.3 交點(diǎn)判定
從上述設(shè)計(jì)過程可知,所求的左、右極限點(diǎn)必然在Line_H與圓弧邊界的交點(diǎn)之中,而上、下極限點(diǎn)必然在Line_V與圓弧邊界的交點(diǎn)之中。所以,本算法的關(guān)鍵在于交點(diǎn)的判定。因?yàn)镾CARA機(jī)器人在做直線運(yùn)動(dòng)時(shí)不會(huì)更換手系,所以可將左、右手系分開考慮。
在右手系下,圓弧C1~C4依次首尾相連圍成一個(gè)封閉區(qū)域,如圖1所示。其中,C1弧為小臂處于正向最大姿態(tài)且大臂自由運(yùn)動(dòng)時(shí)End點(diǎn)的軌跡,C2弧為小臂始終處于大臂的延長線上且大臂自由運(yùn)動(dòng)時(shí)End點(diǎn)的軌跡,C3弧為大臂處于正向最大姿態(tài)且小臂自由運(yùn)動(dòng)時(shí)End點(diǎn)的軌跡,C4弧為大臂處于負(fù)向最小姿態(tài)且小臂自由運(yùn)動(dòng)時(shí)End點(diǎn)的軌跡。Now點(diǎn)位于這個(gè)封閉區(qū)域內(nèi),P1~P4點(diǎn)的判定遵循如下原則:(1) P1、P2、P3、P4分別位于Now點(diǎn)的左、右、下、上方;(2) 各極限點(diǎn)在各自方位上均與Now點(diǎn)的直線距離最短;(3) 線段P1P2、P3P4均不穿過C1弧與坐標(biāo)原點(diǎn)O圍成的工作死區(qū)。
左手系與右手系類似,不再敖述。
3. 仿真與實(shí)現(xiàn)
本文采用MATLAB仿真與VC實(shí)現(xiàn)相對(duì)應(yīng)驗(yàn)證的方式對(duì)算法加以說明。
3.1 MATLAB仿真
3.1.1 右手系
設(shè)最大工作空間取值范圍如下:X軸為 ,Y軸為 ,當(dāng)前末端點(diǎn)位置坐標(biāo)為 ,最終所求的右手系下的4個(gè)極限點(diǎn)P1、P2、P3、P4的直角坐標(biāo)值為(如圖2所示):
3.1.2 左手系
左手系下的實(shí)現(xiàn)過程與右手系類似,如圖3、圖4所示。不同的只是Y軸的工作空間取值范圍為 ,當(dāng)前末端點(diǎn)位置坐標(biāo)仍然取為 ,最終所求的左手系下的4個(gè)極限點(diǎn)P1、P2、P3、P4的直角坐標(biāo)值為(如圖4所示):
圖3 左手系下的工作空間與當(dāng)前點(diǎn)
圖4 左手系下的極限點(diǎn)求解
需要說明的是,上述仿真示例只是給出了最大工作空間,在該工作空間內(nèi)可選取任意子空間及包含其中的當(dāng)前末端點(diǎn)進(jìn)行仿真,仿真結(jié)果均表明,本算法能正確計(jì)算并確定SCARA機(jī)器人末端直線運(yùn)動(dòng)下的四個(gè)極限點(diǎn)坐標(biāo)。
3.2 VC實(shí)現(xiàn)
采用VC開發(fā)軟件封裝功能函數(shù),實(shí)現(xiàn)本算法。右、左手系下的界面分別如圖5、圖6所示。選取與上節(jié)MATLAB仿真示例中相同的工作空間與末端當(dāng)前位置坐標(biāo)等參數(shù),求解出的四個(gè)極限點(diǎn)坐標(biāo)與MATLAB結(jié)果完全對(duì)應(yīng)相同。
3.2.1 右手系
3.2.2 左手系
圖6 左手系下的算法實(shí)現(xiàn)
4. 結(jié) 論
本文提出了一種SCARA機(jī)器人直線運(yùn)動(dòng)極限點(diǎn)的求解算法,并通過MATLAB仿真與VC實(shí)現(xiàn)進(jìn)行了對(duì)應(yīng)驗(yàn)證。該算法能有效預(yù)測(cè)并解決實(shí)際操作中的安全問題,具有較強(qiáng)的實(shí)用價(jià)值。然而,考慮SCARA機(jī)器人的末端當(dāng)前點(diǎn)正好位于工作空間的邊界位置時(shí),求解對(duì)應(yīng)的極限點(diǎn)坐標(biāo),將是進(jìn)一步研究的一個(gè)方向。