



摘要:針對以往教育機器人自由度少、控制不靈活、教育功能弱的缺點,使用高集成度ARM芯片設(shè)計了一個簡潔的17自由度人形機器人控制系統(tǒng)。規(guī)劃了機器人的軟硬件結(jié)構(gòu),設(shè)計了控制電路和驅(qū)動系統(tǒng),采用1個定時器產(chǎn)生17路PWM驅(qū)動信號。重點以實例講解了波形產(chǎn)生及驅(qū)動函數(shù)的編寫方法和技巧。設(shè)計的機器人能夠完成整套體操運動。這種方法在多自由度機器人操控和教學(xué)中具有廣泛的借鑒意義。本文網(wǎng)絡(luò)版地址:http://www.eepw.com.cn/article/267 427.htm
關(guān)鍵詞:ARM;多自由度;人形教育機器人;舵機
DOI: 10.3969/j.issn.1005-5517.2015.1.008
基金項目:河南省科技攻關(guān)計劃項目(142102310226)席東河(1980-),男,碩士,實訓(xùn)中心主任、講師,研究方向:電子技術(shù)及自動化、嵌入式系統(tǒng)與應(yīng)用方向。申一歌(1982 -),女,碩士,講師,研究方向:電氣自動化方向。杜娟(1984-),女,工程師,研究方向:計算機應(yīng)用方向。高吉珍(1964-),女,高級工程師,研究方向:結(jié)構(gòu)設(shè)計。
1 系統(tǒng)方案設(shè)計
人形機器人控制系統(tǒng)包括機器人控制器和機器人遙控器兩部分。其中控制器以飛利浦公司的ARM7處理器為核心,包含17個舵機控制驅(qū)動電路與接口、串口通信調(diào)試電路、遙控接口、電源等。通過串口下載和傳輸控制信息。機器人遙控器使用無線模塊向機器人控制器發(fā)送指令,控制機器人完成規(guī)定動作。
2 硬件設(shè)計
人形機器人控制器主板由控制核心LPC2114、電源及檢測電路、外部晶振、JTAG調(diào)試接口、串口模塊、遙控模塊、舵機接口、LED指示燈等組成,組成框圖如圖l所示。
LPC2114基于一個支持實時仿真和跟蹤的32位ARM7TDMI-S CPU,并帶有128 k字節(jié)的高速Flash存儲器,非常小的LQFP64封裝、極低的功耗、2個32位定時器、4路10位ADC、PWM輸出、46個GPIO以及多達(dá)9個外部中斷使它們特別適用于工業(yè)控制、醫(yī)療系統(tǒng)、訪問控制和電子收款機(POS)等。
較高的功能集成度和強大的端口驅(qū)動能力使得機器人控制器主板電路的核心部分非常簡潔,基本上實現(xiàn)了單芯片的設(shè)計,如圖2所示為LPC2114控制器電路和4個舵機的驅(qū)動接口電路,其余13個舵機驅(qū)類同。
考慮到教育機器人的運動平衡控制,將PCB電路板按圖3(a)所示位置布局。該布局除了處理器最小系統(tǒng)、以及必要的指示和控制電路外、最重要的就是17個舵機驅(qū)動接口,這里使用彎角3排針連接,保證鏈接的緊湊和可靠。17個舵機接口分為5組,與下載接口按照左右各9個布局,其中人形機器人的頭包含1個舵機接口,負(fù)責(zé)左右運動,左胳膊包含3個舵機接口,分控肩、肘、腕3個運動自由度,左腿包含4個舵機接口,分控胯的左右/上下、膝蓋及腳腕4個自由度。右胳膊與右腿的分控接口和功能與機器人控制器左半部分對稱。
最后將控制器與7.2V電芯并列裝配到鋁合金外殼中,作為機器人的軀體,同時作為運動平衡的重心,良好的布局對機器人的運動至關(guān)重要。
考慮到人形機器人的自重和動作力度,設(shè)計采用FUTABA系列產(chǎn)品中的S3050大力矩車用、船用競賽型金屬齒輪數(shù)字舵機,如圖3(b)所示。該舵機自重48.8克,尺寸小,在6V電壓下工作,能夠達(dá)到0 .16秒/60度的轉(zhuǎn)速,力矩大小為6.5千克/厘米。
17個舵機按照前述的分組和人體關(guān)節(jié)結(jié)構(gòu)對稱排列布局,頭部1個舵機,左右胳膊各3個舵機,分別做為肩、肘、腕關(guān)節(jié),左右腿各5個舵機,分別為髖關(guān)節(jié)的左右運動1個、前后運動1個、膝關(guān)節(jié)1個、踝關(guān)節(jié)前后運動1個、左右運動1個,其中2個肩關(guān)節(jié)舵機和2個髖關(guān)節(jié)的左右運動的舵機,上下左右對稱緊湊安裝,作為身體的一部分,所有其他舵機使用鋁合金支撐固定成緊湊的人形結(jié)構(gòu)。
3軟件設(shè)計
軟件設(shè)計主要包含軟件架構(gòu)設(shè)計、程序流程設(shè)計和驅(qū)動控制函數(shù)的設(shè)計。
3.1軟件架構(gòu)
該人形機器人控制系統(tǒng)原理是:當(dāng)機器人控制器接收到遙控器發(fā)出的指令后,ARM處理器根據(jù)指令要求,將要執(zhí)行的動作參數(shù)分解成一系列寬度不等的PWM信號,并通過驅(qū)動電路輸出到舵機接口,外部舵機根據(jù)占空比不同的PWM信號轉(zhuǎn)動相應(yīng)的角度,多個舵機不同的轉(zhuǎn)動角度構(gòu)成了不同的機器人瞬時動作,多個動作連貫執(zhí)行就完成與外部命令相應(yīng)的響應(yīng)動作。軟件架構(gòu)如圖4所示。本文主要對關(guān)鍵驅(qū)動函數(shù)進(jìn)行說明。
3.2 舵機驅(qū)動程序設(shè)計
驅(qū)動脈沖與舵機轉(zhuǎn)動角度如表1所示,不同的高電平時間對應(yīng)著舵機不同的輸出位置。因此可以使用LPC2114內(nèi)部定時器模擬出17路以20ms為周期、高電平寬度與位置時序?qū)?yīng)的PWM波形,來分別驅(qū)動控制17個舵機轉(zhuǎn)動的角度,配合完成機器人的相關(guān)動作。
單個舵機的驅(qū)動函數(shù)(以機器人頭部舵機為例)定義:
多個舵機的驅(qū)動需要依據(jù)機器人的姿態(tài)數(shù)據(jù)計算出轉(zhuǎn)動時間,將其時間數(shù)據(jù)按一定算法進(jìn)行排序,并在CPU的控制下設(shè)置備舵機的運動和停止時間。
3.3 機器人舵機整體驅(qū)動函數(shù)ManMoveFrame()設(shè)計
函數(shù)功能:將輸入的各伺服器角度轉(zhuǎn)換為各伺服器的高電平時間,按照17個伺服器高電平時間從短到長依次凋用對應(yīng)伺服器驅(qū)動。共18個入口參數(shù),17個是伺服器角度,1個是動畫停留時間,轉(zhuǎn)換關(guān)系:1度約為0.00814mS。
函數(shù)定義:
3.4 機器人姿態(tài)數(shù)據(jù)輸入驅(qū)動函數(shù)ManMoveKeyframeData()設(shè)計
機器人動作的關(guān)鍵姿態(tài)是由各舵機轉(zhuǎn)動位置決定的,需要參照機器人的體態(tài)對17個舵機的自由度關(guān)系數(shù)據(jù)進(jìn)行設(shè)置,驅(qū)動函數(shù)將如表2所示設(shè)置的參數(shù)轉(zhuǎn)換為驅(qū)動信號,控制17個舵機的轉(zhuǎn)動,從而完成機器人行走的動作。表格空白的地方默認(rèn)數(shù)據(jù)為O。
函數(shù)功能:初始化各伺服器角度/時間數(shù)組,將機器人每姿態(tài)動作的各舵機角度數(shù)據(jù)輸入給各伺服器數(shù)組。共19個入口參數(shù):1個關(guān)鍵幀號、17個伺服器角度、1個動畫停留時間。
函數(shù)定義:
3.5 機器人動作控制驅(qū)動函數(shù)
ManMoveKeyframeToFrame()設(shè)計
主要功能:把動作幅度較大的姿態(tài)關(guān)鍵幀數(shù)據(jù)結(jié)合其下面緊挨的姿態(tài)關(guān)鍵幀數(shù)據(jù)轉(zhuǎn)換為時間均勻的普通幀驅(qū)動參數(shù),供整體驅(qū)動使用。入口參數(shù):無。出口參數(shù):無。
函數(shù)定義:
3.6機器人程序流程
機器人根據(jù)接收到的遙控命令自行判斷并完成動作,工作流程如圖5所示。因為人形機器人使用電池,工作比較耗電,所以在運動前要先檢測工作電壓,如果達(dá)到工作要求就接著工作,否則不執(zhí)行動作并報警,工作電壓不滿足要求會造成機器人因動力不足而摔倒,接收到結(jié)束命令就停止運行,不再響應(yīng)外部所發(fā)來的遙控命令,如果完成一個動作就恢復(fù)到立正站立狀態(tài)。
需要指出的是,在機器人運動時,程序?qū)ζ渫獠康乃欧骺刂埔M(jìn)行分時分批控制,以減輕處理器功耗壓力,達(dá)到可靠驅(qū)動的目的。
4 結(jié)論
按照機器人的運動體態(tài)完成運動數(shù)據(jù)的設(shè)計,經(jīng)過測試,該控制系統(tǒng)可以完成包括前滾翻、后滾翻、俯臥撐在內(nèi)的多種體操運動。課題組計劃進(jìn)一步封裝函數(shù),并設(shè)計可視化圖形編程界面,以便可以在電腦上更加直觀地生成運動數(shù)據(jù),積木化編程,降低操作難度。