熊 雕,劉玉良,歐陽浩敏
(1.浙江海洋學院船舶與海洋工程學院,浙江舟山 316022;2.浙江省舟山市技工學校,浙江舟山 316000)
類人機器人全能運動的穩定性研究
熊 雕1,劉玉良1,歐陽浩敏2
(1.浙江海洋學院船舶與海洋工程學院,浙江舟山 316022;2.浙江省舟山市技工學校,浙江舟山 316000)
類人機器人全能運動包括不同粗糙平面上的快速行走、越障、踢球、格斗等,穩定性是上述運動的關鍵環節。本文從分析機器人關節角與零力矩點(ZMP)的關系入手,研究提高機器人運動穩定性的新方法。具體步驟是先粗調校正機器人姿態,然后確定各關節角度,得到保證穩定運動的關節角范圍。最后依托韓國GP型機器人進行測試,結果表明了所提出方法的有效性。
類人機器人;全能運動;穩定性;關節角度
機器人根據用途可分為工業機器人、服務機器人、娛樂機器人、軍用機器人、農業機器人、空中機器人、水下機器人等,其中服務機器人以類人機器人為主。本文選取16自由度類人機器人為對象,主要研究提高機器人運動穩定性的新方法。由于類人機器人需要雙腳站立和行走,穩定域很小而且自由度很大[3],因此,提高穩定性研究是類人機器人運動的核心問題。
目前比較典型的類人機器人有日本本田公司的ASIMO[1],法國的ALDEBARAN Robotics公司的NAO,美國波士頓動力公司的Petman等,具有較強的步行穩定性。這些機器人的步態設計依賴于精確的關節角度,而關節角度的確定又依賴于ZMP及線性倒立擺控制原理[5]。計算ZMP需要建立精確的數學模型,從而得到最優的步態關節角,但是從建模到參數整定每一步都需要投入大量精力和時間。最近,臺灣學者報道了通過外加腳底壓力傳感器[?]來提高機器人穩定性的新方法,但是這樣會增加系統延遲和出錯率,反而不利于系統的整體穩定性。本文通過動作設計、關節角度參數調整等步驟,研究不同路況下類人機器人快速行走以及搬運物體、踢球、格斗等復雜運動的穩定性。考慮到成本低、供電方便等要求,本文選用韓國GP型類人機器人為研究和測試對象。
韓國GP型類人機器人具有16個自由度,包括每只手臂的3個自由度和每只腿的5個自由度。機器人運動過程中的每個動作可分解成若干靜態姿勢,將所有靜態姿勢連續運行后,就可以對接成一套完整動作。每個自由度由1個Dynamixel AX-18A型舵機控制,通過主控板依次向舵機發送每個靜態姿勢的所有關節角度指令,從而使機器人做出各種動作。圖1表示類人機器人的基本結構。為調試方便此時各個關節角度定義為0°,舵機的參數定義為512,參數可調節的范圍為1~1 023(對應的角度為-150°~150°),參數值每增加1個單位,角度就增加0.293°。舵機有60°的盲區,盲區內角度無法識別。角速度參數范圍0~1 023,角速度參數為0則舵機將以電壓能提供的最大速度運動,此時速度無控制;1為最小角速度,1 023為最大角速度114周/min(圖1)。

圖1 機器人視圖Fig.1 Humanoid robot view
機器人全能運動的穩定性包括行走的穩定性、搬運物塊的穩定性、踢球的穩定性和格斗的穩定性等,其中行走的穩定性是機器人完成復雜動作的基礎和關鍵。
2.1 提高行走的穩定性
2.1.1 通過動作設計提高行走的穩定性
平面無障礙行走:機器人行走動作的設計,要綜合調節兩條腿10個舵機的角度,若想精確的控制機器人行走的方向和提高行走的速度,那么對每一步,每個關節的角度都要仔細校正才能達到理想的穩定效果。行走時,機器人和人一樣雙腿交替前行,但腳躁關節處的動作變化有很大的區別,一般雙腳交替前行時,后面一只腳的腳后跟先離地,把后腿抬高,然后整個腳再離地,而機器人則是后面一只腳腳掌內側先離地,把腿抬高,然后整個腳掌再完全離地。這樣可以使機器人在行走時的穩定域[6]更大,提高機器人的穩定性。如圖2所示,腳底部分虛線為腳底抬起的部分。

圖2 機器人行走方式與人行走方式區別Fig.2 The difference walkingmethod between human and humanoid robot
平面快跨越障礙:跨越障礙也是動作設計的一個難點,由于在跨障的時候只有一只腳站立,為了提高機器人的穩定,就要使機器人的手臂和腿部協調運動,并且考慮到機器人自身重力使膝關節運動時的實際角度小于設定角度的問題,還要根據實際情況校正膝關節角度。現將整個跨障動作細分為12個動作節點,使機器人跨障動作更加連貫和穩定。動作調整時,先單獨調整每個節點站立的穩定性,然后再將12個節點從頭到尾依次連續運行,使其做出完整的跨欄動作,若在某個節點出現站立不穩的情況,就根據具體狀態精確校正舵機參數,保證機器人運動時的平衡。由于跨障動作幅度大,機器人容易摔倒,要減慢機器人運動的速度,減小動作的沖擊,才容易調整動作使ZMP(Zero-Moment-Point)[2]保持在穩定域內,提高機器人的穩定性。
另外,減少手臂擺動也是提高行走穩定性的有效措施,也是節約能量、延長穩定行走時間的有效方法。
2.1.2 通過調節舵機參數提高行走的穩定性
動作設計好后,就有對應角度參數范圍,但這個范圍只能保證機器人在行走的過程中不會摔倒,會出現晃動很厲害的情況,這就需要精細的調節每個關節的角度,提高機器人運動的穩定性。機器人行走不穩定一般表現在以下四個方面:
(1)行走時左右擺動幅度過大;(2)行走時前傾或后仰;(3)起步時,腳無法提起,并直接倒向抬腳一側; (4)行走時無法走直線。
由于腳躁關節對機器人ZMP影響最大,膝關節和髖關節次之[6],所以在調節關節角度的時候,先粗調裸關節的角度,然后在精細調節膝關節和髖關節的角度,這樣可以快速的使機器人達到最佳的穩定狀態。出現1、2兩種情況時,主要是由于機器人行走時身體四個方向傾斜角度太大,只需要降低偏移角度即可,但在調節的時候一定要綜合考慮每個關節對步態、重心的上下變化的影響、還有舵機的性能等因素,一般先調節腳躁關節處(15、16、17、18)舵機,角度參數先以增減量為2為幅度調節,然后角度參數增減量調為1,然后再調節膝關節(13、14)舵機和髖關節(9、10、11、12)舵機的角度,增減量相同,這樣可以得到機器人最佳的運動穩定性。出現第3種情況時,原因剛好和1、2時相反,這時只需要增大機器人傾斜角度和適當提高腳抬起的高度即可,調節方式與上文相同。理論上,只要機器人左右兩邊的關節角度對稱,機器人就可以筆直的向前行走,若出現第4種情況,主要是由于左右腿上的舵機性能有細微的差別,導致左右腳不能完全對稱的運動,就使機器人雖然設定為直線行走,但實際上是拐彎行走,這種情況只能通過校正腳躁、膝蓋關節角度變化量解決,一般校正量很小,角度參數增減量為1,但需要長時間的調試校正,才能得到理想直線行走的效果。
實際路面粗糙程度也對穩定性有影響,摩擦度高的地面可以提供較大的摩擦力,可以把機器人行走速度設置的很快;但是在光滑的比賽平臺上行走時,腳底容易打滑摔倒,機器人腳底很難得到足夠反作用力,只能以較慢的速度行走,保證機器人運動的穩定。
2.2 提高搬運動作的穩定性
由于機器人硬件的限制,只能通過機器人雙臂把東西抱住,將物體舉到頭頂再進行搬運。在搬運物塊時,將機器人兩個手臂上的舵機設為滾輪模式,使手臂的動作不受關節角度數據影響,而根據自己的要求,調節手臂的位置,使重心或ZMP點仍然落在穩定域[6]內,只是重心的位置有所升高,但不用再額外設計搬運動作,減少設計時間。并且在搬運的時候可以隨時調節手臂位置,使手臂能緊緊抱住物塊,提高搬運的穩定性。
抓取物體的動作中需要手臂前伸,這會造成重心投影向前移動,需要給機器人一個重心向后調節的校正量,保證機器人重心落在穩定域內;放下東西時同理,校正量的調整與調整舵機參數提高行走穩定性方法相同。搬運行走的動作是直接調用行走的動作參數,都是穩定的動作,不用再校正參數。但是機器人手臂抬高會造成重心位置升高,需要減慢機器人移動的速度,提高搬運的穩定性。
2.3 提高類人機器人踢球的穩定性
類人機器人踢球穩定性的提高,也需要通過動作設計和參數調整來完成,但是與之前不同的是,機器人踢球時是一只腳站立,而且會受到球的反作用力,這增加了動作設計的難度。機器人在抬起一只腳準備踢球時,需要將機器人的身體同時傾向站立腳的方向,使重心投影轉移到一只腳的穩定域上,保證機器人站立的穩定性;在機器人踢球但沒接觸到球的這段時間內,要協調上身與腳的運動,保證機器人整體前后方向的運動平衡,使ZMP在穩定域內,不然腿部的向前的慣性很容易使機器人摔倒;對于球的反饋力,可以把機器人踢球時的重心調節到偏向球的方向,這樣球的反作用力正好起到了一個校正姿態的作用,保證了機器人的平衡,并且在踢完后立即使機器人雙腳站立,然后再調整到常規站立姿態,這樣可以大大提高機器人踢球的穩定性。踢球參數的調整與快速行走參數的調整相似,不再贅述。
2.4 提高格斗的穩定性
格斗動作設計跟踢球動作設計有類似的地方,但格斗有手臂動作的參與,要考慮到手與腳運動的協調,提高機器人的穩定性。而且格斗動作的幅度和沖擊強度很大,如果動作沖擊強度太大,很容易損壞關節上的舵機,所以先考慮機器人硬件承受能力,再來提高機器人格斗時的動作力度。在攻擊的時候只有保證ZMP在穩定域內,機器人才能保持穩定,而橫向攻擊時,機器人的穩定域最大,即ZMP點的可變化范圍最大,所以采用橫向攻擊機器人穩定性最好。當機器人是橫向攻擊的時候,要盡可能提高雙腳的跨度來增大穩定域,并降低機器人的重心高度,這樣即使ZMP點在穩定域內產生較大的變化,也不會摔倒。
由于機器人橫向攻擊時重心前后可變化的范圍很小,若受到前后方向的分力,機器人重心很容易離開穩定域而摔倒,所以要調整機器人動作,使其手臂完全處于橫向進行擊打,提高格斗的穩定性。

圖3 機器人腳步動作Fig.3 Robotaction of feet
快速行走的參數經過細微調整后,機器人可以行走的很穩定,但提高機器人運動速度后,機器人經常走了一段距離后就開始拐彎,無法保持一直走直線,理論上只要兩邊動作變化對稱,機器人會以直線行走,推測是機器人硬件的問題,兩只腿上的舵機性能有細微的差別,當機器人運動速度一旦提高后,這種細微的差別就放大顯示出來,出現機器人拐彎的現象,后來通過校正關節參數,可以使機器人的行走方向的變化量有一定減小,但是無法完全走直線。

表1 抬左腳時三個動作節點的舵機參數Tab.1 The actuator data of three action step when raised left foot

表2 抬右腳時三個動作節點的舵機參數Tab.2 The actuator data of three action step when raised right foot
第一組是左腳向前跨一步時三個分步的參數,右腳抬腿向前的參數僅需要將左腳這組數據通過角度對稱換算,利用公式nr=1024-n1求出右腳抬腿時對應舵機(如11對應12,13對應14)的參數,兩組參數組合起來就是完整的雙腳交替向前行走動作的參數,然后再進行校正,提高行走的穩定性。經過大量調試,機器人無論是加速減速,在這組參數下向前行走的穩定性都是最好的。跨障動作節點過多,參數的確定主要在于姿態的調整,參數調整過程就不在此一一列舉。
調節踢球的在動作時,發現機器人在踢完球后,晃動的很厲害,經過仔細觀察,發現主要是受機器人與球之間的反作用力干擾,無法自動校正,導致原始設計的動作無法滿足機器人穩定性的要求,后來把機器人的重心向球的方向偏移了一點并在踢完球后立即雙腳著地,然后慢慢調整為正常站立的姿態,這樣增大了機器人在踢球后的穩定域,再踢球后就幾乎沒有晃動,穩定性非常好。調節格斗的動作時,剛開始機器人在擊打對手后,由于受到反作用力,自己也經常會摔倒,后來把向前攻擊改為橫向攻擊和并降低了重心的高度,機器人的穩定性有了很大的提高,即使在高強度的擊打動作下也能穩定的站立。踢球和格斗的動作的穩定性主要在于動作設計,參數就不在此列舉。
主控板和Dynamixel AX-18A舵機進行的是半雙工異步串口通訊,控制板向對應舵機發送改變參數的指令包,就可以調節關節的角度。由于篇幅所限,僅說明設定兩個舵機的參數指令包,若要設定更多的舵機,只需要在后面加上舵機的ID和角度、速度參數即可。在搬運物塊時需要將舵機設定為滾輪模式,此時把手臂上舵機的順時針和逆時針角度限制設定為0°。角度參數變化范圍0ˉ1 023,下面列舉一個改變舵機角度指令包示例和一個設為滾輪模式指令包示例,改變ID的值即可改變相應的舵機。設定舵機為滾輪模式的指令包代碼如下:

本文研究類人機器人快速行走、搬運物快、踢球、格斗穩定性,就是通過動作設計增大穩定域并調整關節角度來調節重心位置及ZMP點,使其重心能夠穩定的落在腳底與地面的接觸穩定域內,或保證ZMP點能在穩定域內。實驗結果表明,提高類人機器人穩定性的關鍵是:調整關節參數時不能單獨考慮一個關節,而要綜合考慮各個關節對機器人整體運動姿態的影響,這樣調整才能得到更快更好的穩定控制效果。本文選用的類人機器人只有40 cm高,跟實際的類人機器人差距不小,本文研究結論如何應用于實際的類人機器人尚需進一步探索,這是我們下一步研究的重點。
[1]唐 策.人形機器人運動控制的研究[D].上海:上海交通大學,2012.
[2]楊東超.基于ZMP的擬人機器人步態規劃[J].機器人,2001,23(6):504-508.
[3]王建文.仿人機器人運動學和動力學分析[D].長沙:國防科學技術大學,2003.
[4]徐 凱.仿人機器人步態規劃算法及其實現研究[D].北京:清華大學,2004.
[5]劉津甦.復雜環境中的人形機器人行走規劃[D].合肥:中國科學技術大學,2010.
[6]付根平,楊宜民,陳建平,等.基于ZMP誤差校正的仿人機器人步行控制[J].機器人,2013,35(1):39-44.
[7]YOSHIDA E,POIRIER M,LAUMOND J-P,et al.Pivoting based manipulation by a humanoid robot[J].Autom Robot,2010,28:77-88.
[8]ARBUCKLE D J,REQUICHA A A G.Self-assembly and self-repair of arbitrary shapes by a swarm of reactive robots:algorithms and simulations[J].Autom Robot,2010,28:197-211.
Study on Stability in the All-around M ovementofHumanoid Robots
XIONG Diao1,LIU Yu-liang1,OUYANG Hao-min2
(1.Naval Architecture and Ocean Engineering School of Zhejiang Ocean University,Zhoushan 316022;2.Zhejiang Zhoushan Vestibule School,Zhoushan 316000,China)
The all-round movement of humanoid robots include fast walk in different rough surface,climbing through obstacle,playing soccers,fighting with each other,and so on.How to guarantee the motion stability is the key link among the above.In this paper,a new way to improve themotion stability has been found based on the the relationship between joint angles and the Zero-Moment-Point(ZMP).The concrete works include several steps as follows.Firstwe adjusted coarsely the pose of the robot,then to determined all joint angles and obtain the angle range guaranteeing stable motion.Finally we chose a GP humanoid robot made in South Korea carry on stabilitymeasurement,and itwas showed that themethod presented in the paper is efficient.
humanoid robot;almightymotion;stability;jointangle
TP242.3
A
1008-830X(2014)05-0437-05
2014-05-10
舟山市科技局公益性項目(2013C31046)
熊雕(1991-),男,湖北隨州人,碩士研究生,研究方向:船舶電氣及其自動化.E-mail:xiongd520@foxmail.com
劉玉良,男,副教授,研究方向:信號處理與通信網絡.