摘 要:中樞模式發(fā)生器(central pattern generator,CPG)在六足機(jī)器人的運(yùn)動(dòng)步態(tài)控制中起著至關(guān)重要的作用。為能夠更高效、更低能耗地控制六足機(jī)器人的步態(tài)運(yùn)動(dòng),提出了一種Spiking-CPG(SCPG)神經(jīng)網(wǎng)絡(luò)作為六足機(jī)器人的仿生控制系統(tǒng),其結(jié)合Hopf振蕩器與以時(shí)疏的spiking信號(hào)傳遞信息的仿生神經(jīng)元LIF(leaky integrate-and-fire),采用環(huán)型拓?fù)浣Y(jié)構(gòu),使用六組各2 000個(gè)LIF神經(jīng)元組成的集合相互連接而成。該SCPG控制系統(tǒng)能夠生成六足機(jī)器人常見的波動(dòng)步態(tài)、四足步態(tài)、三足步態(tài),通過(guò)調(diào)節(jié)相位差參數(shù)實(shí)現(xiàn)快速、順滑、穩(wěn)定的切換運(yùn)動(dòng)步態(tài),實(shí)時(shí)調(diào)整所需的頻率、振幅,在面對(duì)外界干擾時(shí)能夠在很短的時(shí)間內(nèi)恢復(fù)原狀,具有很好的魯棒性。在Webots平臺(tái)上搭建了一個(gè)三維的六足機(jī)器人模型,將SCPG的信號(hào)輸出并經(jīng)過(guò)關(guān)節(jié)映射函數(shù)變換后,來(lái)控制六足機(jī)器人的運(yùn)動(dòng),驗(yàn)證了所設(shè)計(jì)六足機(jī)器人的運(yùn)動(dòng)穩(wěn)定性和SCPG控制方案的可行性與有效性。最后,在Intel的Loihi芯片上移植了SCPG神經(jīng)網(wǎng)絡(luò)控制器,結(jié)果表明,其具備高效的執(zhí)行速度和更低的能耗,在六足機(jī)器人的運(yùn)動(dòng)控制中具備良好的應(yīng)用前景。
關(guān)鍵詞:六足機(jī)器人;運(yùn)動(dòng)步態(tài)控制;Spiking-CPG;Hopf振蕩器;LIF;NEF
中圖分類號(hào):TP242.6 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1001-3695(2024)10-024-3053-06
doi:10.19734/j.issn.1001-3695.2024.01.0050
Gait locomotion of hexapod robot based on Spiking-CPG neural system using Hopf oscillator
Luo Shutong1,Song Zigen2
(1.College of Information,Shanghai Ocean University,Shanghai 201306,China;2.School of Aerospace Engineering & Applied Mechanics,Tongji University,Shanghai 200092,China)
Abstract:CPG makes a great contribution to the control of gait motions in hexapod robots.To manage the gait movements of hexapod robots more efficiently and with lower energy consumption,this work introduced a Spiking-CPG(SCPG)neural network as the bionic control system for these robots.The system integrated Hopf oscillators with biologically inspired LIF neurons,which communicated through sparse spiking signals,in a ring topology.It was composed of six groups,each containing 2 000 LIF neurons,interconnected to form the network.This SCPG control system could produce common hexapod robot gaits such as the wave,tetrapod,and tripod gaits.It facilitated rapid,smooth,and stable transitions between motion gaits by adjusting phase difference parameters,and could dynamically adjust the required frequency and amplitude,exhibiting excellent robustness by quickly recovering from external disturbances.It controlled a simple 3D hexapod robot model on the Webots platform.It deve-loped the robot by transforming the SCPG signal output through joint mapping functions,validating the motion stability of the designed hexapod robot and the feasibility and effectiveness of the SCPG control scheme.Finally,it ported the SCPG neural network controller proposed to Intel’s Loihi chip,showing that it has high execution speed and lower energy consumption,indicating a promising prospect for application in the motion control of hexapod robots.
Key words:hexapod robot;motion gait control;Spiking-CPG;Hopf oscillator;LIF;NEF
0 引言
現(xiàn)今機(jī)器人在人們的生產(chǎn)生活中不可或缺,其中六足機(jī)器人因其運(yùn)動(dòng)靈活穩(wěn)定,對(duì)環(huán)境的適應(yīng)性強(qiáng)等特點(diǎn),在探測(cè)、運(yùn)動(dòng)控制等領(lǐng)域扮演了重要角色[1]。運(yùn)動(dòng)控制是機(jī)器人極為重要的一個(gè)方向,基于中樞模式發(fā)生器的仿生控制方法模擬自然界生物的節(jié)律運(yùn)動(dòng),可以在沒(méi)有來(lái)自高層信號(hào)和外部反饋量的情況下生成穩(wěn)定的節(jié)律信號(hào),極好地模仿動(dòng)物的行走方式。文獻(xiàn)[2]運(yùn)用Kuramoto相位振蕩器構(gòu)建四足機(jī)器人的CPG網(wǎng)絡(luò)模型。文獻(xiàn)[3]提出一種σ-Hopf振蕩器實(shí)現(xiàn)機(jī)器人步態(tài)的瞬時(shí)同步。文獻(xiàn)[4,5]提出基于延遲耦合的Van der Pol振蕩器控制蛇形機(jī)器人以多種步態(tài)運(yùn)動(dòng)。然而為使機(jī)器人能夠更智能地運(yùn)動(dòng),往往需要搭載高維的傳感器收集外界信息,同時(shí)需要保證在變化的環(huán)境中低延遲、高效地處理信息。傳統(tǒng)基于模型的CPG控制策略雖然能產(chǎn)生穩(wěn)定的節(jié)律性輸出,其局限在于不擅長(zhǎng)處理外界信息從而往往無(wú)法適應(yīng)未知情況[6]。
受生物神經(jīng)機(jī)制的啟發(fā),智能信息是通過(guò)使用神經(jīng)細(xì)胞的脈沖或峰值來(lái)處理的,新一代的神經(jīng)網(wǎng)絡(luò)系統(tǒng)模型脈沖神經(jīng)網(wǎng)絡(luò)(SNN)已經(jīng)被提出,其通過(guò)結(jié)合單個(gè)峰值序列的時(shí)空信息來(lái)相互通信[7,8]。SNN已經(jīng)成為一種科學(xué)而有用的工具,以高效率和低功耗解決應(yīng)用工程中的問(wèn)題,例如機(jī)器人工程中的應(yīng)用[9,10]。研究人員也嘗試使用以深度學(xué)習(xí)的方法更智能的控制機(jī)器人的行走。文獻(xiàn)[11]提出以深度強(qiáng)化學(xué)習(xí)訓(xùn)練一種分布式控制結(jié)構(gòu)從而使六足機(jī)器人更好地學(xué)習(xí)步態(tài)行為。在運(yùn)行人工神經(jīng)網(wǎng)絡(luò)時(shí)計(jì)算延遲和響應(yīng)時(shí)間往往不能滿足實(shí)時(shí)執(zhí)行的要求[12],并且對(duì)邊緣機(jī)器人來(lái)說(shuō)能源資源有限,在實(shí)時(shí)性有所要求的機(jī)器人控制領(lǐng)域中難以忽視梯度、強(qiáng)化學(xué)習(xí)的計(jì)算密集性以及高延遲等問(wèn)題。
在神經(jīng)硬件上運(yùn)行的SNN[13]證明了自己克服這些問(wèn)題的能力[14],為了高效率和低功耗解決應(yīng)用工程中的問(wèn)題,SNN被用于構(gòu)建CPG神經(jīng)網(wǎng)絡(luò)來(lái)控制仿生機(jī)器人,這種網(wǎng)絡(luò)被稱為Spiking-CPG(SCPG)網(wǎng)絡(luò)。SNN由尖峰神經(jīng)元和互連突觸組成,這些突觸由可調(diào)節(jié)的標(biāo)量權(quán)重建模,以神經(jīng)元單元模擬生物體中的活動(dòng),通過(guò)結(jié)合神經(jīng)元脈沖序列的時(shí)空信息來(lái)相互通信以減少能源的消耗。文獻(xiàn)[15]提出基于SNN的R-STDP學(xué)習(xí)算法,以高效地執(zhí)行機(jī)器魚的目標(biāo)跟蹤任務(wù)。文獻(xiàn)[16]提出了一種監(jiān)督多層SNN控制器,使得機(jī)器蛇能夠?qū)崟r(shí)跟蹤目標(biāo)。得益于SNN信號(hào)傳輸?shù)臅r(shí)疏性,將SCPG加入機(jī)器人控制系統(tǒng)中可以降低能耗并快速處理時(shí)變的信號(hào),其使用SNN作為上層控制器處理環(huán)境信息傳遞給下層的CPG系統(tǒng)模型控制機(jī)器魚的運(yùn)動(dòng)。文獻(xiàn)[13]重點(diǎn)關(guān)注了神經(jīng)形態(tài)計(jì)算在算法和硬件方面的發(fā)展以降低計(jì)算平臺(tái)的能源需求。文獻(xiàn)[17]在FPGA(現(xiàn)場(chǎng)可編程門陣列)上使用多巴胺神經(jīng)元組成的CPG模型產(chǎn)生不同的節(jié)律模式來(lái)模擬二足動(dòng)物的初級(jí)步態(tài)。文獻(xiàn)[18]使用在集成傳感器的樹莓派上以SCPG在沒(méi)有先驗(yàn)知識(shí)的情況下學(xué)習(xí)生成單種三足步態(tài)的行走。文獻(xiàn)[19]在電路板FPGA上使用SNN復(fù)制CPG來(lái)實(shí)現(xiàn)六足機(jī)器人的三種常見步態(tài)。文獻(xiàn)[20]首次在SpiNNaker硬件板上實(shí)現(xiàn)六足機(jī)器人步態(tài),但其需要短暫的靜止期后才能實(shí)現(xiàn)步態(tài)的轉(zhuǎn)換。
SCPG網(wǎng)絡(luò)基于Hopf振蕩器模型,使用NEF算法設(shè)計(jì)了由六組各2 000個(gè)LIF神經(jīng)元群體構(gòu)成以復(fù)制耦合Hopf振蕩器的周期性活動(dòng)來(lái)控制六足機(jī)器人的步態(tài)運(yùn)動(dòng)。其能夠產(chǎn)生常見的六足步態(tài),可以觀測(cè)到神經(jīng)元對(duì)應(yīng)的發(fā)放模式,此SCPG網(wǎng)絡(luò)的優(yōu)勢(shì)在于能夠通過(guò)調(diào)節(jié)相位差參數(shù)實(shí)現(xiàn)快速、順滑、穩(wěn)定地切換運(yùn)動(dòng)步態(tài),并且能夠?qū)崟r(shí)調(diào)整所需的頻率、振幅,在面對(duì)外界干擾時(shí)能夠在很短的時(shí)間內(nèi)恢復(fù)原狀,具有很好的魯棒性。本文設(shè)計(jì)了關(guān)節(jié)映射函數(shù),在Webots仿真平臺(tái)上設(shè)計(jì)簡(jiǎn)易六足機(jī)器人模型加以驗(yàn)證其可行性,并在Intel的Loihi硬件板上移植了SCPG網(wǎng)絡(luò),以體現(xiàn)其計(jì)算的高效和更低的能耗。
1 SCPG振蕩器模型
Hopf振蕩器常被用來(lái)作為機(jī)器人步態(tài)的控制系統(tǒng),其具有參數(shù)少、波形穩(wěn)定的特點(diǎn),并且參數(shù)物理意義明確,很適合振幅、頻率的實(shí)時(shí)調(diào)節(jié)。為適配六足機(jī)器人的控制,單個(gè)Hopf并不足夠使用,因此需要Hopf之間的耦合項(xiàng)來(lái)控制各腿之間的相位。
SCPG網(wǎng)絡(luò)使用的耦合Hopf數(shù)學(xué)模型如下:
i=a(R2i-r2i)xi-wyii=a(R2i-r2i)yi-wxiwi=wi+∑iwijri[(xiyi-xjyi)cosi,j-(xixj-yiyj)sini,j]r2i=x2i+y2i(1)
其中:xi,yi為狀態(tài)變量,即振蕩器的輸出;a、R、ω為模型參數(shù),能夠調(diào)整振蕩器的動(dòng)態(tài)特性,a值表征振蕩器收斂到圓環(huán)上的速度,R值是用來(lái)表征振幅的,ω值用來(lái)表征周期;通過(guò)調(diào)節(jié)i,j任意地改變振子之間的相位差,從而能夠?qū)崿F(xiàn)不同的六足步態(tài)。
該網(wǎng)絡(luò)使用NEF框架來(lái)實(shí)現(xiàn)該數(shù)學(xué)模型以搭建SCPG網(wǎng)絡(luò),NEF框架將想要擬合的任意維向量解碼為神經(jīng)元活動(dòng),并能夠再編碼回向量空間。NEF中每個(gè)神經(jīng)元群體表示一個(gè)標(biāo)量或向量值,每個(gè)神經(jīng)元有自己編碼向量ei,它從神經(jīng)群體所代表的值的空間(d維的狀態(tài)空間)映射到神經(jīng)活動(dòng)的空間(稱為n維的神經(jīng)元空間)。映射由以下非線性函數(shù)定義:
δj(x)=Gj(αjei·x+βj)(2)
其中:x是神經(jīng)元群體編碼的向量值;δj是神經(jīng)元j的尖峰活動(dòng),函數(shù)G可以是任何神經(jīng)元模型的激活函數(shù),包括簡(jiǎn)單的LIF神經(jīng)元,或更復(fù)雜的生物學(xué)詳細(xì)模型,實(shí)驗(yàn)采用LIF神經(jīng)元模型;αj是隨機(jī)選擇的增益項(xiàng);βj是隨機(jī)選取的偏置值。向量x編碼后再經(jīng)過(guò)增益以及偏置后的值即為每個(gè)神經(jīng)元的輸入電流,電流將會(huì)傳入神經(jīng)元也將作為參數(shù)傳入激活函數(shù)G,神經(jīng)元在電流作用下神經(jīng)元的膜電位會(huì)不斷變化,如圖1(b)所示。受到電流持續(xù)刺激時(shí)電壓升高,若沒(méi)有電流輸入時(shí)電壓下降,當(dāng)達(dá)到閾值時(shí)便會(huì)產(chǎn)生不連續(xù)的,時(shí)疏的尖峰信號(hào)δ,此時(shí)膜電壓還會(huì)被置為0 V。
通過(guò)突觸后神經(jīng)元突觸處的尖峰接收神經(jīng)元反應(yīng)能夠生成連續(xù)、時(shí)變的測(cè)量值,由以下公式確定:
aj(x)=∑ihj(t)δj(t-ti(x))(3)
其中:hj(t)是具有時(shí)間常數(shù)τ的指數(shù)衰減的濾波器;為卷積運(yùn)算;δj(t-ti(x))是神經(jīng)元j產(chǎn)生的尖峰序列。神經(jīng)元的尖峰活動(dòng)如圖1(a)所示。圖1(b)為第一個(gè)神經(jīng)元的膜電壓變化圖,由標(biāo)注有向箭頭所示,當(dāng)達(dá)到膜電位閾值時(shí)便產(chǎn)生spiking,神經(jīng)元群體中2 000個(gè)神經(jīng)元的spiking序列共同組成了神經(jīng)元活動(dòng)aj(x)。
神經(jīng)元活動(dòng)經(jīng)過(guò)解碼器的解碼求和可以將其變換到向量空間,通過(guò)以下公式解碼神經(jīng)元群體的活動(dòng):
=∑niaj(x)Dj(4)
其中:n是神經(jīng)元群體中神經(jīng)元的數(shù)量;Dj是線性解碼器;是由神經(jīng)元群體編碼的原始值的估計(jì)。線性解碼器通過(guò)最小二乘法優(yōu)化到最優(yōu)解,公式為
‖-x2‖=argmaxDj∫[∑njaj(x)Dj-x]2dx(5)
如圖2(a)所示,以NEF算法構(gòu)建單個(gè)Hopf振蕩中心,將初始值[0.01,0]編碼為電流傳入神經(jīng)元群體,各神經(jīng)元在電流刺激下產(chǎn)生膜電位變化,當(dāng)膜電位達(dá)到發(fā)放閾值時(shí)產(chǎn)生一次spiking,再將神經(jīng)元活動(dòng)解碼后所得向量重新作為下一時(shí)刻的輸入值,不斷迭代得到Hopf的輸出曲線。此外,如圖2(b)(c)所示,得益于SNN快速處理時(shí)變信號(hào)的能力,通過(guò)調(diào)節(jié)上層控制器參數(shù)能夠?qū)崟r(shí)改變振蕩器輸出的振幅和周期,SCPG振子能快速作出反應(yīng)并得到正確的效果,在外界環(huán)境變化時(shí)能夠快速調(diào)整步態(tài)的振幅頻率以適應(yīng)環(huán)境需要。
2 六足步態(tài)實(shí)現(xiàn)
2.1 常見仿生六足機(jī)器人步態(tài)
六足機(jī)器人有三種常見的運(yùn)動(dòng)步態(tài),即三足步態(tài)、四足步態(tài)、波動(dòng)步態(tài)。以波動(dòng)步態(tài)行走時(shí),六條腿按L1、R1、L2、R2、L3、R3的順序以60度相位差行進(jìn)(L1、L2、L3分別為左前、左中、左后腿,R開頭為右側(cè)三條腿。字母旁數(shù)字為以L1為標(biāo)準(zhǔn)各腿部之間相位差),如圖3(a)所示,這種步態(tài)于某一時(shí)刻只有一條腿擺動(dòng)也是行進(jìn)最穩(wěn)定的步態(tài)。在以四足步態(tài)行走時(shí),分為(L1,R3)、(L2,R2)、(L3,R1)三組,組間相位為120°,如圖3(b)所示。三足步態(tài)下六條腿分為(L1、R2、L3)、(R1、L2、R3)兩組,同組內(nèi)的三條腿相位相同,組間相位為180°,如圖3(c)所示,三足步態(tài)也是運(yùn)動(dòng)速度最快的步態(tài)。圖3中,L1、L2、L3分別為左前、左中、左后腿,R開頭為右側(cè)三條腿,字母旁數(shù)字為以L1為標(biāo)準(zhǔn)各腿部之間相位差。
2.2 SCPG網(wǎng)絡(luò)及步態(tài)實(shí)現(xiàn)
振蕩器模型輸出信號(hào)之間的相位互鎖關(guān)系,是仿生六足機(jī)器人六條腿間能夠?qū)崿F(xiàn)協(xié)調(diào)運(yùn)動(dòng)的關(guān)鍵,常采用環(huán)型的耦合網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)腿間的相協(xié)調(diào)的步態(tài)輸出。整體的六足SCPG模型如圖4所示,包括有六個(gè)Hopf神經(jīng)元集合L1~L3、R1~R3,每個(gè)集合內(nèi)包含2 000個(gè)LIF神經(jīng)元,并且引入couple神經(jīng)元群體實(shí)現(xiàn)Hopf振子之間的耦合項(xiàng)以滿足腿間相位的需要,而上級(jí)控制中心能夠控制各Hopf振蕩中心的參數(shù)以調(diào)解振幅和頻率適應(yīng)環(huán)境需要。
通過(guò)調(diào)節(jié)SCPG網(wǎng)絡(luò)中振子之間的相位差i,j,以實(shí)現(xiàn)SCPG下不同的六足步態(tài)。以波動(dòng)步態(tài)為例(圖5),縱坐標(biāo)為神經(jīng)元集合中的神經(jīng)元序號(hào),橫軸為時(shí)間,如第1章所述,初始向量值被編碼成仿生神經(jīng)元間識(shí)別的電流信號(hào),不斷地刺激并引起神經(jīng)元發(fā)放spiking。圖5中每個(gè)神經(jīng)元群體中前30個(gè)神經(jīng)元表達(dá)出了波動(dòng)步態(tài)所需的發(fā)放模式,橙色矩形框標(biāo)記了具有恒定相位差的狀態(tài)(參見電子版)。
通過(guò)式(4)解碼神經(jīng)元的spiking序列后的結(jié)果如圖6所示。圖6中六條曲線分別為六個(gè)振蕩中心的x值輸出信號(hào)。圖中x1(L1)為深藍(lán)色曲線、x2(R1)為綠色曲線、x3(L2)為橙色曲線、x4(R2)為紫色曲線、x5(L3)為黃色曲線、x6(R3)為淺藍(lán)色曲線,相互間相差六分之一個(gè)周期(參見電子版)。對(duì)應(yīng)在步態(tài)層面,兩組腿間相位差穩(wěn)定為60°,信號(hào)平穩(wěn)沒(méi)有波動(dòng),與圖3(a)中的波動(dòng)步態(tài)相符。
另外的兩種步態(tài)輸出如圖7和8所示。
SCPG網(wǎng)絡(luò)的優(yōu)良性能使其能夠從始至終有著穩(wěn)定信號(hào)輸出能力,不需要額外的復(fù)雜公式控制,僅僅簡(jiǎn)單地改變耦合神經(jīng)元所實(shí)現(xiàn)的相位差參數(shù)φi,j便能夠?qū)崿F(xiàn)步態(tài)的實(shí)時(shí)切換。圖9展示了這三種常見步態(tài)的快速切換能力,與文獻(xiàn)[21]中使用額外公式進(jìn)行步態(tài)轉(zhuǎn)換相比,本方法中的步態(tài)切換只占一個(gè)周期的很少一部分,因此更加快速、波動(dòng)更小。
得益于SNN對(duì)時(shí)變信號(hào)的優(yōu)秀處理能力,該SCPG耦合網(wǎng)絡(luò)具有很好的靈活性以及魯棒性。SCPG網(wǎng)絡(luò)的靈活性如圖10(a)所示。在某一時(shí)刻改變上層的ω、R控制信號(hào),六組SCPG網(wǎng)絡(luò)都能同時(shí)且快速地作出反應(yīng),變換輸出信號(hào)的振幅和頻率以適應(yīng)環(huán)境的需要。
在實(shí)際應(yīng)用中機(jī)器人腿部關(guān)節(jié)極大可能會(huì)受到各種阻力妨礙或者是短暫卡頓等情況,該SCPG網(wǎng)絡(luò)還具有一定的魯棒性以應(yīng)對(duì)該種情況。圖10(b)模擬了這種情況的發(fā)生,在某一時(shí)刻t1,L1腿部受到外界干擾disturbance1,x1信號(hào)產(chǎn)生了短暫的波動(dòng),但是在同一時(shí)刻其余曲線不受影響,擾動(dòng)結(jié)束過(guò)后,該曲線具有在很短時(shí)間內(nèi)恢復(fù)原狀。在某一時(shí)刻t2、x3、x6信號(hào)受到外界干擾disturbance2,t3時(shí)刻x3信號(hào)即便受到長(zhǎng)時(shí)間的干擾仍然能夠在擾動(dòng)結(jié)束之后快速?gòu)?fù)原。
上述實(shí)驗(yàn)中一直采用每組SCPG中心由2 000個(gè)神經(jīng)元組成,神經(jīng)元的數(shù)量會(huì)對(duì)輸出信號(hào)具有一定的影響。如圖11所示,在神經(jīng)元數(shù)量只有200個(gè)時(shí),甚至都不能生成完整有序的步態(tài)信號(hào)。當(dāng)使用800個(gè)神經(jīng)元時(shí),輸出信號(hào)已具備一定的順序但是偶爾會(huì)有離本意較遠(yuǎn)的曲線波動(dòng)。當(dāng)神經(jīng)元數(shù)量達(dá)到2 000時(shí),輸出信號(hào)已經(jīng)足夠規(guī)整,并且相位的表達(dá)也足夠完美,而在使用4 000個(gè)神經(jīng)元時(shí)曲線的變化已經(jīng)很微小。實(shí)驗(yàn)使用Python環(huán)境中模擬的LIF神經(jīng)元執(zhí)行,在使用更多的神經(jīng)元帶來(lái)更規(guī)整輸出的同時(shí),部署神經(jīng)元網(wǎng)絡(luò)并且優(yōu)化解碼值等過(guò)程所需的部署時(shí)間增加了一倍有余。需要更多時(shí)間成本的同時(shí),更多的神經(jīng)元也意味著更高的能耗,比起使用個(gè)人計(jì)算機(jī),在神經(jīng)元形態(tài)硬件比如Intel的Loihi芯片(使用硬件結(jié)構(gòu)搭載SNN所需的仿生神經(jīng)元模型)上部署SCPG網(wǎng)絡(luò)無(wú)疑帶來(lái)了成倍的能量減少[14],這也是設(shè)計(jì)SCPG網(wǎng)絡(luò)的初衷之一,因此更需要考慮增加神經(jīng)元數(shù)量帶來(lái)的能耗增長(zhǎng),并且實(shí)際使用中神經(jīng)元形態(tài)硬件的硬件規(guī)格,神經(jīng)元的數(shù)量以及突觸數(shù)量的限制也限制了SCPG網(wǎng)絡(luò)中神經(jīng)元數(shù)量的使用。
3 六足機(jī)器人運(yùn)動(dòng)仿真
本文設(shè)計(jì)的六足機(jī)器人如圖12所示,以蟑螂為基本結(jié)構(gòu),肢體部分為規(guī)整的長(zhǎng)方體。共有6條腿部,每一條有三段組成,有三個(gè)運(yùn)動(dòng)關(guān)節(jié)控制行走,分別為髖關(guān)節(jié)、膝關(guān)節(jié)、踝關(guān)節(jié)(圖中由里到外腿部紅色的關(guān)節(jié),參見電子版)。每個(gè)關(guān)節(jié)內(nèi)含有一個(gè)舵機(jī),摩擦庫(kù)侖系數(shù)為1,總體質(zhì)量為5 kg,各關(guān)節(jié)采用Webots平臺(tái)默認(rèn)的PID控制,參數(shù)為Kp=20,Ki=3,Kd=2。
由于振蕩器的輸出信號(hào)為無(wú)量綱量,不能直接作為控制信號(hào)驅(qū)動(dòng)關(guān)節(jié)舵機(jī),所以采用映射函數(shù)的方法對(duì)模型的輸出進(jìn)行變換,使其從無(wú)量綱量變換為關(guān)節(jié)旋轉(zhuǎn)角度控制量。SCPG網(wǎng)絡(luò)輸出經(jīng)過(guò)映射函數(shù)轉(zhuǎn)換為關(guān)節(jié)旋轉(zhuǎn)角度數(shù)據(jù)后傳遞給機(jī)器人各個(gè)腿上的電機(jī)控制機(jī)器人的前向運(yùn)動(dòng)。設(shè)髖關(guān)節(jié)、膝關(guān)節(jié)、踝關(guān)節(jié)的旋轉(zhuǎn)角度分別為θ1、θ2、θ3,采用的振子輸出曲線的映射函數(shù)[22]為
θ1=k0xθ2=k1y,y≥0k2y,y<0θ3=k3θ2+β(6)
其中:x、y值為L(zhǎng)1~R6各神經(jīng)元集合的信號(hào)輸出,根據(jù)六足機(jī)器人動(dòng)力學(xué)模型計(jì)算取k0=0.08,k1=0.06,k2=0,k3=-0.13,β=0.2。轉(zhuǎn)換后的關(guān)節(jié)角度控制變量將傳給機(jī)器人的相應(yīng)關(guān)節(jié)上從而實(shí)現(xiàn)六足機(jī)器人的行走,在Webots以該六足機(jī)器人實(shí)現(xiàn)的幾種步態(tài)模式,仿真結(jié)果如圖13所示。
圖13(a)為波動(dòng)步態(tài)仿真結(jié)果,以波動(dòng)步態(tài)向前移動(dòng)時(shí),五條腿支撐,另一條腿向前擺動(dòng),腿部運(yùn)動(dòng)相序?yàn)長(zhǎng)1-R1-L2-R2-L3-R3。Webots中六足機(jī)器人運(yùn)動(dòng)仿真圖像中每六分之一周期箭頭指向腿正在向前擺動(dòng),與圖3(a)所介紹的波動(dòng)步態(tài)運(yùn)動(dòng)相序相符合。圖13(b)為四足步態(tài)仿真結(jié)果,機(jī)器人的行走速度略慢于三足步態(tài),略快于波動(dòng)步態(tài),速度和穩(wěn)定性適中。腿部分為(L1,R3)、(L2,R2)、(L3,R1)三組,每三分之一周期里,兩組腿支撐,另一組箭頭指向腿向前擺動(dòng)。圖13(c)為三足步態(tài)仿真結(jié)果三足步態(tài)在平坦路面條件下的運(yùn)動(dòng)效率最高,但對(duì)復(fù)雜地形的適應(yīng)性也較差。腿部分為(L1,R2,L3)和(R1,L2,R3)兩組交替擺動(dòng)。在整個(gè)運(yùn)動(dòng)過(guò)程中一條支撐腿和右邊的兩條支撐腿一起形成一個(gè)穩(wěn)定的三角形,能很好地保持直線行走。
Loihi是英特爾公司開發(fā)的一種神經(jīng)形態(tài)硬件板,在一個(gè)幾平方毫米的小芯片上容納了超過(guò)一百萬(wàn)個(gè)硬件神經(jīng)元,如圖14所示。它能夠以低功耗且快速運(yùn)行神經(jīng)網(wǎng)絡(luò)程序,這使得機(jī)器人即使在要求實(shí)時(shí)響應(yīng)的場(chǎng)景中也能有效地執(zhí)行任務(wù)。對(duì)于機(jī)器人應(yīng)用來(lái)說(shuō),實(shí)時(shí)生成控制信號(hào)是非常重要的。最后,將SCPG模型移植到Loihi芯片上,并測(cè)試了其所需的運(yùn)行時(shí)間和能耗。
實(shí)驗(yàn)在英特爾的云實(shí)驗(yàn)室上運(yùn)行,使用SSH(secure shell)遠(yuǎn)程連接到載有Loihi硬件的服務(wù)器,這意味著啟動(dòng)程序有一個(gè)主機(jī)服務(wù)器的正常啟動(dòng)時(shí)間,整體模擬時(shí)間為10 s,各環(huán)節(jié)的所需時(shí)間如圖15(a)所示。Loihi硬件需要經(jīng)歷一系列初始化過(guò)程,包括編譯和編碼過(guò)程,在給主板上電后,還有一段短暫的啟動(dòng)時(shí)間、配置寄存器時(shí)間,而大部分時(shí)間花費(fèi)在執(zhí)行10 000個(gè)時(shí)間步上。在實(shí)際任務(wù)中,執(zhí)行時(shí)間常常會(huì)遠(yuǎn)遠(yuǎn)超過(guò)10 s,此時(shí)初始化操作所占的時(shí)間比例會(huì)非常小。除此之外,由于芯片初始化和其他I/O操作,總執(zhí)行時(shí)間略大于執(zhí)行器的執(zhí)行時(shí)間。隨著每個(gè)神經(jīng)種群中神經(jīng)元數(shù)量的增加,所需的執(zhí)行時(shí)間也逐漸增加,但仍然只需要秒級(jí)別的時(shí)間便能夠執(zhí)行10 000個(gè)時(shí)間步。
能耗是表征Loihi芯片計(jì)算優(yōu)勢(shì)的一個(gè)很好的指標(biāo)。CPU和Loihi寬帶之間能耗的詳細(xì)比較如圖15(b)所示。Loihi提供了一個(gè)內(nèi)置探針,能夠便捷地測(cè)量能源消耗。CPU平臺(tái)是指英特爾酷睿i7-11700H@2.5 GHz的個(gè)人筆記本電腦??梢杂^察到,與在CPU上執(zhí)行SCPG模型相比,Loihi的能耗幾乎低了兩個(gè)數(shù)量級(jí)。與傳統(tǒng)的CPU架構(gòu)相比,神經(jīng)形態(tài)硬件在執(zhí)行峰值神經(jīng)網(wǎng)絡(luò)時(shí)顯著降低了能耗,這意味著機(jī)器人這種邊緣硬件得益于SCPG網(wǎng)絡(luò),能夠更快速更高效地完成步態(tài)運(yùn)動(dòng)。
4 結(jié)束語(yǔ)
本文使用以時(shí)疏的spiking脈沖作為信號(hào)傳輸?shù)腖IF神經(jīng)元搭建了Hopf振蕩器以及調(diào)整相位所需的耦合神經(jīng)元群體,構(gòu)建了一種六足機(jī)器人步態(tài)控制的SCPG網(wǎng)絡(luò)。該SCPG網(wǎng)絡(luò)為常見的環(huán)型拓?fù)浣Y(jié)構(gòu),使用六組各2 000個(gè)LIF神經(jīng)元組成,能夠生成六足機(jī)器人常見的波動(dòng)步態(tài)、四足步態(tài)、三足步態(tài),并展示了神經(jīng)元層面模擬生物運(yùn)動(dòng)的步態(tài)模式。SCPG網(wǎng)絡(luò)的優(yōu)勢(shì)在于能夠簡(jiǎn)單地調(diào)節(jié)相位差參數(shù)而不需要額外的復(fù)雜公式參與,快速、順滑、穩(wěn)定地實(shí)現(xiàn)步態(tài)的切換,實(shí)時(shí)調(diào)整所需的頻率、振幅,并且SCPG網(wǎng)絡(luò)能夠在部署神經(jīng)元形態(tài)硬件時(shí)極大降低能量消耗,這對(duì)于機(jī)器人所應(yīng)用的邊緣場(chǎng)景有著深遠(yuǎn)意義。在Webots平臺(tái)上設(shè)計(jì)了一款簡(jiǎn)易六足機(jī)器人,將SCPG的輸出經(jīng)過(guò)映射函數(shù)的轉(zhuǎn)換后控制六足機(jī)器人腿關(guān)節(jié)的運(yùn)動(dòng),結(jié)果穩(wěn)定且符合預(yù)期。最后在Intel的Loihi芯片上移植了SCPG網(wǎng)絡(luò),實(shí)驗(yàn)并驗(yàn)證其高效的執(zhí)行速度和更低的能耗。
參考文獻(xiàn):
[1]陳斯琴,李思瑤,魯志剛,等.六足機(jī)器人關(guān)鍵技術(shù)綜述[J].機(jī)電工程技術(shù),2022,51(11):146-152.(Chen Siqin,Li Siyao,Lu Zhigang,et al.Review on key technology of the hexapod robot[J].M&E Engineering Technology,2022,51(11):146-152.)
[2]魏順祥.基于CPG的四足機(jī)器人步態(tài)調(diào)節(jié)與軌跡優(yōu)化研究[D].昆明:昆明理工大學(xué),2022.(Wei Shunxiang.Gait adjustment and trajectory optimization of quadruped robot based on CPG[D].Kunming:Kunming University of Science and Technology,2022.)
[3]Zhu Yaguang,Zhou Shuangjie,Gao Dongxiao,et al.Synchronization of non-linear oscillators for neurobiologically inspired control on a bionic parallel waist of legged robot[J].Frontiers in Neurorobotics,2019,13:59.
[4]Song Zigen,Xu Jian.Self-/mutual-symmetric rhythms and their coe-xistence in a delayed half-center oscillator of the CPG neural system[J].Nonlinear Dynamics,2022,108(3):2595-2609.
[5]Song Zigen,Huang Xiaojun,Xu Jian.Spatiotemporal pattern of periodic rhythms in delayed Van der Pol oscillators for the CPG-based locomotion of snake-like robot[J].Nonlinear Dynamics,2022,110(4):3377-3393.
[6]Bing Zhenshan,Cheng Long,Chen Guang,et al.Towards autonomous locomotion:CPG-based control of smooth 3D slithering gait transition of a snake-like robot[J].Bioinspiration & Biomimetics,2017,12(3):035001.
[7]Maass W.Networks of spiking neurons:the third generation of neural network models[J].Neural Network,1997,10(9):1659-1671.
[8]Maass W.On the relevance of time in neural computation and learning[J].Theoretical Computer Science,2001,261(1):157-178.
[9]Strohmer B,Manoonpong P,Larsen L B.Flexible spiking CPGs for online manipulation during hexapod walking[J].Frontiers in Neurorobotics,2020,14:41.
[10]Bing Z,Meschede C,Rhrbein F,et al.A survey of robotics control based on learning-inspired spiking neural networks[J].Frontiers in Neurorobotics,2018,12:35.
[11]Heess N,Tb D,Sriram S,et al.Emergence of locomotion behaviors in rich environments[EB/OL].(2017).https://arxiv.org/abs/1707.02286.
[12]Dong Yiping,Wang Yang,Lin Zhen,et al.High performance and low latency mapping for neural network into network on chip architecture[C]//Proc of the 8th IEEE International Conference on ASIC.Pisca-taway,NJ:IEEE Press,2009:891-894.
[13]Roy K,Jaiswal A,Panda P.Towards spike-based machine intelligence with neuromorphic computing[J].Nature,2019,575(7784):607-617.
[14]Davies M,Wild A,Orchard G,et al.Advancing neuromorphic computing with Loihi:a survey of results and outlook[J].Proceedings of the IEEE,2021,109(5):911-934.
[15]Bing Zhenshan,Jiang Zhuangyi,Cheng Long,et al.End to end lear-ning of a multi-layered SNN based on R-STDP for a target tracking snake-like robot[C]//Proc of IEEE International Conference on Robotics and Automation.Piscataway,NJ:IEEE Press,2019:9645-9651.
[16]Wang Ming,Zhang Yiyang,Yu Junzhi.An SNN-CPG hybrid locomotion control for biomimetic robotic fish[J].Journal of Intelligent & Robotic Systems,2022,105(2):45.
[17]匡載波,王江,楊雙鳴.多巴胺神經(jīng)元仿生CPG系統(tǒng)及其FPGA實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究,2020,37(S1):169-171.(Kuang Zaibo,Wang Jiang,Yang Shuangming.Dopamine neuron bionic CPG system and its FPGA implementation[J].Application Research of Computers,2020,37(S1):169-171.)
[18]Andres E,Horacio R G,Martin C,et al.Design of spiking central pattern generators for multiple locomotion gaits in hexapod robots by Christiansen grammar evolution[J].Frontiers in Neurorobotics,2016,10:6.
[19]Rostro-Gonzalez H,Cerna-Garcia P A,Trejo-Caballero G,et al.A CPG system based on spiking neurons for hexapod robot locomotion[J].Neurocomputing,2015,170:47-54.
[20]Gutierrez-Galan D,Dominguez-Morales J P,Perez-Pea F,et al.Neuro-Pod:a real-time neuromorphic spiking CPG applied to robotics[J].Neurocomputing,2020,381:10-19.
[21]Yu Haitao,Gao Haibo,Ding Liang,et al.Gait generation with smooth transition using CPG-based locomotion control for hexapod walking robot[J].IEEE Trans on Industrial Electronics,2016,63(9):5488-5500.
[22]林知微,林翰文,劉宗朋.基于CPG的六足機(jī)器人運(yùn)動(dòng)步態(tài)控制方法[J].計(jì)算機(jī)應(yīng)用研究,2020,37(9):2749-2753.(Lin Zhiwei,Lin Hanwen,Liu Zongpeng.CPG-based motion gait control method of hexapod robot[J].Application Research of Computers,2020,37(9):2749-2753.)