趙學玲,邊授權(quán),郝立果,趙 鵬
(1.天津職業(yè)技術(shù)師范大學信息傳感與智能控制重點實驗室,天津 300222;2.天津職業(yè)技術(shù)師范大學工程實訓中心,天津 300222)
人形機器人是一種具有人的外形特征和行為的機器人,它能夠代替人類完成各種作業(yè),并可以在很多方面擴展人類的能力,提高效率。人形機器人已在服務(wù)、醫(yī)療、教育、娛樂、救災(zāi)搶險等多個領(lǐng)域得到廣泛應(yīng)用[1]。美國、日本、韓國、英國等國家都在研制人形機器人方面做了大量的工作,并已取得突破性的進展[2]。我國在這方面也做了很多工作,國防科技大學、哈爾濱工業(yè)大學、上海交通大學等研制出了雙足步行機器人[3];北京航空航天大學、哈爾濱工業(yè)大學、北京科技大學研制出了多指靈巧手[4];中科院合肥物質(zhì)研究所研制出了智能腳等[5]。本文介紹一款低成本的小型人形機器人,該機器人能夠滿足雙足機器人的基本要求,且具備最基本的運動功能。在機械結(jié)構(gòu)方面,參照人體實際的肢體比例制作了軀干、四肢和頭,各活動關(guān)節(jié)利用舵機構(gòu)建,并設(shè)計一個舵機的驅(qū)動器,用于控制舵機以實現(xiàn)各關(guān)節(jié)動作;利用Visual Basic設(shè)計了舵機控制軟件,實現(xiàn)對機器人的運動控制。實驗表明人形機器人能夠完成規(guī)定的舞蹈動作組合。
人形機器人整個系統(tǒng)主要由機械結(jié)構(gòu)、控制電路和上位機控制軟件3部分組成,如圖1所示。機器人的機械結(jié)構(gòu)仿照真人的肢體搭建并盡可能接近實際人體的比例,各關(guān)節(jié)的活動通過舵機實現(xiàn);控制電路用于驅(qū)動控制每一臺舵機,模仿人的肢體動作;上位機控制軟件用于編排機器人舞蹈,計算出實現(xiàn)每一個動作相應(yīng)關(guān)節(jié)的運動角度。
操作者根據(jù)機器人要做出的舞蹈動作,將每一個關(guān)節(jié)的動作幅度和先后順序進行編排,并輸入上位機軟件中;運行軟件后,上位機將通過串行通信接口,將動作指令逐一發(fā)送到控制器;控制器中的CPU在得到指令后,將控制相應(yīng)的舵機運動并達到指定位置,舵機帶動肢體關(guān)節(jié)轉(zhuǎn)動,以實現(xiàn)模仿各種肢體動作。在制作時,將舵機控制器和電池安裝于機器人本體上。
機械結(jié)構(gòu)是機器人做出各種模仿動作的基礎(chǔ),人體關(guān)節(jié)十分復(fù)雜,要模仿出惟妙惟肖的人體動作,機器人的關(guān)節(jié)數(shù)量及自由度就要盡可能的多[6],但關(guān)節(jié)數(shù)量和自由度的增加會使得機器人的控制難度增加,硬件成本提高[7-9]。“舞蹈演員”在表演時,他們的雙臂和雙腿以及頭部動作會形成較好視覺效果,而手指等部位的動作一般看不清楚??紤]以上因素,機器人的機械結(jié)構(gòu)設(shè)計本著抓大放小的原則[10],只選用動作幅度較大、動作明顯的主要肢體和關(guān)節(jié),并減少其自由度,對于手指、脊椎等關(guān)節(jié)則忽略不計。
機器人的肢體結(jié)構(gòu)主要由頭、軀干、雙上肢、雙下肢共6個肢體組成,如圖2所示。機器人頭部與軀干通過頸關(guān)節(jié)連接,為簡化控制頸關(guān)節(jié),只保留了1個左右旋轉(zhuǎn)的自由度;上肢通過肩關(guān)節(jié)與軀干連接,肩關(guān)節(jié)有2個自由度,可做出側(cè)擺臂和前后擺臂動作,大臂和小臂之間通過肘關(guān)節(jié)連接,1個彎曲自由度;下肢與軀干通過髖關(guān)節(jié)連接,具有2個自由度,可做出側(cè)抬腿和前后抬腿的動作。大腿與小腿之間由膝關(guān)節(jié)連接,可做彎曲動作;小腿與足部由踝關(guān)節(jié)連接,可做彎曲動作。機器人本體由11個關(guān)節(jié)組成,共有15個自由度。
圖2 人形機器人肢體結(jié)構(gòu)
由于機器人要直立行走并做出各種動作,進行機械結(jié)構(gòu)設(shè)計時,要在保證機械強度的基礎(chǔ)上,盡可能減化機構(gòu)、減輕重量,所以在選擇材料上以鋁制型材為主。機器人肢體外形圖如圖3所示。圖3(a)為機器人軀干,利用鋁片制成外形輪廓,中空部分用于安裝電路和電池;圖3(b)為上、下肢基本形狀,利用鋁片制成U形,根據(jù)安裝位置的不同可對其尺寸進行調(diào)整,在作為機器人肢體同時,還可用于固定舵機。
圖3 機器人肢體外形圖
將完成后的機器人肢體按照對應(yīng)位置連接起來,機器人本體的機械結(jié)構(gòu)也就基本完成了。為了簡化機構(gòu),采用舵機輸出軸直連的方式進行肢體的連接,舵機軸旋轉(zhuǎn)的角度對應(yīng)關(guān)節(jié)彎曲的角度。對于2個自由的肩關(guān)節(jié)和髖關(guān)節(jié),則采用2個舵機正交連接的方式,圖4所示為完成連接的機器人本體機構(gòu)。
圖4 機器人本體結(jié)構(gòu)
機器人控制電路的主要作用是根據(jù)編排好的舞蹈動作,控制舵機輸出軸的旋轉(zhuǎn)角度,使機器人關(guān)節(jié)彎曲做出各種肢體動作??刂齐娐返目刂茖ο笫嵌鏅C,其控制信號為50 Hz的方波,通過改變方波的占空比來控制舵機的輸出角度??刂齐娐酚蒑CU、電源單元、通信接口和I/O擴展4個部分組成,如圖5所示。
圖5 機器人控制電路結(jié)構(gòu)
電源單元利用6 V鋰電池作為能源,輸出6 V和5 V兩路電壓,其中6 V電壓用于舵機供電,5 V電壓用于單片機和其他芯片供電。機器人本體采用了2種舵機,頭部和肘關(guān)節(jié)處由于受力小,選用額定電流為30 mA舵機,其他12個舵機的額定電流為150 mA,如所有舵機同時達到額定電流,可產(chǎn)生1 890 mA電流,所以電池選擇最大放電能力為3 A。其他芯片總電流不大于100 mA,選用7805穩(wěn)壓芯片進行穩(wěn)壓產(chǎn)生。
系統(tǒng)MCU采用AVR系列的8位單片機ATMEGA48,單片機與PC機之間采用串行通信,利用MAX232芯片進行TTL到RS232電平的轉(zhuǎn)換,利用4個74HC595串入并出芯片實現(xiàn)I/O口擴展,可產(chǎn)生32路方波輸出,最多同時控制32個舵機。為避免控制延時過長,將4個74HC595芯片分為2組,由2組I/O口分別控制,為了減小體積,選用貼片元器件制板,電路板如圖6所示。
圖6 I/O擴展接口圖
單片機程序的主要功能是根據(jù)上位機發(fā)來的指令控制對應(yīng)的I/O口輸出不同占空比的方波,程序主要包括:通信子程序、定時子程序和I/O輸出子程序,程序流程圖如圖7所示。單片機上電后首先進行初始化,對不同關(guān)節(jié)的舵機輸出不同占空比的方波,使機器人處于直立狀態(tài)。初始化完成后進入主循環(huán),程序循環(huán)體主要包括以下步驟:查詢串口指令—改變占空比值—定時比較—輸出刷新。
圖7 單片機程序流程圖
串口接收的指令為連續(xù)的2幀數(shù)據(jù),每幀16個字節(jié)。為了減少單片機的程序運算量,串口數(shù)據(jù)中每一個字節(jié)代表一路輸出脈寬為0.1 ms的方波,該方波用于控制一個舵機。舵機選用的是盛輝MG599,其控制信號為周期20 ms的脈寬調(diào)制信號,其中脈沖寬度為0.5~2.5 ms,相對應(yīng)舵盤的位置為0°~180°,兩者間呈線性變化。
利用定時器產(chǎn)生0.1 ms時基的中斷,在中斷處理函數(shù)中對定時變量進行累加,在主程序的循環(huán)體中,將定時變量與脈寬值數(shù)組中的數(shù)據(jù)逐一進行比較。當變量值與數(shù)組中的某一元素相等時,此元素對應(yīng)的I/O口將輸出低電平,當定時達到20 ms時,所有I/O口輸出高電平,同時將定時變量清零。32路PWM輸出的時序如圖8所示。
圖8 PWM輸出時序圖
機器人的舞蹈動作編排軟件利用VB程序設(shè)計,操作者根據(jù)設(shè)定的舞蹈動作,分解成每個舵機的角度變化,并將其按照動作順序輸入到界面中。為了簡化操作,本著簡單實用的原則,只設(shè)計一個界面,如圖9所示??刂平缑嬷饕ㄍǖ涝O(shè)置、串口設(shè)置和操作設(shè)置3個部分,串口設(shè)置部分用于設(shè)置通信波特率、數(shù)據(jù)格式等通信參數(shù),在完成串口基本設(shè)置后即可以對機器人的舞蹈動作進行編排。
圖9 上位機控制界面
根據(jù)機器人實際用到的舵機數(shù)量,選擇并激活相應(yīng)的控制通道,將舞蹈動作進行分解,通過拖動界面中的每一通道的進度條,控制相應(yīng)舵機轉(zhuǎn)動,一個分解動作中所有關(guān)節(jié)設(shè)置好后,點擊添加指令,本動作將被存入指令序列,按此方法將所有動作設(shè)置好,即完成了動作的編排。點運行指令,上位機將按照設(shè)定的間隔時間將指令序列依次發(fā)送到下位機,機器人即可實現(xiàn)舞蹈動作。
在完成了機器人的制作后,通過實驗對系統(tǒng)的功能和可靠性進行驗證,實驗主要包括單關(guān)節(jié)測試和多關(guān)節(jié)關(guān)聯(lián)調(diào)試。單關(guān)節(jié)測試的目的主要是確定其轉(zhuǎn)動角度的范圍、方向是否正確并確定初始位置,利用上位機控制界面,通過改變每個通道的值,觀察相應(yīng)關(guān)節(jié)的運動,確定其初始位置,通道1~15與各關(guān)節(jié)自由度的對應(yīng)關(guān)系如表1所示。
通過對單獨關(guān)節(jié)的測試,證明本系統(tǒng)單獨關(guān)節(jié)可以模仿人肢體的基本運動,而模仿人體動作需要多個關(guān)節(jié)關(guān)聯(lián)運動,在完成了單獨關(guān)節(jié)動作的測試后,還應(yīng)進行多關(guān)節(jié)關(guān)聯(lián)動作的測試。以簡單下蹲動作為例,需要髖、膝、踝關(guān)節(jié)配合動作,以保證其重心位置不會偏移而摔倒,通過不斷調(diào)整相關(guān)關(guān)節(jié)的放置角度和速度及前后關(guān)系,最終使其能夠平衡地完成下蹲動作。
表1 機器人靜止時各關(guān)節(jié)初始位置
本文介紹了一種人形機器人的設(shè)計,按照人體比例設(shè)計了機器人的結(jié)構(gòu),利用15個舵機實現(xiàn)各個關(guān)節(jié)的動作,組成了具有15個自由度的人形機器人,并設(shè)計了一個集成舵機控制器,通過與上位機通信的方式協(xié)調(diào)控制多路舵機。通過對人形機器人進行各項測試,驗證了設(shè)計的合理性,通過大量的實驗最終實現(xiàn)了完整的舞蹈動作。
[1]張茂川,蔚偉,劉麗麗.仿人機器人理論研究綜述[J].機械設(shè)計與制造,2010(4):166-168.
[2]CYNTHIA B.Emotion and sociable humanoid robots[J].Int J Human-Computer Studies,2003,59:119-155.
[3]胡金東,劉國棟.雙足機器人步行模式的在線全身修正[J].計算機應(yīng)用,2011,31(1):286-288,292.
[4]中華人民共和國科學技術(shù)部.智能機器人五指靈巧手研制成功[J].機器人技術(shù)與應(yīng)用,2010(6):45.
[5]人民日報社.中國機器人“智能腳”不懼坎坷路[J].硅谷,2012(10):1.
[6]姜銘,孫釗,秦康生,等.混聯(lián)機器人的分析和研究[J].制造業(yè)自動化,2009,31(1):61-65.
[7]周玉林,高峰.仿人機器人構(gòu)型[J].機械工程學報,2006,42(11):66-70.
[8]艾青林,祖順江,胥芳.并聯(lián)機構(gòu)運動學與奇異性研究進展[J].浙江大學學報,2012,46(8):1345-1359.
[9]楊東超,趙明國,陳懇,等.擬人機器人自由度的分析[J].中國機械工程,2003,14(6):453-456.
[10]TAKAYUKI K,HIROSHI I.Development and evaluation of interactive humanoid robots[J].Proceedings of the IEEE,2004,92(11):1839-1850.