孫建召,趙進超
(1.河南經貿職業學院計算機工程學院,河南鄭州 450000;2.鄭州輕工業大學計算機與通信工程學院,河南鄭州 450000)
人機交互(Human-Robot Interaction,HRI)已成為一個重要的研究領域,由于其出色的性能,基于視覺的手勢感應技術已經吸引了許多人機交互專家的關注。
近年來,許多專家高度重視基于視覺技術的手勢感應技術。在人機交互領域,專家們已經提出并成功應用了許多方法,例如粒子群優化和遺傳算法。然而,在關注更細微的姿勢變化同時,減少機器人的誤差和能量消耗十分重要且具有挑戰性。KILIBOZ和GüDüKBAY提出一種基于軌跡的實時檢測和識別的動態手勢方法,通過建立快速學習手勢感應的機制,將手勢表示為定向運動的有序序列,提出的手勢識別方法具有一定的自適應性,具有用戶適應性。楊超等人針對水下機器人姿態穩定性控制問題,提出基于徑向基函數(RBF)神經網絡的水下機器人姿態自適應區域控制方法,該方法能夠降低機器人穩態誤差,通過實驗驗證了所提方法的有效性。李振浩等為實現仿生機械手抓取的目的,通過建立目標函數構建了適應度函數,利用遺傳算法對仿生機械手的結構尺寸進行了優化。易星等人針對具有初始誤差的機械手軌跡跟蹤誤差控制問題,提出了模糊自適應迭代學習方法,應用于機械手控制,并與傳統算法的控制效果相比,結果驗證了所提方法的有效性。陳瑩等人針對人機交互手勢識別,提出利用離散函數方法,通過歸一化手勢圖像實現手勢跟蹤和識別。LI等采用BP神經網絡和蟻群算法實現了機械手的軌跡控制,該算法通過實驗得到了驗證,相對于傳統算法,它在角位移擬合方面具有更好的性能。TAROKH和ZHANG介紹了一種用于冗余和非冗余機械手實時運動跟蹤的遺傳算法,將遺傳算子應用于一組適當生成的構型,末端執行器可以準確地跟蹤所需的工作空間軌跡。杜釗君等利用遺傳算法對移動機械臂的時間-沖擊最優、運行時間等參數進行了優化,實現了機械臂軌跡的準確跟蹤。DATTA等提出了一種多目標遺傳算法,用于找到機器人夾具的最優連桿尺寸和關節角度。此外,許多研究人員利用遺傳算法的優勢解決非線性問題,這表明它在工程應用中有重要作用。遺傳算法已被證明能夠同時評估參數空間中的多個點并收斂于全局解。
人機交互的發展逐漸呈現出多模態感知與平滑交互的特征,本文作者提出一種種群隨機多目標遺傳算法(Population Randomization Multi-Object Genetic Algorithm,PRMOGA)。同時,考慮人機交互機械手姿態識別優化中的終端誤差、跟蹤誤差和能耗的影響,對獲取的手勢進行特征點識別,根據識別的特征點建立人手臂手勢的運動學模型。在關節角度的優化中,為更好地設計機器人姿態的自適應種群隨機多目標遺傳算法,采用基于并行選擇的群隨機化方法,通過關節信息實現機器人平滑地適應人的手勢。為驗證所提算法的有效性,通過六自由度機械手進行交互實驗。用戶使用由Kinect傳感器、機械臂和計算機組成的交互系統,實現手勢的執行場景。結果表明:所提出的方法不僅可以降低能耗,而且在保證機械手臂跟蹤效果的同時,將終端誤差降低到3 mm以下。對比分析其他算法,所算法具有能量消耗少、軌跡誤差小的優勢,可有效提高機械臂姿態適應性。
以某六自由度機械手為實例分析種群隨機化的多目標遺傳算法問題。六自由度機械手運動學簡圖如圖1所示,表1所示為其相關參數。手臂動作簡化為3個關節的動作,在遺傳算法中的染色體數目為3,關節角的范圍為[-π/2,π/2],每個染色體由18位二進制數組成,每個個體的染色體總數為54個,機械臂末端位置的坐標為(,)。

圖1 人體手臂姿勢的運動學模型(a)及機械臂(b)

表1 手臂姿態運動學模型參數
種群隨機多目標遺傳算法的實施步驟如下:

步驟2,確定3個子目標函數、和;
步驟3,通過傳統遺傳算法對關節旋轉角進行編碼,獲得個體,=(,,);
步驟4,使用3個子目標函數,計算每個種群中的個體適應度,并在下一代種群中保留最高適應度;
步驟5,選擇個體和,并使用遺傳交叉突變產生后代種群;
步驟6,判斷個體在種群中的適應度是否趨同,如果是,則獲得最終的Pareto最優解;否則,執行步驟4。
在并行選擇方法中,根據子目標函數的數量,將一個種群中的所有個體分為幾個子群體。每個子群體都獨立分配給一個子目標函數,通過子目標函數選擇優秀個體。為維持種群的多樣性,每形成一個新的子群時,將所有生成的子群合并為一個完整的種群,然后使用隨機矩陣對新種群進行隨機排序。最后,應用交叉和變異操作,通過迭代直到達到預設的生成次數,以確定問題的最終Pareto最優解(′,′,′)。同時,在每一代中選擇最佳個體作為最佳解決方案,并在不交叉和變異操作的情況下,將它傳遞到下一代。
個體的3個染色體可以表示為

(1)
其中:表示染色體序列數;關節角的分辨率為(,up-,low)/(2-1)。機械臂由電池供電,能耗是主要限制因素。在實際應用中,關節之間的連接方式不同,所以即使關節旋轉相同角度,所消耗的能量也會有所不同。在確保所需的關節角度可以使機械臂到達所需位置(,)的前提下,機械臂消耗的能量應為最低。在機械臂運動的過程中,勢能隨、和的變化而變化。
目標函數表示關節勢能的變化,公式為

(2)
其中:、和分別表示3個關節的重力。目標函數用于描述機械臂末端的預期位置和理論位置之間的誤差,該誤差可由式(3)得出:

(3)
其中:(,)表示遺傳訓練計算機采集的人手臂末端的實際位置坐標;(,)表示機械臂末端的位置:

(4)
為使該方法收斂更快,使用懲罰函數。為機械臂當前關節端和機械臂預期端的閾值。在實驗過程中,令=10,則:

(5)
此外,將機械臂與人手臂偏差用作目標函數,以使得機械臂能夠更好地模仿人手臂,并在消耗盡可能少能量的同時,使機械臂末端準確地到達最終位置。系統消耗最少能量的3個角度分別為′、′和′。能量消耗函數定義為

(6)
利用子目標函數分別選出優良個體,所有生成的子群都合并為一個完整的種群,且新形成的種群是成行排列的矩陣。在新形成的矩陣中選擇每一行的第一個元素,形成新的矩陣。通過隨機排列,可以獲得所需的隨機矩陣,取出新一代的行,并根據隨機矩陣中指定的行逐行重新排列,最終得到隨機排序的新種群。
手勢適應系統包括用戶、用于獲取手勢數據的Kinect傳感器、用于處理手勢信息的數據處理機、用于遺傳訓練的計算機和具有6個自由度的機械臂。機械臂手勢自適應系統如圖2所示。

圖2 機械手臂自適應系統
Kinect傳感器用于獲取人體手臂關節的3D坐標。在數據處理機中,將3D坐標轉換為關節的旋轉角度,公式如下:

(7)
機械臂關節旋轉角度在數據處理機中被轉換為角度指令,為加快通過8位串行端口的傳輸,將角度命令的范圍設置為0°~255°。角度指令直接配置在計時器中,并且通過控制計時器的中斷生成控制信號。旋轉角度與脈沖寬度調制(PWM)波的占空比成正比,因此所需的角度指令可表示為

(8)
在指令傳輸和數據處理過程中,STM32用于接收來自遺傳訓練計算機的角度指令,遺傳訓練計算機通過串行端口獲取角度指令,并設置角度與計時器中斷時間相匹配。根據角度指令生成控制信號,并使用機械手臂關節的相應轉向機構旋轉手臂。轉向器由7.4 V、3 000 mA鋰電池供電,旋轉范圍為0°~180°。控制端口輸入的控制信號決定旋轉角度,以將機械臂末端旋轉到遺傳訓練計算機發出的指令所要求的位置。
由此,得到安裝在關節機械手中ADXL345傳感器的三軸加速度數據并計算三軸角度的變化。通過中值算法進行初始過濾后,將數據反饋到數據處理機,并計算出誤差(),該值表示角度指令和轉向齒輪旋轉位置之間的誤差,然后將它作為比例積分微分(PID)輸入。在傳感器的反饋值穩定后,調整比例、積分、微分和其他3個參數,并通過PID算法獲得相應的補償值()。補償值作為下一個角度指令添加到原始角度指令中,然后發送到遺傳訓練計算機,直到補償值變為0為止。PID算法的控制規律可以表示為

(9)
其中:表示PID系統的比例系數;表示積分時間;表示微分時間;()表示輸入系統的偏差信號;()表示輸出信號。
PRMOGA模型的基本參數如下:種群大小為75,種群最大代數為50,變量數為3,二進制數為18,種群差距(交叉概率)為0.9、變異概率為0.013。機械手臂的期望位置是平面上的隨機點,根據給定角度(′,′,′),通過公式(4)計算(,)。在實驗中,將(′,′,′)設置為(1.451 6,1.189 8,-1.074 1)rad。
經過50次迭代計算后,機械臂關節角度的逆解有18種組合,如圖3所示。考慮到種群融合后遺傳算法的不足,計算量大,且需要較高的能耗,文中研究選擇每一代中最優的個體,然后直接將它放到下一代中,通過計算每個個體的適應度值,將最適合的個體傳遞給數據處理機,以弧度表示的最終結果為

圖3 3個關節的最優角度
(′,′,′)=(1450 1,1190 4,1061 1)rad
為證明該算法的有效性,對角度數據進行測試,結果如表2所示。其中,表示優化的能量與原始能量之比;表示最終位置誤差;表示軌跡誤差。

表2 多目標遺傳算法角度數據的驗證結果
如表2所示,采用多目標遺傳算法的軌跡誤差小,能耗得到了降低,機械臂的最終誤差滿足在執行復雜動作過程中的位置誤差要求。所提出的算法在跟蹤手臂運動軌跡的同時,能夠降低能耗和終端位置誤差。
另外,種群隨機多目標遺傳算法中的目標函數設計不僅考慮到輸出誤差,而且還考慮了機械手的質量和人手臂的關節角度。在所提出的方法中,隨著迭代次數的增加,目標函數、和的解(最小值)和平均值減小,表明總體在不斷進化,大大提高了系統控制精度以及響應速度。在實驗過程中,通過不斷調整3個關節的角度,能夠最大程度地減少機械臂的能耗。在人機交互系統的實際應用中,該方法具有實時性好、能耗低的優點。
文中實驗通過人手勢的水平和垂直移動獲取手勢數據,在手勢更改期間,數據處理機從Kinect傳感器獲取手勢數據,并將所有關節的角度數據發送到遺傳訓練計算機。同時,角度傳感器將機械臂的實際角度反饋到遺傳訓練計算機。種群隨機多目標遺傳算法過程中的反饋角度數據和單個數據用于補償下一個動作,通過擇優選出最優個體,以便機械臂能夠跟隨人手臂的運動,從而改善手勢的適應性。為證明所提算法的優勢,選擇PSO、SOGA和TMOGA作為比較算法。對于PSO和SOGA,將目標函數設置為
=++
(10)
其中:、和表示組合目標函數的權重。人機交互環境、能耗(用于節省能源)、終端錯誤(確保觸摸)和手勢跟蹤功能(用于舒適)對于通信具有重要影響,因此權重均設置為0.33。同樣,將和設置為10和100,以確保、和的結果具有相同的數量級。在另一個比較中使用TMOGA,此處的子目標函數為和。在簡單遺傳算法中,將目標函數設置為

(11)
其中:表示關節勢能和角度偏差(或手臂模仿函數)的變化之和;函數與所提出的種群隨機多目標遺傳算法中使用的相同,但是2種算法的處理過程存在一定差異。TMOGA中使用并行選擇方法,根據子目標函數的數量將所有個體均等地分為幾個子群體,每個子群都分配有一個子目標函數,每個子目標函數用于獨立地選擇相應子群中的優良個體,然后形成一個新的子群體,并將所有生成的子群體直接合并成一個完整的種群,但總體序列保持不變。因為角度解僅適用于它們所屬的函數,不適用于其他函數。
在每一代個體中,都選擇4種不同算法中的最佳個體,然后進行比較,結果如圖4所示。可以看出:種群隨機多目標遺傳算法(PRMOGA)獲得的角度值最接近其初始值。

圖4 各算法的角度比較
此外,還比較了4種算法的角度方差,如圖5所示。可以看出:PRMOGA的方差最小。

圖5 各算法的角度方差比較
利用4種算法計算每一代的最佳角度,分別放入相同的能耗函數、終端位置函數和模仿函數,如圖6所示。可以看出:PRMOGA的能耗和終端位置誤差最小,模仿效果最佳。

圖6 各算法的能耗、終端位置誤差、模仿誤差
4種算法的計算結果如表3所示。可知:相對于其他方法,PRMOGA的能耗、終端誤差和軌跡誤差都最小;在計算時間方面,盡管所提出的算法的計算時間最長,但仍處于亞秒級,實時跟蹤的準確性在可接受的范圍內。對比幾種方法的測試結果,可以看出PRMOGA在人機交互環境中具有較強的實用性。

表3 不同算法的計算結果比較
為進一步驗證所提方法的性能,對比文獻[12]中提出的CHG-EP方法和文獻[13]中提出的自適應梯度多目標PSO方法(AGMOPSO),結果如表4所示。可以看出:與CHG-EP方法相比,PRMOGA方法消耗的能量明顯較少;與AGMOPSO方法相比,PRMOGA方法具有較小的終端誤差和軌跡誤差。盡管PRMOGA在計算時間上的優勢不是很明顯,但與其他2種方法相比,PRMOGA在軌跡誤差、終端誤差和能耗方面表現良好。在現有的手勢自適應研究中,很少有研究考慮到跟蹤誤差、終端誤差和能量消耗。相比之下,文中所提出的PRMOGA方法綜合考慮了這3個方面的影響,在應用中更具有優勢。

表4 文獻[12-13]中方法與文中方法的結果比較
為使機械臂適應人手臂的動作,提出一種種群隨機多目標遺傳算法(PRMOGA)以優化機械臂的3個轉向關節的運動。該方法通過設置目標函數,綜合考慮了人機交互中能耗(用于節能)、終端誤差(確保觸摸)和姿勢軌跡(用于舒適)的影響,不僅解決了時間和誤差問題,而且還解決了傳統遺傳算法過早收斂的問題。利用該方法可以快速搜索機械臂關節3個角度的解空間,通過隨機更改種群每一代,確保了種群的多樣性。在每一代種群中,都采用最優個體的方法解決人機交互系統中的能耗和誤差問題。對比分析了所提算法和其他算法。結果表明:所提出的方法不僅可以降低能耗,而且可保證追蹤機械手臂的跟蹤效果;所提出的算法具有能量消耗少、軌跡誤差小的優勢,能夠有效提高機械臂姿態適應的準確性。