高 麗 彭 熙 劉 明
(1.華中師范大學(xué)計算機學(xué)院 武漢 430079)(2.湖北省高等學(xué)校計算機基礎(chǔ)實驗教學(xué)示范中心 武漢 430079)(3.湖北省人工智能與智慧學(xué)習(xí)重點實驗室 武漢 430079)
近年來,人形機器人已經(jīng)成為機器人研究的一個熱點。人形機器人的步態(tài)控制一直是人形機器人研究的一個難點[1~3]。目前國內(nèi)外高校的機器人實驗一般結(jié)合自己的專業(yè)來開設(shè),其中技術(shù)能力較弱的學(xué)校只開設(shè)機器人動作演示、機器人組裝實驗,研究能力較強的學(xué)校則開設(shè)機器人控制等實驗項目[4~6]。
仿人機器人具有與人類相似的軀干結(jié)構(gòu)與運動能力,能夠在人類的工作環(huán)境中替代人類進行工作,將人類從體力勞動、機械重復(fù)作業(yè)等低級勞動以及高危、高風(fēng)險行業(yè)中解放出來,提高生產(chǎn)力水平和工作效率,提升人類的生活質(zhì)量,使人類能夠?qū)W⒂诟呒壷腔刍顒樱龠M生產(chǎn)力的合理配置和社會發(fā)展[7~9]。
目前人形機器人大多只存在于實驗室里。要想讓機器人走出實驗室,進入人們的日常生活,代替人們完成日常工作。必須要讓機器人適應(yīng)外界復(fù)雜的環(huán)境。機器人在行走過程中,如何應(yīng)對復(fù)雜的路面化境就是亟待解決的問題之一。人形機器人的行走步態(tài)是機器人研究的一個重要領(lǐng)域。
要想讓機器人完成對復(fù)雜路面的適應(yīng),最重要的兩項技術(shù)就是——機器人姿態(tài)控制以及機器人步態(tài)規(guī)劃。姿態(tài)控制包括讓機器人知道自己目前所朝方向,是否需要轉(zhuǎn)彎,是否傾斜等等,以此為基礎(chǔ)機器人才能做出調(diào)整,讓自己身體保持平衡,進而才能邁步行走,如何邁步行走即是步態(tài)規(guī)劃技術(shù)要考慮的問題。
要想使機器人能夠感知自身姿態(tài),就需要兩個部分。一是要有能接受外界信息的硬件設(shè)施,另一個就是在收集到外界信息后要結(jié)合算法進行解算。
姿態(tài)信息收集的傳感器,一般為慣性傳感器。例如三軸加速度傳感器、陀螺儀等等。某個單一的慣性傳感器是很難將機器人的姿態(tài)描述清楚的,所以需要多種傳感器配合。本實驗選取JY901 姿態(tài)角度傳感器,選取的是集成高精度的陀螺儀、加速度計以及地磁場傳感器,協(xié)同工作收集姿態(tài)信息,傳遞給控制板進行解算。圖1所示。
圖1 連接示意圖
對于機器人姿態(tài)的計算是利用慣性傳感器所傳回的四元數(shù)信息,計算歐拉角。其計算原理及公式如下:
四元數(shù)是一個簡單的超復(fù)數(shù),在三維中的旋轉(zhuǎn)可以用單位四元數(shù)來描述。四元數(shù)的定義為Q=a+=q0+q1i+q2j+q3k。MPU6050 一類慣性傳感器,可直接輸出四元數(shù),我們則利用四元數(shù)進一步求出歐拉角。
歐拉角是指在一個固連于剛體的坐標(biāo)系中,由剛體的旋轉(zhuǎn)分別產(chǎn)生俯仰角、滾動角、航向角組成的一組獨立角參量。
首先,我們需要使用四元數(shù)表示的旋轉(zhuǎn)矩陣,根據(jù)公式可知:
已知求只需做一次矩陣逆變換便可求出:
對比兩式可解出
通過四元數(shù)計算出歐拉角即可直觀反映出機器人姿態(tài)。
硬件收集信息+算法解算,就可以得到機器人的姿態(tài)數(shù)據(jù),完成機器人姿態(tài)的控制。
設(shè)計人形機器人的步態(tài),使其能夠在平地上完成所有的行走過程,實現(xiàn)前行、后退、轉(zhuǎn)彎等動作。本文設(shè)計出的機器人腿部共有12 個自由度,每條腿各6個,即踝關(guān)節(jié)前向和扭轉(zhuǎn)2個自由度,膝關(guān)節(jié)前向1個自由度,髖關(guān)節(jié)有前向、側(cè)向旋轉(zhuǎn)和轉(zhuǎn)向3個自由度,共有18個自由度[10~12]。自由度的設(shè)置如圖2所示。
圖2 機器人CCNU-1自由度配置示意圖
根據(jù)機器人的步態(tài)設(shè)計要點,我們可以規(guī)劃出所設(shè)計的人形機器人的運動過程和行走步驟。
首先將機器人站立,使其重心垂直于與地面,然后假設(shè)先以右腳支撐,邁左腿,這樣可以將機器人的重心轉(zhuǎn)移到右腿。要實現(xiàn)這一目的,應(yīng)該拖動軟件中的13號舵機模塊的滾動條(如圖3所示),使機器人的重心右移,其效果如圖4所示。
圖3 編程軟件中的第13號舵機模塊
圖4 機器人重心右移后的效果圖
根據(jù)慣性傳感器所傳回的四元數(shù)信息,計算出機器當(dāng)前俯仰角、滾動角、航向角。對角度數(shù)值加以判斷,歸納當(dāng)前姿態(tài)情況,并根據(jù)不同情況做出不同反應(yīng)。若已符合目標(biāo)姿態(tài),停止姿態(tài)調(diào)整,保持姿態(tài)不動;若未符合目標(biāo)條件,則做出相應(yīng)調(diào)整策略。完成調(diào)整后,循環(huán)程序,再次收集姿態(tài)信息加以判斷[13~15]。程序設(shè)計流程圖如圖5所示。
圖5 程序設(shè)計流程圖
根據(jù)流程圖,機器人動作姿態(tài)的變化,由各個舵機的控制來完成。如表1 所示。
表1 人形機器人動作控制
根據(jù)姿態(tài)解算結(jié)果,向機器人舵機控制系統(tǒng)發(fā)出相應(yīng)信號,機器人做出相應(yīng)動作,調(diào)整姿態(tài),即達到連續(xù)步態(tài)的效果。圖6 所示為機器人連續(xù)步態(tài)過程的分階段圖解。
圖6 人形機器人的連續(xù)步態(tài)示意圖
利用慣性傳感器所傳回的四元數(shù)信息,計算歐拉角,控制人形機器人的各種姿態(tài)。在自己設(shè)計機器人模型的基礎(chǔ)上,掌握人形機器人步態(tài)設(shè)計的基本要領(lǐng)和步態(tài)技巧以及工作原理。提高了學(xué)生綜合分析能力和解決問題的能力,本文設(shè)計的方案和計算方法,經(jīng)過實驗教學(xué)的應(yīng)用和檢驗,驗證了該方法的有效性、可靠性和穩(wěn)定性,取得了良好的效果。這一實踐環(huán)節(jié)大大提高了學(xué)生的就業(yè)質(zhì)量,培養(yǎng)了更多的實踐創(chuàng)新人才。