姚競豪,王路平,王眾鑫,李晨浩,郭奧
(沈陽航空航天大學,遼寧沈陽,110135)
本文主要介紹本隊伍在探索雙足機器人的應用與開發(fā)過程中所遇到的困難,將會利用單片機和舵機來實現(xiàn)雙足機器人的步行規(guī)劃,從而實現(xiàn)在比賽過程中所要求的自動化動作。在開發(fā)的過程中,常見的問題有:(1)如何實現(xiàn)機器人的基本姿態(tài)例如:走路,翻跟頭,大步走等比賽基本動作要求。(2)如何實現(xiàn)動作的連貫與切換,將每一個動作連貫起來,實現(xiàn)動作的連續(xù)實施。(3)在實際過程中機器人在賽道上實施動作數(shù)量的計算,通過計算和微調(diào),使其在賽道上能完整完美地完成比賽要求。(4)雙足機器人平衡運行的掌握:在真正的實施過程中,機器人由于本身性能和賽道場地的原因,調(diào)試過程中經(jīng)常出現(xiàn)偏離賽道和自身平衡性的問題。
雙足機器人通常只擁有腰部、膝關節(jié)和腳踝三種自由度。PC和舵機可以采用有線或者無線的方法實現(xiàn)數(shù)據(jù)傳輸(如圖1兩種傳輸方式)[1]。
組裝機器人后,模擬路線,并得到機器人行走過程中每個方向盤的旋轉(zhuǎn)順序和旋轉(zhuǎn)角度,以確定計算機應該發(fā)布的指令。經(jīng)過幾次模擬,對兩足機器人進行編程,機器人在比賽中取得了最高的性能,經(jīng)過了多次上位機調(diào)試雙足機器人后,最終在比賽中完成命令。
(1)由于機器人的結構特點是只有雙足,并且只能獨立走路,機器人的移動標志位置是正面和背面(以鼠標箭頭的移動方向為正面),因此機器人并不具備完整的對人體自主運動的線性和控制的功能;
(2)最大尺寸為 300mm(長)×300 mm(寬)×450 mm(高),重量不得超過1 kg;
(3)機器人不得使用六個舵機和單個控制臺;
(4)機器人能夠快速完成穩(wěn)定、連續(xù)、且直線度的步伐;
(5)機器人能夠精準地完成滾翻。
胳膊和腿的運動,是一種綜合系統(tǒng)協(xié)調(diào)肌肉運動,依靠200多個對稱和30多個肉部分骨骼結構的綜合腳運動,人體關節(jié)協(xié)調(diào)主要骨骼之間可能存在的空白和縫隙。為了盡可能模仿雙腳機器人的腳,并在單腿走路時達到可持續(xù)性,安裝了三個主要的活動關節(jié):臀部、膝蓋和腳踝。每一種關節(jié)都有多種運動形式,所以自由度也更大,主要分為三種:傳動(中線附近的關節(jié))、外展(中線附近的關節(jié))、內(nèi)旋和外旋[2]。
舵機通常被用于一個雙踏板賽車機器人,并成為一種機械驅(qū)動元件,以達到機器人之間自由的統(tǒng)一動作和統(tǒng)一關節(jié)。比賽規(guī)定,機器人不會有多于六的自由度,所以六個舵手可以被用于完全限制六的自由度,這就意味著每個滑膜關節(jié)都有益的自由度。因此機器人必須往前移動,向前翻滾,或向后翻滾,而機器人的重心總是在面板底部的支撐表面:
(1)由于肘部運動需要靈活性來鍛煉大腿前部實現(xiàn)每天走路、步驟和動作左邊腰向前傾,并能發(fā)揮重要作用,所以在維持日常步行輔助平衡中,每個專門設置一個前進的自由散步。
(2)肘部還必須彎曲和拉伸運動,以調(diào)整重心高度和換腳著陸高度的變化,以適應地面狀況,以便能夠調(diào)整自由的運動。
(3)側(cè)向運動腳踝的拉伸,可能需要執(zhí)行的同時,為了配合其他肌,同時承擔大腿和臀部和腰上側(cè)腳運動,調(diào)整橫向之間接觸物體表面,為了完成整個過程前進的靈活性,我們創(chuàng)新地提高了機器的靈活性。
因此,在兩個踏板上行走的機器人具有臀部、膝蓋和腳踝的靈活性和寬度,以及兩條腿的6自由度??偣彩褂昧?種舵機機制,這些機制不僅符合舵機的使用規(guī)則,而且還可以執(zhí)行所需的操作,如走路、滾動和反向滾動。
雙足競步機器人的機械結構設計[3]主要有以下三個方面:
(1)對稱布置
在行走運動過程中,機械機構通常具備結構對稱性的特點,但同時也發(fā)揮著簡諧運動的功能。有研究者對機器行走運動中的結構對稱性問題展開了深入研究,并發(fā)現(xiàn)了機器人的軀體運動和腿部活動之間的結構對稱性具有關系。在單足支持時,機器人均衡性需要腿的對稱鍛煉;在雙足支撐階段,機器人的均衡性鍛煉并不一定需要腿的對稱鍛煉,除非在額外限制條件下,否則不需要腿部對稱運動?;诖它c,雙足競走自動化機器人結構的設計也是對稱布局的。
(2)串行連接模式的框架型
因為雙足競走型跑步機器人的所有小滑膜關節(jié),如手舵、供電燃料電池和運動控制器等電路板都必須有相當?shù)目傮w重量,而整個雙足機器人的最大總體長度也必須為300mm(長)×300mm(寬)×450mm(高),而且最大總體重量也不可以大于一公斤,因此為合理減小整個機器人的本身體積,并降低最大總體重量,窄腳機器人的所有主要構件均使用了鋼框型構造,并且還采用電機串聯(lián)驅(qū)動結構和可連接移動模式串行式連接式框架設計,不僅能有效利用舵機尺寸,而且能夠盡量地滿足每個關節(jié)的活動范圍。
(3)輕型的機械材料
因為雙足競走型的比賽機器人在安全操作情況下的機械體重一般較低,而且用來帶動競走機器人工作的所有機關節(jié)件,如操舵裝置、電池以及機械控制器電路板等都需要有相應的機械體重,所以在它的機械結構部分通常采用一點五微米硬度的鋁合金或硬質(zhì)塑料,因為這種合金材質(zhì)的機械質(zhì)量較低,而且金屬硬度比較好,因此在機械硬度方面盡管低于普通不銹鋼,但是也比一般的超硬鋁合金材質(zhì)還要好,可以大大強度超過普通的超硬鋁合金。腳底、頂板一般采用一種硬度比較夠、亞克力板以及重量較輕的復合材料底板作為主要原材。
雙足競步機器人的整體機械結構設計如圖所示,各部件的機械組成如圖2所示。
控制管理系統(tǒng)主要使用STM32F103C8T6芯片組和核心控制板塊作為主要微控制器。該芯片基于Cortex-M3內(nèi)核的32位微控制器,運行時工作頻率最高達到72MHz,最大運行電流范圍為2~3.6V,可同時輸出多PWM方波,能夠有效支持同時進行串口數(shù)據(jù)通信,體積小,重量輕;并且能夠很好地有效滿足應用需求。
窄足的機器人能量主要是由一塊14.8V的大容量鎳氫動力電池供給,但是因為主芯板,舵機,以及姿態(tài)傳感器等主要元器件的工作電壓并不相等,所以就必須對鎳氫動力電池進行減壓管理。利用AH8670C對鋰電池進行降壓處理,然后再給其他元器件供電。該降壓控制晶片中利用人工調(diào)節(jié)的可調(diào)電位器,便可調(diào)整輸出電流。
MPU6050集成了3軸運動陀螺儀和3軸硬件加速度運動傳感器,自帶高速數(shù)字解碼運動姿態(tài)處理器(DMP:Digital Motion Processor)可從硬件加速度到發(fā)動機,通過HDMI和IIC兩個接口實時輸出運動姿態(tài)控制數(shù)據(jù),非常簡單便于用戶實現(xiàn)高速動態(tài)數(shù)字解碼運算。
該串口模塊為雙工直插式無線傳輸串口,與收發(fā)器之間是一體、半雙工、全透明的無線數(shù)據(jù)傳輸,兼容3.3V和5V的輸出電壓,環(huán)境適應性較強;無線發(fā)射功率高,傳輸使用距離長。同時,該技術模塊組還擁有更強大的無線數(shù)據(jù)壓縮處理功能以及更高效的數(shù)據(jù)糾錯性能計算,使其抗干擾增強性能以及更高的無線傳送數(shù)據(jù)效能。
舵機的內(nèi)側(cè),還布置有一座直流式發(fā)動機[4];一個高速齒輪傳動組;以及一種電流反饋裝置和電位控制裝置;另外還有一個舵機電子自動控制器。其中,更高速直流驅(qū)動電機主要是提供最原始的驅(qū)動力,并帶動伺服齒輪(又稱減速)傳動組件,使之旋轉(zhuǎn)形成一種更大的轉(zhuǎn)矩扭力使之傳遞,而齒輪傳動組件如果變速比越大,則伺服驅(qū)動電機的齒輪傳遞最大扭矩力也會更大,也就是說,更高速度將能讓其承載很大的設備重量。
在系統(tǒng)硬件架構的設計基礎上,只有通過軟件的設計才能完成下面兩個功能:
(1)雙足競步機器人,進行持續(xù)、平穩(wěn)地行走、前滾翻和后滾翻;
(2)根據(jù)2017年中國足球機器人競步大賽暨Robo Cup2017年中國足球公開賽相關規(guī)則,雙足雙人競步參賽機器人須在一個長600cm、寬60cm的白色矩形競賽場地內(nèi)獨立完成各項規(guī)定的競步動作,場地周圍為一塊白色帶有水平面的kt形地板,邊框上方均貼有一條黑色反光膠帶。
由此得到控制系統(tǒng)在軟件上至少要滿足以下要求:
(1)雙足競走機器人的六個滑膜關節(jié)有六操舵裝置,而舵機控制周期為24mbps,脈寬為6mbps,所以該軟件能夠完成6個PWM信息的實時輸出,并確保PWM信息有較高的準確度,因此軟件需要對PWM信息進行不斷地運算,并進行修改。
(2)利用飛機傳感器實時自動獲取飛機信號,以實現(xiàn)正確辨識飛機黑色框邊,并完成實際數(shù)據(jù)處理,從而做出合理判定,立即向飛行舵機乘員傳送飛行相關控制指令。
根據(jù)工業(yè)控制管理系統(tǒng)的主要軟件設計功能需要,采用一種模塊式的軟件設計控制理念,每個控制模塊都必須能獨立完成自己的主要功能。各功能模塊和軟件功能的具體安排主要如下:
(1)增加主機板功能。實現(xiàn)了制動系統(tǒng)內(nèi)部硬件運行狀態(tài)的制動初始化,主要軟件有一個單片上舵機執(zhí)行端口的制動初始化,定時器/制動計數(shù)器的制動初始化,外部電源中斷的制動初始化,下舵機的制動初始化,調(diào)用紅外線的探測和外部中斷的制動觸發(fā)控制函數(shù),以及上舵機行走的制動函數(shù)。
(2)動作步行統(tǒng)計函數(shù)控制啟動執(zhí)行定時器/執(zhí)行計數(shù)器,根據(jù)每個動作的不同執(zhí)行時間順序和動作步態(tài)進行規(guī)劃,對應的多個PWM執(zhí)行信號參數(shù)進行不斷同步計算,控制一臺單片機自動發(fā)射實時化的PWM執(zhí)行信號,驅(qū)動6臺螺旋舵機協(xié)調(diào)進行旋轉(zhuǎn),完成一個步行、前滾和后滾側(cè)翻等多個動作。
(3)紅外探測和中斷觸發(fā)功能。紅外感應器實時收集和處理地面信息,并對其進行處理。送到位的單片機外部驅(qū)動斷路,如果驅(qū)動檢測者看到內(nèi)部有一個黑色的圓形邊框,則表示外界驅(qū)動斷路將被觸發(fā),單片機向驅(qū)動舵機內(nèi)部傳送一個相應的斷路指示,控制雙足式的競步驅(qū)動機器人的左右快速轉(zhuǎn)動或向右彎曲。
主要子函數(shù)的應用功能主要目的是用于實現(xiàn)機器系統(tǒng)中軟硬件運行狀態(tài)的自動初始化,并分別調(diào)用了汽車行走狀態(tài)子函數(shù)、紅外信號探測和自動中斷信號觸發(fā)器等子函數(shù),其功能內(nèi)容主要如下:
(1)Atmegal28端口的起始化:當芯片啟動時,當前系統(tǒng)將首先選擇Atmega128的內(nèi)核數(shù)據(jù)、初始定時器、當前系統(tǒng)使用的接口,再通過選擇其數(shù)據(jù)寄存器;
(2)數(shù)據(jù)初始化自動定時器/自動計數(shù)器:通過手動設置數(shù)據(jù)控制自動寄存和數(shù)據(jù)方向控制寄存器,將自動定時器/自動計數(shù)器可設置為兩種模式;
(3)內(nèi)部外斷觸發(fā)初始化:將2個內(nèi)部自動中斷,一個int0和一個int1設置成作為連續(xù)上升的中斷觸發(fā);
(4)站立初始化舵機:初始6個舵機,使雙足式的競步式導航機器人完全站立;
(5)對紅外自動探測和外部中斷信號觸發(fā)器的子函數(shù)功能進行自動調(diào)用:每行走一步,紅外探測傳感器對外部信號中斷進行自動采集和處理,如果外部信號中斷沒有觸發(fā),則向自動舵機內(nèi)部傳送一個相應的自動控制指令,執(zhí)行左或左的右轉(zhuǎn),如果沒有中斷觸發(fā),則自動退出觸發(fā)子函數(shù);
(6)調(diào)用子函數(shù):首先根據(jù)圖示進行相應的動作,然后退出子函數(shù)。主函數(shù)流程圖,如圖4所示。
系統(tǒng)在進行操作前,雙足競步機器人處于立正狀態(tài),之后進入紅外探測處并中斷觸發(fā)子函數(shù),然后再完成一般的行走函數(shù)(包括向前或后翻的行走函數(shù)),并再判斷是不是完成了所需要的動作,要是跑完則程序完成,否則系統(tǒng)將回到紅外探測處并重啟。程序的循環(huán)運行,最后完成了所有的設定操作。
通過Keil μVision完成了前后翻滾,大步走等一系列動作的編程,拓展了單片機的應用技能。由于賽道長達六米,在調(diào)試的過程中比較艱難,且舵機存在偏差,最終通過更改源碼上位機的反復調(diào)參完成了任務。
競爭優(yōu)勢:(1)通過間斷性矯正方向并調(diào)整步頻從而到達賽道終點。(2)運用Matlab模擬行進路線節(jié)約測試時間。(3)通過復合板材進行切割并打孔,以減輕機身重量。(4)對機器人足底加裝顆粒防滑墊以保證平衡性。(5)為保證動作連續(xù),對動作進行分塊編組,模塊化的動作組便于調(diào)參及運動的流暢性。