安徽省計(jì)量科學(xué)研究院 安徽 合肥 230000
本設(shè)計(jì)用于移動(dòng)機(jī)器人路徑規(guī)劃,使用matlab編程軟件和遺傳算法實(shí)現(xiàn)。很多論文只提到利用matlab軟件進(jìn)行機(jī)器人路徑規(guī)劃,但是沒有將計(jì)算結(jié)果用于對(duì)機(jī)器人的實(shí)際控制。本設(shè)計(jì)利用matlab的串口編程工具,將matlab的算法工具用于實(shí)際工業(yè)控制,可外接探測(cè)探頭,實(shí)現(xiàn)照度,溫度等環(huán)境檢測(cè)。
路徑規(guī)劃常用算法有模糊控制算法、神經(jīng)網(wǎng)絡(luò)算法、蟻群算法和遺傳算法等。遺傳算法運(yùn)用于移動(dòng)機(jī)器人路徑規(guī)劃的基本思想是:將路徑表達(dá)為路徑中一系列中途點(diǎn),并轉(zhuǎn)換為二進(jìn)制數(shù)。首先初始化路徑群體,然后進(jìn)行遺傳操作,如選擇、交叉、復(fù)制、變異。經(jīng)過若干代進(jìn)化以后,停止進(jìn)化,輸出當(dāng)前最優(yōu)個(gè)體。
機(jī)器人路徑規(guī)劃的主要程序框架為:①將機(jī)器人工作區(qū)域的點(diǎn)標(biāo)記在坐標(biāo)圖上,橫軸為X軸,縱軸為Y軸。②確定機(jī)器人工作點(diǎn),以及機(jī)器人的起始位置和終止位置。③生成初始種群,采用遺傳算法生成路徑。④得出機(jī)器人工作空間中從起始位置到終止位置的最優(yōu)路徑。⑤將表示最優(yōu)路徑的數(shù)據(jù)通過串口和無線模塊發(fā)送給機(jī)器人。
本文接下來介紹求解最短路徑問題的遺傳算法的具體步驟:
求最短路徑問題,描述如下:在圖G(V,A)中,V表示工作點(diǎn)集合,即V=(v1,v2,…,vn).單個(gè)路徑長(zhǎng)度d(v i,v j)表示兩個(gè)點(diǎn)v i,v j的距離。路徑的總長(zhǎng)度定義為各條路徑的長(zhǎng)度總和。
(1)染色體編碼:采用整數(shù)排列編碼方法,對(duì)于一個(gè)給定的模型,將圖中各頂點(diǎn)序號(hào)排序,然后按此順序?qū)⒚總€(gè)待選工作點(diǎn)或頂點(diǎn)作為染色體的一個(gè)基因。此染色體中的基因排列順序即為各頂點(diǎn)在次條通路中出現(xiàn)的先后順序,染色體的長(zhǎng)度應(yīng)等于該圖中的頂點(diǎn)個(gè)數(shù)。在本程序的TSP問題中一共有13個(gè)工作點(diǎn),也就是在圖模型中有13個(gè)頂點(diǎn),因此一個(gè)染色體的長(zhǎng)度為13。
(2)種群初始化:在完成染色體編碼后,必須產(chǎn)生一個(gè)初始種群作為起始解,所以首先需要決定初始種群的數(shù)目。初始種群的數(shù)目視工作點(diǎn)數(shù)目的多少而確定,一般取值50-200.
(3)適應(yīng)度函數(shù)f(i):適應(yīng)度,表示個(gè)體對(duì)于環(huán)境的適應(yīng)程度。對(duì)生存環(huán)境適應(yīng)程度比較高的物種將獲得更多的繁衍機(jī)會(huì),而對(duì)生存環(huán)境適應(yīng)程度比較低的物種將獲得的繁衍機(jī)會(huì)就會(huì)相對(duì)較少,甚至逐漸滅絕。適應(yīng)度準(zhǔn)則體現(xiàn)了適者生存,不適應(yīng)者淘汰的自然法則。

對(duì)該最優(yōu)化問題,工作點(diǎn)距離總長(zhǎng)度越小越好。就是要尋找最優(yōu)解,使適應(yīng)度函數(shù)值最大。適應(yīng)度函數(shù)值越大的染色體越優(yōu)質(zhì),反之越劣質(zhì)。
(4)選擇操作:選擇作為交叉的雙親,是根據(jù)前代染色體的適應(yīng)函數(shù)值所確定的,質(zhì)量好的個(gè)體,即從起點(diǎn)到終點(diǎn)路徑長(zhǎng)度短的個(gè)體被選中的概率較大。
(5)交叉與變異操作:將被選中的兩個(gè)染色體進(jìn)行交叉操作的過程是先產(chǎn)生一個(gè)隨機(jī)數(shù),確定交叉點(diǎn),位于染色體的第幾位基因上.然后在此位置進(jìn)行部分基因交換。變異是采用隨機(jī)數(shù)選取兩個(gè)點(diǎn),將它們對(duì)換位置。變異的意義為在某條路徑上去掉或增加某頂點(diǎn)。
對(duì)每個(gè)個(gè)體進(jìn)行交叉變異,然后代入適應(yīng)度函數(shù)進(jìn)行評(píng)估,選擇適應(yīng)度大的個(gè)體進(jìn)行下一代的交叉和變異。循環(huán)操作,判斷是否滿足設(shè)定的最大遺傳代數(shù),不滿足則繼續(xù)適應(yīng)度數(shù)值的計(jì)算,如果到達(dá)最大遺傳代數(shù),結(jié)束循環(huán)操作。
設(shè)定的機(jī)器人要到達(dá)的工作點(diǎn)坐標(biāo)為:[10,10;10,30;10,40;20,40;20,50;20,60;30,60;30,45;40,50;50,50;55,40;60,20;30,20].
遺傳參數(shù)設(shè)置如下:種群大小NIND=100;最大遺傳代數(shù)MAXGEN=150;交叉概率Pc=0.9;變異概率Pm=0.05;代溝GGAP=0.9.

圖1 初始路徑圖

圖2 最優(yōu)路徑圖
最優(yōu)解:
1—>2—>3—>4—>5—>6—>7—>8—>9—>10—>11—>12—>13—>1
總距離:190.3369
本設(shè)計(jì)用于解決移動(dòng)機(jī)器人路徑規(guī)劃的實(shí)際問題。移動(dòng)機(jī)器人和計(jì)算機(jī)通過NRF905無線模塊和串口通信。移動(dòng)機(jī)器人將工作點(diǎn)數(shù)據(jù)傳送到計(jì)算機(jī)matlab上位機(jī)程序,用戶點(diǎn)擊路徑規(guī)劃按鍵,matlab軟件利用遺傳算法算出最短路徑,再通過串口發(fā)送給移動(dòng)機(jī)器人,機(jī)器人在到達(dá)指定位置后,可通過自身攜帶的探頭測(cè)量所需的光照度參數(shù),通過方便準(zhǔn)確的定位得到測(cè)量數(shù)據(jù)。