,,,,
(1.北京理工大學 機電學院,北京 100081; 2.中央民族大學附中,北京 100081)
小型仿人雙足機器人的研發(fā)過程既涉及對各學科基礎知識的掌握與學習,又涉及對多領域關鍵技術的綜合與應用。本文的目標是研發(fā)一款小型仿人雙足機器人,要求機器人具有模塊化構型、拼插式安裝、多元化編程、結構精煉、功能齊備、運動靈活、控制簡單、成本低廉、易于制作等特點。為實現(xiàn)以上設計目標,需將理論研究、性能分析、功能設計、樣機制作、組裝調(diào)試、動作編程等環(huán)節(jié)有機結合,完成機器人的機械結構設計、硬件系統(tǒng)設計、軟件系統(tǒng)設計,具體工作如圖1所示。
圖1 小型仿人雙足機器人開發(fā)任務圖
從本質(zhì)上看,小型仿人雙足機器人屬于比較復雜的機電一體化系統(tǒng),要完成其研發(fā)工作,首要要完成其總體設計方案。在總體方案的引導下,再進行具體的機械結構設計、硬件系統(tǒng)設計和軟件系統(tǒng)設計。因此,本文的研究思路是貫徹“四個結合”,即設計目標與功能要求相結合,實體造型與虛擬仿真相結合,樣機制作與實物驗證相結合,動作編排與運動特性相結合。
小型仿人雙足機器人的研發(fā)過程是機械、電子、控制、仿生等多學科知識綜合使用的過程。因此,此次研發(fā)也將圍繞機械結構設計、硬件系統(tǒng)設計、軟件系統(tǒng)設計三部分內(nèi)容開展,具體研究內(nèi)容見圖2。
圖2 小型仿人雙足機器人總體設計
機械結構設計是機器人研制工作的基礎。機械結構設計主要完成以下工作:一是根據(jù)仿生學目標進行自由度分配;二是依據(jù)研發(fā)任務選擇驅(qū)動元件;三是使用solidworks軟件進行機器人結構實體造型設計;四是建立機器人運動學模型并進行運動學分析;五是完成實驗樣機的結構組裝。硬件系統(tǒng)設計是機器人研制工作的關鍵。硬件系統(tǒng)設計主要完成以下工作:一是選擇核心器件(CPU、傳感器);二是使用PCB設計軟件Altium Designer進行核心電路設計(MUC外圍電路、電源電路、傳感器檢測電路、無線模塊電路、遙控器電路);三是通過實體PCB加工機器人電路;四是調(diào)試機器人硬件系統(tǒng)。軟件系統(tǒng)設計是機器人研制工作的核心。軟件系統(tǒng)設計主要完成以下工作:一是通過“插補法”、“分時細分”進行機器人關節(jié)舵機的驅(qū)動控制;二是使用IAR等嵌入式編程軟件進行傳感器驅(qū)動程序設計;三是進行機器人控制系統(tǒng)上位機軟件設計;四是進行機器人運動調(diào)試工作。
在此基礎之上,需要通過機器人實驗來驗證機器人的研發(fā)成果。機器人實驗主要包括仿真實驗與樣機實驗,以此驗證機器人設計方案的合理性與可行性。
小型仿人雙足機器人的擬人特征與行走特性決定了其機械結構設計過程存在的矛盾:一是仿生學特征與機械設計難度之間的矛盾,要以人體結構為藍圖,進行機器人身體比例分配、自由度分配、重量分配,并使得其盡可能仿人化,這本身就會帶來若干矛盾;二是機器人性能盡可能卓越的要求與結構盡可能簡化之間的矛盾,因為人們通常會要求在實現(xiàn)機器人性能的前提下要最大限度的優(yōu)化機器人結構,保證其設計合理、比例協(xié)調(diào)、結構緊湊;三是機器人成本與魯棒性之間的矛盾,在控制機器人成本的前提性,要求研發(fā)的小型仿人機器人具有較好的魯棒性。
結合機器人設計開發(fā)的矛盾與要求,以圖3所示內(nèi)容為依托,提出小型仿人雙足機器人機械結構設計過程中的具體任務:第一,完成機器人自由度的分析與配比;第二,根據(jù)機器人的運動扭矩選取驅(qū)動元件;第三,以人體比例為藍圖,設計機器人各部位的機械結構,確定各關鍵距離,優(yōu)化結構參數(shù);第四,建立機器人數(shù)學模型,進行正、逆運動學分析;第五,完成機器人板件的加工與裝配。在此,機器人的自由度分配和器件選型是基礎,結構設計是核心,數(shù)學模型建立和運動學分析是關鍵。
圖3 小型仿人雙足機器人機械結構設計內(nèi)容
小型仿人雙足機器人自由度數(shù)量的選擇是在兩個極端之間尋求平衡。自由度數(shù)量與機器人仿人性、控制精確程度成正比,與結構簡化程度、研發(fā)生產(chǎn)成本成反比。只有保證各自由度的協(xié)調(diào)配合才能實現(xiàn)機器人的基本功能。因此,約束小型仿人雙足機器人自由度分配的要點如下:一是保證結構緊湊,控制機器人體積大小;二是保證成本低廉,避免自由度過多造成的高成本與陡增的控制難度;三是保證機器人基本功能的實現(xiàn),盡量實現(xiàn)其結構的簡單化;四是保證機器人直立行走和完成各類運動的能力。
經(jīng)過綜合分析,確定該小型仿人雙足機器人為10自由度配置。綜合考慮機器人整體尺寸和伺服電機的驅(qū)動力矩,確定機器人的中心位置為腰部,以腰部為分界線,自由度分配從上肢、下肢兩個角度進行闡述。機器人上肢自由度配置:人體上肢主要包括頸關節(jié)、肩關節(jié)、肘關節(jié)和腕關節(jié),以及其他較小的關節(jié)[1],為契合機器人研制目標,不再對如此數(shù)量龐大的自由度逐個還原,僅保留兩個重要關節(jié):肩關節(jié)和肘關節(jié)。將肩關節(jié)的運動簡化為前后擺動,將肘關節(jié)的運動簡化為里外擺臂,上肢共設計4個自由度。機器人下肢自由度配置:下肢的自由度分配將影響機器人行走功能[2],一旦下肢自由度配置不合理,便可能出現(xiàn)無法行走或穩(wěn)定性較差的現(xiàn)象。類比于機器人上肢自由度的分配,機器人下肢自由度的分配也不能照抄人體結構,應結合設計要求,簡化分配[3]。因此,下肢共設計6自由度,每條腿分配3個自由度,其中踝關節(jié)2個自由度,髖關節(jié)1個自由度[4]。
該機器人各自由度之間可串行連接或并行連接[5],兩種連接方式的比較[6]如表1所示。
表1 自由度連接方式對比
綜合分析并系統(tǒng)考慮后,該機器人設計采用串行連接方式,其10個自由度分配如圖4所示。
圖4 小型仿人雙足機器人自由度分配圖
小型仿人雙足機器人具體自由度分配方案見表2。
表2 小型仿人雙足機器人自由度分配表
驅(qū)動元件作為機器人的動力源是其運動功能的基礎[6]。直流伺服電機、舵機、步進電機是三種常見的機器人驅(qū)動元件,這三種驅(qū)動元件各具特色,下文將進行簡要對比,以篩選出適合本次機器人研制的驅(qū)動元件[7]。三種驅(qū)動元件對比結果可見表3[8]。
表3 驅(qū)動元件對比表
經(jīng)過詳盡分析與仔細對比,最終選用舵機作為此次機器人研制的動力元件。舵機通常由控制電路、電機、減速齒輪等多個零件組成[9]??刂菩盘柾ㄟ^舵機信號調(diào)制芯片產(chǎn)生直流偏置電壓,以舵機基準電路提供的基準信號為參考,產(chǎn)生電壓差,決定舵機正反轉和轉動角度。舵機一般都有最大旋轉角度,即只能在該角度范圍內(nèi)轉動,不能實現(xiàn)360°的轉動。區(qū)別于普通直流電機,舵機可以反饋位置信號,通常可在機器人關節(jié)運動中使用[10]。普通舵機分解如圖5所示。
圖5 普通舵機分解圖
根據(jù)控制方式的不同,舵機分為模擬舵機和數(shù)字舵機。數(shù)字舵機和模擬舵機在機械結構上基本一致,不同之處表現(xiàn)在控制電路、控制方式、控制效果上,具體對比見表4。
表4 模擬舵機與數(shù)字舵機的差異
綜上所述,在對控制精度沒有特殊要求的情況下,該機器人可采用模擬舵機,本處采用模擬舵機SG90作為機器人關節(jié)。圖6為模擬舵機SG90外觀圖。
圖6 SG90舵機外觀圖 圖7 SG90舵機模型圖
SG90舵機的主要技術參數(shù)如表5所示。
經(jīng)過分析計算,舵機SG90符合該小型仿人雙足機器人的設計需要?,F(xiàn)使用Solidworks對SG90舵機進行三維建模,仿真模型圖如圖7所示。
表5 SG90舵機技術參數(shù)一覽表
如前分析,小型仿人雙足機器人采用串聯(lián)方式模擬人類關節(jié)結構,其踝關節(jié)采用十字軸的設計方法,即在一個位置實現(xiàn)兩個方向的旋轉,以此簡化結構、節(jié)省工件。同時,為提升中小學生動手能力,該機器人擬采用拼插方式進行組裝。
首先使用三維實體造型軟件Solidworks設計該機器人的肘關節(jié)與肩關節(jié)結構。綜合考慮關節(jié)舵機與板材加工工藝,設計與關節(jié)舵機匹配且可以順利完成加工任務的結構件。最后,安裝電機和結構件,并進行干涉分析和強度校核。該機器人肘關節(jié)設計模型如圖8所示,肩關節(jié)設計模型如圖9所示。
圖8 機器人肘關節(jié)設計模型圖 圖9 機器人肩關節(jié)設計模型圖
完成機器人結構設計以后,根據(jù)自由度模型調(diào)整并優(yōu)化機器人結構,確定關鍵尺寸。關鍵尺寸標示見圖10。
圖10 關鍵尺寸標示圖
機器人上肢各關鍵尺寸數(shù)據(jù)如表6所示。
表6 機器人上肢結構關鍵尺寸一覽表
使用Solidworks設計機器人下肢結構,設計對象包含膝關節(jié)、踝關節(jié)與髖關節(jié)。為簡化設計方案,將膝關節(jié)活動范圍限制在鈍角以內(nèi),以穩(wěn)定機器人行走時的重心位置。綜合考慮關節(jié)舵機與板材加工工藝,設計與關節(jié)舵機匹配且可以順利加工完成的結構件。圖11所示為機器人踝關節(jié)結構模型圖,圖12所示為機器人髖關節(jié)結構模型圖。
圖11 踝關節(jié)設計模型圖 圖12 髖關節(jié)設計模型圖
完成機器人結構設計后,根據(jù)自由度模型調(diào)整并優(yōu)化機器人的結構,確定關鍵尺寸,其關鍵尺寸標示見圖10,各關鍵尺寸數(shù)據(jù)如表7所示。
表7 機器人下肢結構關鍵尺寸一覽表
將2.4節(jié)與2.5節(jié)中設計好的機器人上肢和下肢連接,安裝舵機,進行干涉分析和強度校核,最終完成機器人身體結構仿真(如圖13所示)。
圖13 小型仿人雙足機器人整體設計造型圖 圖14 小型仿人雙足機器人組裝實體樣機
在該機器人設計過程中,為減輕機器人重量,實現(xiàn)順利安裝,對部分構件進行了鏤空設計。按照人體結構比例,使機器人各部位的運動能夠協(xié)調(diào)一致,最終確定機器人的身高為221 mm,重量為348 g。
為減輕小型仿人雙足機器人的整體重量,其零件材料采用ABS工程塑料制作。首先在AutoCAD中將三維設計模型轉為可用于激光切割加工的二維圖紙,便于采用激光切割機加工。采用經(jīng)激光切割獲得的板材進行組裝后所得機器人樣機如圖14所示。
本文通過對所構建的小型仿人雙足機器人進行軟件編程,設計了一個專用于該機器人的“舞蹈”程序,以實現(xiàn)該機器人的舞蹈動作。在相關過程中,通過分層的軟件架構方法,設計了驅(qū)動層、應用層和執(zhí)行層,使機器人軟件系統(tǒng)的各個部分分工明確,且使小型機器人在跳舞過程中能夠保持各部位的協(xié)同運動,同時保證機器人重心穩(wěn)定,不會摔倒,最終實現(xiàn)了小型仿人雙足機器人的各種“舞蹈”動作。
在對機器人動作控制的程序設計中,需要解決兩方面問題:一是要解決機器人身體各關節(jié)在執(zhí)行動作時的協(xié)同運動問題,二是要解決機器人在運動過程中因重心不穩(wěn)而摔倒的問題[11]。本文希望通過編程設計來同時解決這兩個問題。為此,首先要對機器人的關節(jié)舵機進行控制,進而實現(xiàn)機器人身體各部分的協(xié)同運動(舵機是由直流電機、減速齒輪組、傳感器和控制電路組成的一套自動控制系統(tǒng)。通過發(fā)送信號,指定輸出旋轉角度控制機器人的動作幅度與方向),其次是在機器人動作設計中,通過控制其動作“速率”保證機器人在動作執(zhí)行過程中不會摔倒。
通過系統(tǒng)分析和科學實驗的方法,得到舵機從一個角度運動到另一個角度的最佳時間。通過“定時插補”調(diào)速算法實現(xiàn)對小型仿人雙足機器人舵機速率的控制;再通過“分時細分”控制算法,實現(xiàn)對機器人各部位的聯(lián)動控制;最后通過軟件系統(tǒng)的編程設計實現(xiàn)該機器人的“舞蹈”動作。
其次,早期的區(qū)塊鏈應用記錄的是源于母體的數(shù)字貨幣,區(qū)塊鏈自產(chǎn)自銷的是原生虛擬資產(chǎn)。這是一個封閉的數(shù)字價值世界,不需要與物理世界打交道就可以運轉,匿名也是完全可行的。但到了區(qū)塊鏈的2.0時代(具備智能合約和平臺化等),區(qū)塊鏈上記錄和交易的不再來自區(qū)塊鏈,而是來自物理世界的股權、版權和產(chǎn)權等。如果區(qū)塊鏈上所映射的是匿名資產(chǎn),從法律意義上就是無效合同。
第一步,通過實驗得到該機器人信號發(fā)出后的等待時間。該機器人身體各部分的運動是通過有序控制舵機來實現(xiàn)的。例如,機器人手腳的運動就是控制機器人關節(jié)驅(qū)動舵機以一定角速度從一個角度A轉動到另一個角度B的過程,如舵機要保持該位置,需一直發(fā)送相應的PWM波。假設轉動一定角度需要消耗的時間為ΔT,而CPU發(fā)出運動到某角度B的PWM信號后,需要等待一定的時間,記為Tw。理論上,當Tw≥ΔT時,舵機能夠轉動到指定位置;當Tw<ΔT時,舵機不能轉動到指定位置;當Tw=ΔT時,舵機運動最快,系統(tǒng)動作最連貫。而本次使用的機器人有10個舵機,并且10個舵機的負載存在差異,需要通過實驗測試的方法,得到舵機的Tw數(shù)據(jù)(見表8),進而對軟件程序的可行性進行分析。
表8 舵機Tw數(shù)據(jù)實驗表格一覽表
第二步,通過“定時插補”調(diào)速算法實現(xiàn)對該機器人舵機速率的控制。小型仿人雙足機器人的舵機本身是不能控制自己的速度的,對舵機速度進行控制是通過軟件編程,給定其初始位置、最終位置以及時間,然后進一步通過細化時間和角度來實現(xiàn)的。舵機運動過程中的流暢性和時間細分的程度緊密相關,但是受到自身性能的影響與限制,又不能對舵機的時間進行無限細分,因此需要通過調(diào)速算法,找到舵機運行的流暢度和性能的平衡點。對此,本文采用“定時插補”調(diào)速方法,在程序設計中使用定時器中斷來對時間進行細化。假設,在時間T內(nèi)使用定時器進行了N次中斷,則每一次中斷的時間dt為:
(1)
設初始位置角度為ω0,目標位置角度為ωn,ω0變化到ωn角度差為dp,所需時間為Ten,細化后每進行一次變化的角度為dp0,細化的次數(shù)n,則:
dp=ωn-ω0
(2)
(3)
(4)
每進行一個時間周期,角度變化dp0,并且設置一個計數(shù)器m,每當角度變化一次dp0,則進行m+1,當m=n時,舵機變化到指定位置。針對舵機速率的控制算法,本文給出的軟件系統(tǒng)設計流程如圖15所示。
圖15 小型仿人雙足機器人算法實現(xiàn)流程圖
第三步,要實現(xiàn)小型仿人雙足機器人的舞蹈運動功能,就需要對機器人的所有舵機進行聯(lián)動控制。在此處,本文采用“分時細分”控制算法,具體做法是將舵機PWM周期分為8個小段,每個時間小段里分別控制一個舵機,因此,特別設計了一個定時器來控制8個相關舵機,2個定時器就能夠控制16個舵機,而本次使用的小型仿人雙足機器人擁有10個舵機,因而使用2個定時器就能夠滿足分時控制需求。針對多個舵機的聯(lián)動控制算法,將機器人軟件系統(tǒng)設計流程圖分為3部分,即主程序、2.5 ms中斷程序和10 μs終端程序,分別如圖16所示。
圖16 小型仿人雙足機器人軟件系統(tǒng)設計流程圖
圖17 小型仿人雙足機器人軟件執(zhí)行流程圖
需要注意的是,串口通信需要先掃描出可以使用的串口[12],在此我們使用的是“try-catch”語句對串口進行掃描,發(fā)現(xiàn)能夠使用的串口時便將該串口返回給主程序。舵機的控制程序主要由上述兩個算法組成?;谏鲜鏊惴ㄅc程序的小型仿人雙足機器人舞蹈動作編排界面如圖18所示。
圖18 小型仿人雙足機器人舞蹈動作編排界面截圖
基于上述思想與方法完成程序編排和動作展示的小型仿人雙足機器人舞蹈動作(部分片段)則如圖19所示。
本項目取得了以下成績:
1)解決了小型仿人雙足機器人各部位聯(lián)動控制的問題,保證了機器人在舞蹈過程中的流暢性與精確性。
圖19 小型仿人雙足機器人舞蹈動作(部分片段)
2)通過對小型仿人雙足機器人運動速率和動作幅度的控制,確保了該機器人在舞蹈過程中的穩(wěn)定性與魯棒性。
3)實現(xiàn)了小型仿人雙足機器人比較復雜的“舞蹈”動作,發(fā)揮了機器人的部分教育、示范、引導功能,使得像我們一樣對機器人技術充滿興趣的青少年學生能通過對機器人的程序控制和動作編排,了解并掌握機器人的控制技術,為將來的騰飛奠定必要的技術基礎。