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