李佳軒,田溢汕,余 潔,盧新建,趙永杰
(1.汕頭大學工學院,廣東汕頭 515063;2.廣東省智行機器人科技有限公司,廣東佛山 528000)
隨著世界經(jīng)濟和工業(yè)科技的不斷發(fā)展,機器人的應用領域日益廣泛,各式各樣的機器人在人們的生產(chǎn)生活中發(fā)揮著重大的作用。傳統(tǒng)機器人是結(jié)構(gòu)簡單、運動形式單一的剛性機器人,其承載能力較強,維護比較方便,一直沿用至今,并且在一些特定場合的應用不可替代[1]。但在一些復雜的工作環(huán)境下,傳統(tǒng)機器人的剛性結(jié)構(gòu)和有限的自由度限制了其運動的靈活性和復雜性,難以順利完成任務,因此學界將目光轉(zhuǎn)向超冗余機器人,以應對機器人在特殊工作環(huán)境下的應用需求。
超冗余機器人是指自由度數(shù)遠遠多于完成作業(yè)任務所需最少自由度的機器人[2]。目前研究較為成熟的傳統(tǒng)機器人通常僅有6 個自由度,對于工作空間中的每一個位姿僅有一個對應的位置逆解,對狹窄、多障礙空間的適應性較差,而超冗余機器人的自由度可達10 個以上,對于同一個目標位姿可能擁有無窮多個位置逆解,這使它具有遠超傳統(tǒng)機器人的環(huán)境適應性和避障能力,能夠在狹小、非結(jié)構(gòu)化的環(huán)境中執(zhí)行復雜的任務。迄今為止,超冗余機器人已在航天航空[3]、醫(yī)療[4]、核電[5]等高科技產(chǎn)業(yè)中投入使用,在復雜環(huán)境中的探測、搜救[6]等工作中更表現(xiàn)出了遠超傳統(tǒng)機器人的優(yōu)勢。隨著相關研究的推進,可以預見超冗余機器人還會有更廣闊的應用前景。但超冗余機器人的大量自由度也決定了它是一個高度耦合的多輸入多輸出非線性系統(tǒng),不僅無法求得唯一的位置逆解,要建立精確的動力學模型也十分困難,用傳統(tǒng)控制方法難以實現(xiàn)精準控制,其控制系統(tǒng)結(jié)構(gòu)也更為復雜,這使得超冗余機器人控制系統(tǒng)的搭建和控制算法的設計尤為重要。
本文對超冗余機器人控制系統(tǒng)的研究現(xiàn)狀進行總結(jié)。首先,介紹超冗余機器人控制系統(tǒng)的硬件部分和軟件部分的結(jié)構(gòu)及功能;隨后,列舉并簡要分析當前用于超冗余機器人控制的常用算法;最后,對超冗余機器人控制系統(tǒng)的未來發(fā)展方向進行展望。
機器人控制系統(tǒng)主要由主控單元、執(zhí)行機構(gòu)與檢測單元3 部分組成。主控單元是整個系統(tǒng)的核心,主要負責對機器人進行建模計算、運動規(guī)劃、軌跡插補等,并和用戶進行交互,獲取用戶的輸入?yún)?shù),將計算結(jié)果和機器人的狀態(tài)反饋給用戶。執(zhí)行機構(gòu)是直接對機器人運動驅(qū)動的機構(gòu),主要由運動控制單元和伺服電機等驅(qū)動器組成。檢測單元則是機器人內(nèi)部或外部安裝的各種傳感器。
在超冗余機器人的控制中,每次的軌跡插補運算后,還需要進行運動學逆解變換得到驅(qū)動關節(jié)的位置輸入變量,而超冗余機器人的運動學逆解算法復雜,求解時間較長,對系統(tǒng)的運算能力有很高的要求。同時伺服驅(qū)動的控制周期通常只有數(shù)十微秒,周期內(nèi)需要完成如PID演算、二次插補等工作,這要求系統(tǒng)具有相應的實時處理能力,加上超冗余機器人的驅(qū)動單元數(shù)量遠多于傳統(tǒng)機器人,這些都決定了超冗余機器人的實時控制需要極大的計算量,單一主控機難以完成所有計算任務。因此,超冗余機器人的控制系統(tǒng)通常采用開放式、模塊化的設計方法來構(gòu)建,以多個控制器作為上位機、下位機,各自執(zhí)行一部分控制功能,控制眾多驅(qū)動單元運動。超冗余機器人開放式控制系統(tǒng)硬件架構(gòu)框圖如圖1所示。
圖1 超冗余機器人開放式控制系統(tǒng)硬件架構(gòu)
根據(jù)IEEE 的定義[7],開放式控制系統(tǒng)應當能夠運行于多種平臺上,并且能夠與其他系統(tǒng)實現(xiàn)通信交互,具有風格一致的人機交互界面。開放式控制系統(tǒng)主要具有可移植性、可互換性、可伸縮性、互操作性4 個優(yōu)點。PC 系統(tǒng)豐富的軟硬件資源、友好的人機交互界面和成熟的計算機編程技術,使得基于PC的軟硬件平臺成為了機器人開放式控制系統(tǒng)的首選[8]。以通用PC 為主控機的開放式控制系統(tǒng)可兼容C、C++、VB 以及C#等多種編程語言,并可選用通用運動控制器,在一套共同的標準平臺下簡便地進行控制系統(tǒng)的開發(fā)、移植和改良。模塊化的設計方法將控制任務分配給下位機或運動控制卡,由一個或多個下位機對超冗余機器人的眾多驅(qū)動單元進行控制,再由上位機進行總體調(diào)度,從而彌補單PC在運算能力方面的不足。開放式控制系統(tǒng)的模塊化設計允許用戶根據(jù)自身需求選擇合適的功能模塊進行系統(tǒng)的集成和擴展,進一步提高了系統(tǒng)的靈活性和易用性。根據(jù)下位機的種類不同,超冗余機器人的開放式控制系統(tǒng)可進一步分為PC+PC、PC+分布式控制器、PC+多軸運動控制卡等多種控制模式[9]。PC雖然具有通用性強、開發(fā)環(huán)境良好、操作界面簡單直觀等作為上位機的優(yōu)勢,但它不是實時性操作系統(tǒng),不適合在對實時性要求較高的控制任務中擔當下位機的職責,而運動控制卡具有實時性好、伺服控制能力優(yōu)秀的長處,能夠和PC 實現(xiàn)很好的優(yōu)勢互補,因此PC+多軸運動控制卡的控制模式逐漸成為超冗余機器人開放式控制系統(tǒng)的主流選擇[10]。
控制系統(tǒng)軟件是控制系統(tǒng)與用戶之間的橋梁,用戶通過控制軟件界面發(fā)送各種指令控制機器人滿足一定的功能需求。超冗余機器人的控制軟件系統(tǒng)結(jié)構(gòu)復雜,對控制軟件的設計方法提出了更高的要求。要建立一個簡潔、實用性強的控制軟件系統(tǒng)需要遵循模塊化和層次化的設計原則。模塊化的設計原則即根據(jù)控制軟件的不同功能需求將軟件劃分為不同的功能模塊,每個模塊既相對獨立,又可以互相組合以實現(xiàn)更為復雜的功能。遵循這樣的設計原則,不僅便于軟件系統(tǒng)的開發(fā)和升級,而且方便開發(fā)人員對軟件的故障診斷排查。而層次化的設計原則要求將軟件不同的功能模塊劃分為職能各異的層次,每個職能層中的各個功能模塊相互結(jié)合,在控制系統(tǒng)中擔任不同的任務。對于軟件結(jié)構(gòu)復雜的系統(tǒng),該設計準則方便開發(fā)人員在開發(fā)過程中對整個軟件有一個清晰的認識,便于開發(fā)人員之間的分工合作。
根據(jù)不同的職能,超冗余機器人軟件系統(tǒng)可以自上而下分為4個層次:應用層、功能層、執(zhí)行層和驅(qū)動層,每個層次包含著多個功能模塊[11]。各層次的關系和功能模塊分布如圖2所示。
圖2 超冗余機器人控制系統(tǒng)軟件架構(gòu)
超冗余機器人控制軟件各層次及模塊的具體功能如下。
(1)應用層。包括面向用戶的功能及對整個控制系統(tǒng)進行管理和調(diào)度的功能。該層主要包含的功能模塊有人機交互界面模塊、任務管理模塊、系統(tǒng)參數(shù)管理模塊和運動狀態(tài)監(jiān)控模塊。人機交互界面模塊便于用戶輸入和監(jiān)控各項參數(shù),以便對機器人進行控制和維護。任務管理模塊為用戶指定機器人任務提供接口。系統(tǒng)參數(shù)管理模塊可對機器人的結(jié)構(gòu)參數(shù)、運動控制參數(shù)等參數(shù)進行系統(tǒng)管理。狀態(tài)監(jiān)控模塊能夠幫助用戶了解機器人的實時運動狀態(tài)以及伺服驅(qū)動器狀態(tài)。
(2)功能層。主要實現(xiàn)機器人的運動學計算、運動規(guī)劃以及三維仿真。該層次主要包含的模塊有運動學計算模塊、軌跡規(guī)劃模塊、軌跡插補模塊、仿真模塊。運動學計算模塊是針對不同的結(jié)構(gòu)參數(shù)生成不同的運動學算法,軌跡規(guī)劃模塊是對任務模塊中的特定任務進行軌跡規(guī)劃,軌跡插補模塊是在關節(jié)空間進行插補,使機器人能夠平穩(wěn)無沖擊地運動。
(3)執(zhí)行層。執(zhí)行層是功能層和驅(qū)動層的樞紐,將具體的機器人運動任務轉(zhuǎn)化為對每個伺服電機的控制。該層主要包括運動控制函數(shù)調(diào)用模塊與數(shù)據(jù)傳輸函數(shù)調(diào)用模塊。這些模塊可以調(diào)用運動控制卡所提供的函數(shù)以實現(xiàn)對底層電機以及外圍設備的控制。
(4)驅(qū)動層。驅(qū)動層主要實現(xiàn)對電機的精準控制,以及外圍設備的控制,比如繼電器、按鈕、指示燈等。該層主要包括多軸伺服驅(qū)動模塊與通訊、IO驅(qū)動模塊。
以上層級與模塊包括了超冗余機器人控制系統(tǒng)軟件所需實現(xiàn)的各項基本功能。根據(jù)不同的任務要求及控制系統(tǒng)設計方法,也可以對這些模塊進行進一步地重組或細分,以改進控制系統(tǒng)的性能,方便用戶使用。
超冗余機器人的控制方法是超冗余機器人研究中最重要、也最復雜的問題之一[12]。超冗余機器人輸入變量多,動力學非線性強,耦合程度高,因而難以建立精確的動力學模型,進而影響控制精度。此外,超冗余機器人的系統(tǒng)中還存在許多難以精確辨識的未知參數(shù),其部分動力學參數(shù)也會在運動過程中不斷變化,加上大量自由度帶來的龐大計算量負擔,這些都為超冗余機器人的實時控制帶來了困難[13]。總的來說,傳統(tǒng)的控制方法難以滿足超冗余機器人實時控制的要求。目前學界已經(jīng)針對超冗余機器人的控制提出了多種方法,如PID 控制、自適應控制、神經(jīng)網(wǎng)絡控制、滑模控制等[14]。
超冗余機器人研究初期,由于缺乏合適的控制模型和理論,大多數(shù)機器人都選用傳統(tǒng)的PID 算法進行控制[15]。最早研究超冗余機器人控制方法的Jones 和Walker[16]針對其研發(fā)的OctArm 超冗余機械臂,采用基于運動學模型的關節(jié)空間PD 控制器實現(xiàn)了實時位姿控制。Ivanescu等探討了連續(xù)型機械臂卷曲抓取運動中的運動穩(wěn)定性問題,基于Kahman-Yakubovich-Popov 引理和比例微分算法提出了連續(xù)型機械臂的穩(wěn)定性標準,并對抓取物體運動過程中的載荷控制進行了分析[17]。傳統(tǒng)PID 控制算法對復雜度極高的超冗余機器人來說效果并不是很理想,但是其原理簡單、魯棒性較強的優(yōu)勢使其適于針對復雜的控制對象進行改進。徐文福等[18]設計了一種結(jié)合動力學前饋環(huán)節(jié)的PD控制算法對繩驅(qū)動超冗余機器人進行了控制,并對繩索建立了精細的動力學模型,從而提高了控制精度。覃程錦等[19]研究了一種結(jié)合計算力矩PD控制與繩索拉力優(yōu)化的繩驅(qū)動超冗余機器人控制算法,該算法能夠在確保繩索拉力在許用范圍內(nèi)的前提下有效減小外力擾動帶來的軌跡跟蹤誤差。
自適應控制是一種建立在模糊邏輯基礎上的控制方法。模糊邏輯適合處理具有較強不確定和不精確性的系統(tǒng),然而對時變的、非線性不確定的復雜系統(tǒng)采用模糊控制時控制規(guī)則的設定將會過于繁復;而自適應控制通過實時觀測控制對象的運動狀態(tài)變化,在線調(diào)節(jié)模糊控制規(guī)則,從而彌補模糊邏輯控制的不足,實現(xiàn)魯棒控制[20]。Yi等[21]設計了一種模糊自適應PD控制策略,結(jié)合機器人本體的旋轉(zhuǎn)運動對冗余機械臂進行控制,該方法利用模糊邏輯,考慮機器人仿人類姿態(tài)的運動特性,基于角動量誤差主動調(diào)整各項控制參數(shù)。Benzaoui 等[22]設計了一種針對不確定模型的冗余機器人的模糊自適應控制方案,通過濾波跟蹤誤差將機械臂自運動并入自適應模糊控制,并驗證了使用該方法控制的機械臂在復雜環(huán)境中的避障性能。
神經(jīng)網(wǎng)絡控制即是利用神經(jīng)網(wǎng)絡對機器人的位置和誤差進行預測和補償,從而對機器人進行控制的技術。神經(jīng)網(wǎng)絡控制無需建立精確的動力學模型,而是通過非線性學習逼近控制對象的動力學規(guī)律,從而避開復雜的計算過程而較為準確地完成辨識任務,適合對復雜非線性、難以獲得精確動力學模型的機器人進行控制和參數(shù)辨識[23]。Braganza 等[24]研究了連續(xù)型冗余機器人的神經(jīng)網(wǎng)絡控制方法,利用神經(jīng)網(wǎng)絡的前饋分量對機器人運動過程中的誤差進行預補償以應對機器人的動態(tài)不確定性,有效地改善了機器人的動態(tài)跟隨誤差。Jasour 等[25]設計了一種適用于非線性模型機器人的神經(jīng)網(wǎng)絡預測控制方法,該方法可以跟蹤給定的運動路徑或目標位姿,在運動過程中兼顧回避障礙物及奇異位形。對于模型復雜非線性的超冗余機器人來說,神經(jīng)網(wǎng)絡控制也是一個較好的選擇,然而由于超冗余機器人自由度數(shù)量過多,神經(jīng)網(wǎng)絡的計算量較大,計算時間較長,難以用于實時控制。
滑模變結(jié)構(gòu)控制是一種使機器人的運動貼近預設的滑模面,從而動態(tài)補償機器人運動的非線性控制方法,具有響應速度快、無需在線辨識、受擾動及參數(shù)變化影響小等優(yōu)勢,然而其控制對象在到達滑模面后容易在滑模面兩側(cè)反復穿越,引發(fā)抖振現(xiàn)象[26]。Popescu 等[27]對一類超冗余機器人的滑??刂普归_了研究,將超冗余機器人視為一個無限維系統(tǒng),并使用空間加權(quán)誤差控制將其轉(zhuǎn)換成有限維系統(tǒng)的控制問題,從而提出了基于加權(quán)誤差滑??刂频乃惴ǎΥ朔椒刂频臋C器人進行了穩(wěn)定性分析。Kapadia[28]和Rucker[29]設計了一種基于非線性全動態(tài)模型的連續(xù)型機器人滑??刂撇呗浴T摲椒ㄟm用于同時具有伸縮及彎曲運動的連續(xù)型機器人。H K Lam等[30]將滑模變結(jié)構(gòu)控制與模糊邏輯結(jié)合,設計了一種模糊滑模控制方法,將其用于具有彎曲和伸縮運動的柔性連續(xù)型超冗余機械臂的控制。該方法在滑模控制的基礎上引入反饋增益,在維持滑??刂启敯粜詮姷膬?yōu)勢的同時抑制了系統(tǒng)的抖振問題,得到了良好的跟蹤控制效果。
除上述控制方法之外,還有很多被用于超冗余機器人控制的創(chuàng)新方法。Chang 等[31]提出了一種模塊化控制方法,該方法將超冗余機器人分割成若干個較小的獨立模塊,并使用基于雅可比矩陣的控制算法對每個模塊分別進行控制,該方法在充分發(fā)揮機器人各模塊的冗余性優(yōu)勢的同時能夠有效降低計算負擔。Pomares等[32]提出了一種冗余機器人的動態(tài)視覺控制方法,該方法應用混沌控制器對機器人運動進行實時補償,在不同速度狀態(tài)下均具有較好的控制性能。Lafmejani 等[33]設計了一種用于仿章魚觸手型超冗余機器人的軌跡跟隨控制的分散式控制器,該控制器能夠?qū)⒏咦杂啥葯C器人的非線性控制問題轉(zhuǎn)化為基于線性矩陣不等式的優(yōu)化控制問題,從而顯著降低了控制算法的復雜程度。
總的來說,現(xiàn)有的各種繩驅(qū)動超冗余機器人控制方法從不同的方面得到了更好的控制效果,然而由于繩驅(qū)動超冗余機器人固有的復雜性,這些計算方法通常有各自的局限性,有待進一步的研究予以發(fā)展和檢驗。
超冗余機器人控制系統(tǒng)研究面臨的主要問題在于超冗余機器人的結(jié)構(gòu)和數(shù)學模型的復雜性和強耦合性,以及由此帶來的控制系統(tǒng)和控制算法的結(jié)構(gòu)復雜、計算量大的問題。由此預見,未來超冗余機器人控制系統(tǒng)的主要研究方向?qū)?cè)重于以下方面:
(1)軟硬件系統(tǒng)方面。超冗余機器人的優(yōu)勢不僅在于其結(jié)構(gòu)帶來的靈活性,也在于其在模塊化可重構(gòu)設計方面的潛力,可以通過拆裝重組來實現(xiàn)自由度數(shù)目的改變或功能模塊的更換,而為了發(fā)揮它的這一優(yōu)勢就需要對它的開放式控制系統(tǒng)展開進一步的研究,開發(fā)更具通用性、靈活性的軟硬件框架,使超冗余機器人能夠更方便的進行模塊化設計,從而應對更加復雜多變的工作要求。
(2)數(shù)學模型方面。超冗余機器人的運動學逆解存在無窮多解,動力學解也存在高度的耦合性和不精確性,這些因素導致超冗余機器人數(shù)學模型計算效率低下、求解精度有限,從根本上制約了超冗余機器人的實時精確控制技術的發(fā)展。因此,通過引入智能高效算法對超冗余機器人的運動學逆解進行優(yōu)化、用合適的方法對動力學模型的不確定性部分進行估算和補償,可以顯著降低超冗余機器人控制過程中的計算量,提高超冗余機器人的控制性能。
(3)控制算法方面。目前關于超冗余機器人的控制算法已經(jīng)有了很多創(chuàng)造性的研究,能夠?qū)崿F(xiàn)較好的控制效果,但這些算法大多存在諸如計算過程繁瑣、通用性不強、應對外部擾動效果不佳等不足。為了進一步提升超冗余機器人的控制性能,有必要繼續(xù)研究超冗余機器人的實時控制算法和誤差補償技術,引入智能優(yōu)化算法以提升控制算法的計算效率,并針對開放式超冗余機器人控制系統(tǒng)設計通用性更強的控制算法,在各種復雜的工作環(huán)境下對控制效果進行檢驗,以確定更適合超冗余機器人的控制算法。
超冗余機器人作為一種多自由度、高復雜度的機器人,在具有更好的靈活性的同時,其控制系統(tǒng)相關技術問題也比傳統(tǒng)機器人更加困難。本文介紹了超冗余機器人控制系統(tǒng)的硬件部分和軟件部分,劃分并論述了開放式控制系統(tǒng)的硬件及軟件各層次的功能,指出超冗余機器人控制系統(tǒng)應向開放式、模塊化的方向發(fā)展。隨后,列舉了當前用于超冗余機器人控制的幾種常用方法,并分析了它們各自的優(yōu)勢和不足。總的來說,目前超冗余機器人控制技術方面的研究已經(jīng)有了相當多的成果,但在數(shù)學模型的建立方法和高效控制算法的研究等方面仍有不足,有待進一步的研究發(fā)展。隨著未來超冗余機器人的應用場合越來越多,超冗余機器人控制技術相關的研究也必將更受矚目。