張 剛,布 挺,趙 冰,張 速
(1.洛陽理工學院電氣工程與自動化學院,河南 洛陽 471000;2.鄭州工程技術(shù)學院信息工程學院,河南 鄭州 450044;3.河南省嵌入式技術(shù)應用工程技術(shù)研究中心研發(fā)部,河南 洛陽 471003;4.華北水利水電大學信息工程學院,河南 鄭州 450046)
服務機器人相較于工業(yè)機器人,對使用的安全性與機械結(jié)構(gòu)的緊湊性的要求更高。由于服務機器人無法如工業(yè)機器人提供獨立的安全保護區(qū)域,所以機器人臂長的限制與末端集成度的要求就顯得尤為重要。為確保機器人手臂運動的迅速與準確,運動學問題是要解決的核心點。截至目前,學術(shù)界通過大量的實驗對機械臂的運動學進行了分析與研究。例如,Qiao 等[1]在逆運動學解耦運算過程中使用矩陣的奇異值分解法,針對高階系統(tǒng)的情況進行了優(yōu)化。趙鐵軍等[2]針對冗余7 自由度機械臂的工作空間進行了研究,對比了2種典型冗余自由度手臂,闡述了各自的特點。Grudic 等[3]提出了一種數(shù)值迭代方法,通過構(gòu)建機械手三元運動學方程組,解決了逆運動學求解問題,限于迭代法的本質(zhì)缺陷,在奇異點附近,雅克比矩陣不可逆或變?yōu)椴B(tài)矩陣的問題沒有得到解決,導致迭代無法進行[4]。Wei[5]提出了一種基于模糊系統(tǒng)對機械臂進行運動學建模的方法,同時利用仿真實驗驗證了理論的正確性。文獻中所闡述的方法,針對7 自由度冗余機械臂的效果不理想,無法穩(wěn)定地提供運動學解耦逆解,特別是對于冗余關(guān)節(jié)的處理,多數(shù)采用記錄該關(guān)節(jié)為特征值的方式,對于視覺伺服系統(tǒng)和連續(xù)軌跡跟蹤等使用環(huán)境,無法從傳感器獲取關(guān)節(jié)的特征值,導致方法的使用范圍被限制在示教的層面。本文提出的三層BP 神經(jīng)網(wǎng)絡(luò)結(jié)合解析解法的方式,兼顧了速度與穩(wěn)定性,通過控制神經(jīng)元數(shù)量的方式避免了大規(guī)模使用神經(jīng)網(wǎng)絡(luò)在全局最優(yōu)問題處理時開銷過大,而造成系統(tǒng)的實時性負擔。
本文將神經(jīng)網(wǎng)絡(luò)應用于6 自由度串聯(lián)機器人的逆運動學,將逆解過程轉(zhuǎn)化為網(wǎng)絡(luò)權(quán)值的訓練;以擬人服務機器人為研究對象建立數(shù)學模型,采用海量數(shù)據(jù)對網(wǎng)絡(luò)進行訓練;提出了一種用于冗余機器人逆運動學計算的遞歸神經(jīng)網(wǎng)絡(luò),提出的遞歸神經(jīng)網(wǎng)絡(luò)基于自反廣義逆問題,通過減少需要求解的矩陣方程數(shù)量和物理實現(xiàn)的復雜性,簡化了偽逆的計算。該遞歸神經(jīng)網(wǎng)絡(luò)具有漸近穩(wěn)定性,可用于求解冗余機械手的逆運動學問題。最后,用Matlab對該方法進行了分析,結(jié)果表明,利用神經(jīng)網(wǎng)絡(luò)可以快速有效地求解運動學逆問題。
圖1 為最新研發(fā)的擬人服務機器人樣機,主要分為2自由度頭部、7自由度的擬人雙臂以及由2個主動輪和3個從動輪構(gòu)成的移動底盤。
圖1 擬人服務機器人Fig.1 Humanoid service robot
為平衡機器人手臂與本體的長度與重量,使得機器人工作更加協(xié)調(diào)、穩(wěn)定,機械臂設(shè)計方案中采用高集成度末端[6]。如圖2 所示,機械臂的肩部到肘部為4個自由度,手腕部有3個自由度,工具為擬人抓手。
根據(jù)機器人手臂的結(jié)構(gòu)特點,研究過程中將手臂拆分為2 部分進行建模。本文對幾何約束下的仿人機器人手臂進行了運動學分析,在沒有方向信息的笛卡爾坐標位置變量下,可以解析得到仿人機器人手臂的所有關(guān)節(jié)值。該方法特別適用于仿人機器人手臂結(jié)構(gòu)的關(guān)節(jié)控制。將極坐標選取在機器人手臂的根部,考慮到該機器人左右2 個手臂的對稱分布特性,僅求解一條手臂即可等效映射于另一臂。
本文通過MDH 方法對擬人機械臂進行建模[7]。針對前四軸和腕部三軸的機構(gòu)分別建立了連桿坐標系,其坐標系分布如圖3所示。
圖3 連桿坐標系分布Fig.3 Linkage coordinate system distribution
腕部機構(gòu)的根部固接于第四軸末端,兩者運動學的合成即為總運動學正解。
在機器人學中,運動學正解是建立從各伺服電機的角度到末端執(zhí)行器的空間位姿映射的過程[8]。首先利用MDH 方法建立前四軸運動學關(guān)系,在此基礎(chǔ)上通過變換矩陣的連乘來建立機器人末端執(zhí)行器坐標系相對于機器人基礎(chǔ)坐標系的數(shù)學模型轉(zhuǎn)換關(guān)系,記為坐標變換矩陣:
機器人的運動學建模過程主要依賴于式(1)中的矩陣。MDH的參數(shù)如表1所示。
表1 MDH參數(shù)Tab.1 MDH parameters
根據(jù)上述參數(shù)可以得到各個關(guān)節(jié)之間的變換矩陣為
最后,得到4個連桿坐標變換矩陣的乘積:
式中:
腕部關(guān)節(jié)齊次變換矩陣如下:
由于腕部僅改變姿態(tài),可得
由式(18)可驗證,手臂的大臂與腕部關(guān)于末端位置與姿態(tài)是解耦的,這是本類型機械臂,逆運動學求解的最重要理論前提,也是設(shè)計機械臂的機械結(jié)構(gòu)時主要考慮的因素之一。
機器人擬人手臂的運動學解耦即為逆運動學[9]。機器人逆解過程中,需首先求解前四軸,依據(jù)前四軸確定末端位置,后三軸僅影響末端姿態(tài)的運動學解耦特性,方便對求解的方程進行降維,可有效提高求解過程的收斂速度,提高求解的穩(wěn)定性[10]。本文提出了一種求解擬人7 自由度機器人逆運動學的新方法,采用MDH 法求解機器人正運動學解。該方法將機器人的位置與姿態(tài)分離與代數(shù)迭代相結(jié)合,將7 自由度機器人的逆運動學解轉(zhuǎn)化為4 自由度機器人的位置冗余問題。利用Matlab 軟件編程實現(xiàn)了機器人關(guān)節(jié)運動的仿真。該方法計算量較小及實時控制及工業(yè)機器人控制。
2.2.1 求解前四軸
由于運動學方程為超越方程且具有較多的自由度,通常采用迭代方法進行求解。其中求解方程的全微分時運算開銷較大,且難以保證收斂速度,且傳統(tǒng)的牛頓迭代法無法解決方程數(shù)少于未知數(shù)個數(shù)的問題;若采用解析法,同樣無法解決上述問題,且解析計算過程中奇異點附近的逆解無法計算,求得部分中間變量為無窮大,導致機器人電機飛車,加劇機器人本體的磨損,降低機器人的壽命[11]。針對這一關(guān)鍵問題,將神經(jīng)網(wǎng)絡(luò)理論應用于機器人運動學理論中,學習精度變換。該神經(jīng)網(wǎng)絡(luò)根據(jù)精確的數(shù)據(jù)訓練,這些數(shù)據(jù)描述了實際機器人的運動學。該網(wǎng)絡(luò)通過學習關(guān)節(jié)角度的差異,提高了理論計算的關(guān)節(jié)角度與期望端點之間的精度。神經(jīng)網(wǎng)絡(luò)可以提高機器人的定位精度和位置重復性。神經(jīng)網(wǎng)絡(luò)的應用通過其涌現(xiàn)的泛化、容錯和自組織特性,降低了為新機器人開發(fā)控制器所需的計算能力、校準時間、維護成本和工程時間。
設(shè)N個樣本為(Pj,αj),其中j=1,2,…,N。Pj為網(wǎng)絡(luò)輸入向量,作為第j個位置樣本,αj作為第j個電機轉(zhuǎn)角為網(wǎng)絡(luò)輸出向量。可由如下公式將機器人運動學的非線性映射轉(zhuǎn)換為線性映射:
式中:wi、a1i為隱含層的節(jié)點i與輸入層的權(quán)值和閾值;wk、a2k為輸出層與隱含層間的權(quán)值和閾值。
神經(jīng)網(wǎng)絡(luò)拓撲結(jié)構(gòu)如圖4所示。
圖4 神經(jīng)網(wǎng)絡(luò)拓撲結(jié)構(gòu)Fig.4 Neural network topology
提出了一種基于神經(jīng)網(wǎng)絡(luò)的擬人服務機器人逆運動學求解方法。本文建立了神經(jīng)網(wǎng)絡(luò)來表示末端執(zhí)行器在正運動學方程中的x、y、z位置。網(wǎng)絡(luò)結(jié)構(gòu)有4 層:輸入層、2 個隱藏層、輸出層。輸入層和輸出層分別定義為機械手角度和末端執(zhí)行器位置。然后,網(wǎng)絡(luò)通過學習算法的反向傳播對權(quán)值進行更新,直到達到網(wǎng)絡(luò)輸出等于期望位置的條件。最后,利用網(wǎng)絡(luò)的最優(yōu)權(quán)值確定逆運動學解。利用神經(jīng)網(wǎng)絡(luò)求解冗余機器人的逆運動學問題,保證了訓練過程的收斂性。此外,可以通過增加學習率參數(shù)來提高訓練速度。該網(wǎng)絡(luò)使用較低的計算開銷,達到了較高的有效性,該算法能夠快速、準確地幫助機械手移動到所需要的位置。
2.2.2 求解腕部三軸
由腕部與手臂姿態(tài)解耦特征,可解得手腕部3個關(guān)節(jié)。
根據(jù)矩陣方程兩邊對應項相等可得
由于正切函數(shù)的周期性,機器人關(guān)節(jié)翻轉(zhuǎn)后可得到第二組解為
角度篩選可依據(jù)各關(guān)節(jié)的象限特征進行,最終獲得唯一解。以上為擬人手臂的運動學逆解。
根據(jù)機械臂的連桿與高集成腕部的機械參數(shù),通過Matlab 對運動學解耦算法的有效性進行仿真驗證。規(guī)劃機器人末端軌跡曲線,針對曲線上的所有插值點,依次通過解耦逆解得到全部7 個關(guān)節(jié)值,進而還原機器人末端的空間位置,以此實現(xiàn)對于軌跡的跟蹤,其效果如圖5所示,其中的2條曲線分別為規(guī)劃器生成的軌跡曲線和跟蹤軌跡時生成的曲線,兩條曲線的重合程度可以表示算法跟蹤空間位姿的準確性。
圖5 位置跟蹤曲線Fig.5 Position tracking curve
從圖5 中可得,2 條軌跡幾乎重合,證明本算法對于位置的跟蹤效果較好。經(jīng)過統(tǒng)計計算,2 條曲線上對應的插值點偏差樣本的均值小于0.001 mm,可以滿足服務機器人的實際需要。
通過樣機的控制系統(tǒng)總線采集機器人運動過程中7 個關(guān)節(jié)電機編碼器數(shù)據(jù),驗證解耦逆解算法的有效性。通過示教4 條MOVJ 指令,控制總線采集各個關(guān)節(jié)的編碼器數(shù)值,換算為各電機角度,如圖6所示。
圖6 機器人關(guān)節(jié)空間曲線Fig.6 Robot joint space curve
從圖6 可得,各個關(guān)節(jié)的空間軌跡連續(xù)且平滑,說明解耦逆解算法穩(wěn)定在大范圍內(nèi)無畸變;關(guān)節(jié)運動軌跡的起始和結(jié)束階段均為平段,說明所有關(guān)節(jié)的運動是同步進行的,運算結(jié)果會同時體現(xiàn)在各個電機的轉(zhuǎn)角上,也佐證了運動學算法的準確性;曲線的連續(xù)、平滑特性說明采集過程中數(shù)據(jù)更新的實時性較好,驗證了運算開銷滿足總控系統(tǒng)的實時性要求。
本文以擬人服務機器人為依托,利用人工神經(jīng)網(wǎng)絡(luò)學習機器人手臂的逆運動學進行逆運動學計算,該方法已被許多研究者采用。然而,傳統(tǒng)的學習方法對具有冗余自由度的關(guān)節(jié)典型機器人手臂的逆運動學系統(tǒng)具有無數(shù)解,沒有很好的解決辦法。擬人服務機器人手臂的逆運動學系統(tǒng)是一個多值、不連續(xù)的函數(shù),包括具有腕關(guān)節(jié)的人手臂。本文利用多層神經(jīng)網(wǎng)絡(luò)難以逼近該函數(shù),得到正確的末端執(zhí)行器整體位置和方向的逆運動學模型。針對傳統(tǒng)基于解析法逆運動學求解器的不足,提出了一種用于逆運動學模型學習的模塊化神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。在仿真實驗部分,通過Matlab 仿真軟件,驗證了本算法對于連續(xù)軌跡的良好跟蹤效果;同時為保證論證的嚴謹性,通過采集機器人總控系統(tǒng)總線中的驅(qū)動器編碼器信息,繪制了多段運動過程中,各個關(guān)節(jié)運動的位置軌跡曲線,通過曲線全域連續(xù)且平滑,驗證了解耦算法可在極大范圍內(nèi)確保逆運動學求解的有效性和穩(wěn)定性;總線采集數(shù)據(jù)無較長的水平段,可證明本算法運算速度滿足總線傳輸?shù)闹芷?,滿足總控系統(tǒng)的實時性要求。本文針對傳統(tǒng)的運動學問題,引入了神經(jīng)網(wǎng)絡(luò)來處理多輸入多輸出的復雜映射關(guān)系,改善了逆解的收斂速度過慢以致影響總控系統(tǒng)實時性的問題。目前,研究尚不夠完備,后續(xù)的研究工作中將針對該類型機械臂的動力學。