謝邦晉
(閩江師范高等??茖W(xué)校機電工程系,福建 福州 350018)
由于機器人的應(yīng)用逐漸廣泛,除了工業(yè)機器人,越來越多種類的機器人開始進(jìn)入人類的社會,一般機器人移動的方式分為輪型、足型,使用輪型移動機器人優(yōu)點是移動速度快與穩(wěn)定性高,但是適應(yīng)地形與跨越障礙上,還是以足型機器人較占優(yōu)勢,開發(fā)像人類一樣以雙足移動的機器人,是讓機器人更加擬人化的條件之一。
為了使機器人能夠步行移動,機器人在機構(gòu)上,需要有靈活的足部機構(gòu),而當(dāng)機器人在步行時,由于同一時間內(nèi)只有一只腳接觸地面,為了讓機器人能夠平衡,機器人的重心分配非常重要,控制機器人步態(tài),需要控制與機構(gòu)的研究,才能使機器人的步行移動更接近人類。
1970年代開始日本研究者開發(fā)出許多具有步行功能的機器人,至今幾十年來對于機器人的步行控制,世界上許多專家學(xué)者已提出相當(dāng)多的論文與研究報告。機器人步行控制的研究中,在1968年由南斯拉夫?qū)W者M(jìn).Vukobratovic提出了零力矩點(ZMP)這個理念,經(jīng)由零力矩點(ZMP)的計算,只要機器人的零力矩點在安全范圍以內(nèi),機器人即可保持平衡,80年代日本早稻田大學(xué)的加藤一郎實驗室便依據(jù)此理論制作了WL系列機器人,還有Honda制作的Asimo也同樣是利用零力矩點來達(dá)到機器人穩(wěn)定的步行,零力矩點提出至今已50年,仍是機器人步行控制的主要方法之一。
另外有部分研究者提出以演算法來計算機器人步態(tài),如模糊控制、類精神網(wǎng)絡(luò)、基因演算法等方法,上述各種控制方法都是希望能夠穩(wěn)定機器人的步態(tài),但是透過演算法控制的方法,在處理器的計算上需要發(fā)費一些時間,所以機器人移動的速度還是偏慢。
文章將以使用STM32晶片來制作伺服馬達(dá)控制板,透過控制板來控制雙足機器人的動作,雙足機器人由RC伺服馬達(dá)與結(jié)合模塊組成。
本論文設(shè)計中的硬件架構(gòu)分成三部分,由RC伺服馬達(dá)控制板、機器人結(jié)構(gòu)、電源供應(yīng)組成如圖一所示。RC伺服馬達(dá)控制板由主控核心(MCU),伺服馬達(dá)控制電路、降壓電路所組成,機器人結(jié)構(gòu)由RC伺服馬達(dá)與結(jié)合模塊組成,電源供應(yīng)部分來源為鋰電池并搭配穩(wěn)壓器對機器人與控制板供電。
圖1 硬件構(gòu)架圖
主控核心意法半導(dǎo)體(STMicroelectronis)公司生產(chǎn)的STM32F103系列增強型微控制器,該系列微控制器的特點為內(nèi)核使用了Cortex-M3核心,Cortex-M3是ARM公司開發(fā)的處理器,該處理器實現(xiàn)了低成本、縮減接觸腳數(shù)量,并同時具有低功耗、高執(zhí)行速度、先進(jìn)的中斷系統(tǒng)響應(yīng)、支持多種通訊等功能。
RC伺服馬達(dá)控制芯片的選用,依據(jù)需要選擇中等容量的STM32F103Cx系列,完整型號為STM32F103C8T6,擁有64KFlash、4組計時器、37個IO腳與LQFP48封裝形式,芯片外觀與封裝腳位如圖2所示。
機器人的硬件部分,由RC伺服馬達(dá)搭配結(jié)合模塊制作成高自由度的雙足機器人,機器人的靈活度取決于該機器人自由度的多少,自由度的意思為機構(gòu)上可獨立運動的數(shù)目,為了讓機器人的步行更接近人類,所以設(shè)計了12個自由度的雙足機器人機構(gòu),機器人關(guān)節(jié)為RC伺服馬達(dá),骨架部分則由結(jié)合模塊組成,雙足機器人機構(gòu)如圖3所示。
圖2 芯片外觀與封裝腳位
圖3 雙足機器人機構(gòu)
雙足機器人的控制方式架構(gòu)圖如圖4所示,RC伺服馬達(dá)控制板由三組計時器輸出PWM脈波訊號,由此PWM訊號控制RC伺服馬達(dá)的轉(zhuǎn)動,另外配合STM32F103C8T6的系統(tǒng)應(yīng)答計時器產(chǎn)生計時中斷,由此計時中斷來達(dá)到RC伺服馬達(dá)的控制。RC馬達(dá)的控制是由產(chǎn)生一周期20 ms的PWM訊號來控制,由PWM訊號的脈波寬度來控制馬達(dá)角度,由增加脈波寬度的方式就可以控制RC伺服馬達(dá)的速度,以RC伺服馬達(dá)從0度(0.5ms)旋轉(zhuǎn)到180度(2.5ms)為例,假設(shè)每20ms周期的增加0.1ms的寬度。脈波寬度由0.5ms增加至2.5ms,每20ms增加0.1ms的寬度,RC伺服馬達(dá)轉(zhuǎn)動時間計算公式如:
每個周期增加的脈波寬度越大,RC伺服馬達(dá)的轉(zhuǎn)動速度就越快,除了調(diào)整脈波寬度的方式以外,還可以調(diào)整周期的方式來控制速度,但要注意RC伺服馬達(dá)的規(guī)格。
圖4 控制方式構(gòu)架
控制RC伺服馬達(dá)的PWM控制訊號,由微控制器內(nèi)部的3組計時器提供,機器人的動作與速度由計時器產(chǎn)生的周期性中斷來做控制,中斷程序內(nèi)將當(dāng)前PWM訊號的寬度與機器人動作信息數(shù)據(jù)進(jìn)行比較,若數(shù)據(jù)大于當(dāng)前PWM訊號寬度值,執(zhí)行PWM訊號寬度做加運算,反之做減運算,流程圖如圖5所示。
圖5 流程圖
當(dāng)機器人要執(zhí)行動作時,先執(zhí)行初始化,將各軸的RC伺服馬達(dá)的角度都設(shè)定為置中(脈波寬度1.5ms),此時機器人呈現(xiàn)站立姿態(tài),載入機器人執(zhí)行動作的數(shù)據(jù)陣列。
Intdata={{2500,2000,2200,2100,2400,1900,1900,1900,1900,2000,2300,2200},{1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500}};
陣列中為一個第一維度為2,第二維度為12的二維陣列,第一維度代表機器人的動作數(shù),第二維度代表12個RC伺服馬達(dá)的脈波寬度,陣列中值的大小為500~2500,500代表0.5ms的脈波寬度;1500代表1.5ms的脈波寬度,2500代表2.5ms的脈波寬度,機器人在執(zhí)行動作時,微控制器中斷程序會將各軸的脈波寬度與數(shù)據(jù)陣列庫的值做比較,當(dāng)發(fā)現(xiàn)某個RC伺服馬達(dá)的值與數(shù)據(jù)陣列比較不相符時,則對該RC馬達(dá)的脈波寬度進(jìn)行加減。由周期性的中斷程序,可同時對每個RC伺服馬達(dá)的脈波寬度做調(diào)整,當(dāng)RC伺服馬達(dá)達(dá)到動作所需的角度后,會維持該角度并等待其他RC伺服馬達(dá)到達(dá)設(shè)定的角度,等全部RC伺服馬達(dá)都到達(dá)設(shè)定的角度時,便會開始執(zhí)行動作數(shù)據(jù)陣列的下一列。
人在步行時,可視為一種周期性的反復(fù)運動模式,依據(jù)這種周期性的運動模式,可以規(guī)劃出步行的軌跡,人走路時,雙手會自然地擺動,而且跟兩腿走動的方向相反,這種互相協(xié)調(diào)的動作,是為了保持整個身體的平衡,但是雙足機器人卻沒有這種調(diào)節(jié)平衡的動作,所以在設(shè)計雙足機器人的動作時為了使 穩(wěn)定,必須要考慮到機器人重心的分配,機器人的重心在抬腳移動的同時會跟著改變,如果機器人的重心沒有調(diào)節(jié)好,那么機器人必定會跌倒,因此重心的調(diào)整對機器人的動作非常重要。
因此本次研究在機器人的動作設(shè)計上,不采用運算的方式算出機器人穩(wěn)定的步伐,而是使用控制伺服馬達(dá)角度的方式,來設(shè)計機器人的動作,這種機器人的行進(jìn)動作屬于靜態(tài)平衡,所以機器人的步行狀態(tài)可分為單腳支撐與雙腳支撐,當(dāng)機器人以單腳支撐時,為了保持機器人的平衡,重心必須落在支撐的腳掌內(nèi),在雙腳支撐時,機器人的重心要落在雙腳之間,只要注意重心的落點,就可以讓機器人在步行時保持平衡,圖6為雙足機器人各軸的伺服馬達(dá)編號。
機器人在動作前,為了使機器人站立,會先設(shè)定機器人的直立的動作,由伺服馬達(dá)控制板對各軸送出寬度為1.5ms脈波,由于機器人在組裝上會存在一些誤差,所以還需對各軸做校正,各軸誤差的角度如表1所示:
表1 機器人各軸誤差角度
圖6 伺服馬達(dá)編號對照
RC伺服馬達(dá)控制板的主控核心是使用STM32微處理器,其功能為輸出12通道PWM信號,可控制多顆RC伺服馬達(dá),為了使RC伺服馬達(dá)的控制更加的穩(wěn)定與迅速,12組PWM信號由STM32芯片內(nèi)部3組計時器產(chǎn)生,最高可擴展至16通道輸出,在PWM信號寬度的控制上,開啟預(yù)先裝載功能可同時控制多組PWM信號的脈波寬度,在電源供應(yīng)部分使用一種穩(wěn)壓器,供應(yīng)RC伺服馬達(dá)所需要的高電流,并配合系統(tǒng)滴答計時器來做RC伺服馬達(dá)的速度控制。若能在伺服馬達(dá)控制器上增加傳感器如:陀螺儀、加速度計、姿態(tài)感應(yīng)器等各種傳感器,通過這些傳感器使控制板在控制機器人的時候,能夠?qū)Ω鞣N狀況做出應(yīng)對。