一種基于神經(jīng)網(wǎng)絡(luò)感知器的雙足行走機(jī)器人
1引言
人作為雙足行走生物,是在長期的生物進(jìn)化過程中形成的。人能夠不自覺地保持身體的直立性和平衡性,不論是在靜止不動(dòng)還是在行走過程中。一旦失去平衡,人就會(huì)產(chǎn)生相應(yīng)的動(dòng)作,使身體保持平衡。例如,在靜止時(shí),當(dāng)人的重心偏向一側(cè)時(shí),就會(huì)不自覺地向該側(cè)跨出一腳,以使重心位置落于支撐面內(nèi)。這里,支撐面定義為兩腳之間的面積以及兩腳的面積。當(dāng)重心落于支撐面內(nèi)時(shí),就不會(huì)傾倒。再如,在行走過程中,人的重心不斷向前移動(dòng),超出了兩腳尖的位置,迫使人向前邁出腳,這樣才使人的行走成為可能,使人的行走自然流暢。因此,控制機(jī)器人重心的位置及重心位置的速度,是機(jī)器人保持穩(wěn)定及產(chǎn)生有效步態(tài)的關(guān)鍵。本文就是控制機(jī)器人的重心位置,使其落于支撐面內(nèi),從而達(dá)到了機(jī)器人穩(wěn)定性控制的目的。機(jī)器人的重心可以由安裝在機(jī)器人腳底的力傳感器測知。當(dāng)重心偏向一側(cè),這一側(cè)的傳感器輸出偏大,相反的一側(cè)的力傳感器等于零,或趨近于零。本文用感知器來感知機(jī)器人重心位置的變化,當(dāng)重心超出支撐面時(shí),系統(tǒng)將發(fā)出動(dòng)作指令,使機(jī)器人保持穩(wěn)定。
本文采用的神經(jīng)網(wǎng)絡(luò)感知器(Perception)是最簡單的人工神經(jīng)網(wǎng)絡(luò),它是F??Rosenblatt于1958年提出的具有自學(xué)習(xí)能力的感知器。在這種人工神經(jīng)網(wǎng)絡(luò)中,記憶的信息存儲(chǔ)在連接權(quán)上,外部刺激通過連接通道自動(dòng)激活相應(yīng)的神經(jīng)元,以達(dá)到自動(dòng)識(shí)別的目的。感知器模型如圖1所示,通常由感知層S(Sensory)、連接層A(Association)和反應(yīng)層構(gòu)成R(Response)。
2 人工神經(jīng)元感知器的學(xué)習(xí)算法
可以用下面的方法訓(xùn)練網(wǎng)絡(luò):
(1)初始化S層至連接層(A層)的連接權(quán)矩陣
中的各個(gè)元素及A層各單元的閥值賦予[-1,+1]之間的隨機(jī)值,一般情況下vij=1θj=0i=1,2,Λ,pj=1,2,Λ,n且在整個(gè)學(xué)習(xí)過程中保持固定不變。
A層至輸出層(R層)的連接權(quán)矩陣
中的各個(gè)元素及??S層各單元的閥值θ=[θ1θ2Λθq]賦予[-1,+1]之間的隨機(jī)值。
(2)訓(xùn)練隨機(jī)選取一輸入、輸出模式對(Sk,Yk),這里k=1,2,Λ,m時(shí),網(wǎng)絡(luò)進(jìn)行以下步驟的訓(xùn)練。
第一步,計(jì)算連接層各單元的輸出
第二步,以連接層的輸出作為輸入層的各單元的輸入計(jì)算輸出層的實(shí)際輸出
在學(xué)習(xí)過程中,當(dāng)所有的m個(gè)樣本模式對都提供給網(wǎng)絡(luò)學(xué)習(xí)一遍后,還需從頭再繼續(xù)提供給網(wǎng)絡(luò)學(xué)習(xí)。直到達(dá)到最大學(xué)習(xí)次數(shù),以防止發(fā)散或無限震蕩,或者滿足誤差限。
3 計(jì)算機(jī)控制系統(tǒng)
機(jī)器人重心位置是由腳底的力傳感器測定的。當(dāng)某一側(cè)的傳感器輸出值趨于零或小于預(yù)定的值時(shí),說明重心已經(jīng)偏向相反的另一側(cè),機(jī)器人處于危險(xiǎn)狀態(tài)。這時(shí)機(jī)器人就應(yīng)該產(chǎn)生一定的動(dòng)作,向另一側(cè)跨出一腳,以使機(jī)器人的重心位于支撐面內(nèi)。整個(gè)控制系統(tǒng)如圖2所示
其中,y(t)是傳感器輸出向量,為模擬量,經(jīng)采樣、A/D轉(zhuǎn)換后為人工神經(jīng)網(wǎng)絡(luò)感知器的輸入向量y(kt)。
本文取感知器的輸入層單元與輸出層單元的個(gè)數(shù)相同。感知器經(jīng)過訓(xùn)練好以后,系統(tǒng)將時(shí)實(shí)監(jiān)控機(jī)器人的重心位置,當(dāng)重心偏向某側(cè),相反側(cè)的力傳感器的輸入小于設(shè)定的安全值時(shí),神經(jīng)網(wǎng)絡(luò)相應(yīng)于該側(cè)的輸出為1,其余均為0,系統(tǒng)將根據(jù)神經(jīng)網(wǎng)絡(luò)的輸出,做出相應(yīng)的動(dòng)作指令;當(dāng)傳感器的輸入均大于設(shè)定安全值時(shí),神經(jīng)網(wǎng)絡(luò)的輸出均為0,系統(tǒng)不產(chǎn)生任何動(dòng)作指令。
4 仿真
本文假設(shè)在機(jī)器人的腳底安裝有力傳感器,左腳的后部、左部和前部各一個(gè),右腳的前部、右部和后部各一個(gè)。依次編號(hào)為pi,i=1,2,Λ 6,構(gòu)成輸入向量
P=[p1,p2,p3,p4,p5,p6]T
假設(shè)機(jī)器人的重是100??kgf,當(dāng)機(jī)器人的腳底的傳感器輸出為2kgf,即認(rèn)為機(jī)器人處于危險(xiǎn)狀態(tài)。設(shè)神經(jīng)網(wǎng)絡(luò)感知器的輸入為
對應(yīng)的理想輸出為
即認(rèn)為力傳感器的輸出為2kgf時(shí)機(jī)器人處于危險(xiǎn)狀態(tài),傳感器的輸出為3kgf時(shí),認(rèn)為機(jī)器人處于安全狀態(tài)。連接權(quán)值和閥值的初始值分別是
經(jīng)過n=1335次迭貸,輸出達(dá)到期望值。連接權(quán)值和閥值分別為
5 結(jié)論
本文就雙足行走機(jī)器人的穩(wěn)定性控制提出了一種新的控制方法,它是建立在人工神經(jīng)網(wǎng)絡(luò)感知器上。試驗(yàn)表明,該方法簡單易行。
評(píng)論