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