1.一種基于改進(jìn)遺傳算法的移動(dòng)機(jī)器人路徑規(guī)劃方法,其特征在于,包括如下步驟:
步驟1、利用柵格模型對(duì)移動(dòng)機(jī)器人工作空間進(jìn)行預(yù)處理;
步驟2、指定機(jī)器人移動(dòng)的起始點(diǎn)和目標(biāo)點(diǎn);
步驟3、使用改進(jìn)遺傳算法規(guī)劃?rùn)C(jī)器人最優(yōu)移動(dòng)路徑,所述改進(jìn)遺傳算法包括:
步驟3.1、采用改進(jìn)的雙向快速遍歷隨機(jī)樹(shù)算法生成多樣性豐富、無(wú)不可行路徑的初始種群,包括以下步驟:
步驟3.1.1、初始化雙向快速遍歷隨機(jī)樹(shù),分別設(shè)置雙向快速遍歷隨機(jī)樹(shù)中的兩棵子樹(shù)的根節(jié)點(diǎn)為起始點(diǎn)和目標(biāo)點(diǎn);
步驟3.1.2、雙向快速遍歷隨機(jī)樹(shù)在柵格化工作空間中自由生長(zhǎng),雙向快速遍歷隨機(jī)樹(shù)的一棵子樹(shù)自由生長(zhǎng)時(shí),在工作空間中機(jī)器人可自由行走部分隨機(jī)選擇一個(gè)點(diǎn)Prand作為生長(zhǎng)方向,計(jì)算該子樹(shù)的所有樹(shù)節(jié)點(diǎn)與點(diǎn)Prand之間的歐氏距離,找出歐式距離最小的樹(shù)節(jié)點(diǎn)Plst,該子樹(shù)從樹(shù)節(jié)點(diǎn)Plst開(kāi)始以生長(zhǎng)因子v朝著點(diǎn)Prand生長(zhǎng)出新的樹(shù)節(jié)點(diǎn)Pnew,將新的樹(shù)節(jié)點(diǎn)Pnew連接到子樹(shù)中;
步驟3.1.3、雙向快速遍歷隨機(jī)樹(shù)在柵格化工作空間中相向生長(zhǎng),雙向快速遍歷隨機(jī)樹(shù)中的一棵子樹(shù)以另一棵子樹(shù)自由生長(zhǎng)的樹(shù)節(jié)點(diǎn)Pnew為生長(zhǎng)方向,同自由生長(zhǎng)過(guò)程生長(zhǎng)出新的樹(shù)節(jié)點(diǎn)P’new,將新的樹(shù)節(jié)點(diǎn)P’new連接到子樹(shù)中;
步驟3.1.4、判斷雙向快速遍歷隨機(jī)樹(shù)是否在起始點(diǎn)和目標(biāo)點(diǎn)之間建立足夠數(shù)量的連接,如果是則停止生長(zhǎng),進(jìn)入步驟3.1.5,否則返回步驟3.1.2繼續(xù)生長(zhǎng);
步驟3.1.5、使用回溯法生成初始種群,每次回溯均以雙向快速遍歷隨機(jī)樹(shù)的連接點(diǎn)作為回溯初始點(diǎn),朝著雙向快速遍歷隨機(jī)樹(shù)的根節(jié)點(diǎn)進(jìn)行回溯,直到回溯到根節(jié)點(diǎn),回溯經(jīng)歷的樹(shù)中的節(jié)點(diǎn)與邊構(gòu)成無(wú)碰撞路徑,多次回溯產(chǎn)生的無(wú)碰撞路徑組成初始種群;
步驟3.2、采用選擇、交叉、變異3種遺傳算子對(duì)初始種群進(jìn)行進(jìn)化,得到最優(yōu)路徑;
步驟4、將最優(yōu)路徑的關(guān)鍵點(diǎn)作為控制點(diǎn),通過(guò)二次B樣條曲線技術(shù),對(duì)最優(yōu)路徑進(jìn)行平滑處理,得到移動(dòng)機(jī)器人的平滑最優(yōu)路徑。
2.根據(jù)權(quán)利要求1所述的一種基于改進(jìn)遺傳算法的移動(dòng)機(jī)器人路徑規(guī)劃方法,其特征在于,所述步驟3.2包括如下步驟:
步驟3.2.1、計(jì)算上一步驟得到的種群中每個(gè)個(gè)體的適應(yīng)度函數(shù)值f(pop);
步驟3.2.2、判斷所述改進(jìn)遺傳算法是否達(dá)到最大迭代次數(shù)G,如果是則保存當(dāng)前最優(yōu)路徑,進(jìn)入步驟4,否則,進(jìn)入步驟3.2.3;
步驟3.2.3、使用錦標(biāo)賽選擇策略對(duì)種群進(jìn)行選擇操作,設(shè)置錦標(biāo)賽的聯(lián)賽規(guī)模為Nchamp,從種群中隨機(jī)選擇Nchamp個(gè)個(gè)體,選出適應(yīng)度最小的個(gè)體保留至下一代,重復(fù)錦標(biāo)賽選擇策略直到選出足夠數(shù)量的個(gè)體,組成新種群;
步驟3.2.4、使用單點(diǎn)交叉策略對(duì)步驟3.2.3得到的種群進(jìn)行交叉操作,從種群中隨機(jī)選擇兩個(gè)個(gè)體作為父代,當(dāng)滿足交叉概率時(shí),分別隨機(jī)選擇父代中選擇一個(gè)關(guān)鍵點(diǎn)作為交叉點(diǎn),交換父代交叉點(diǎn)之后的部分,組成兩個(gè)新個(gè)體;
步驟3.2.5、步驟3.2.4得到的種群中的個(gè)體滿足變異概率時(shí),隨機(jī)選擇一個(gè)關(guān)鍵點(diǎn)作為變異點(diǎn),使用變異點(diǎn)的8領(lǐng)域點(diǎn)替換變異點(diǎn),替換后適應(yīng)值最小的個(gè)體保留至下一代;
步驟3.2.6、更新種群,返回步驟3.2.1繼續(xù)進(jìn)化。
3.根據(jù)權(quán)利要求2所述的一種基于改進(jìn)遺傳算法的移動(dòng)機(jī)器人路徑規(guī)劃方法,其特征在于,步驟3.2.3中,所述適應(yīng)度通過(guò)適應(yīng)度函數(shù)計(jì)算得到,種群中的一條路徑pop的適應(yīng)度函數(shù)為f(pop),則有:
式中,n為路徑pop上關(guān)鍵點(diǎn)個(gè)數(shù),(xi,yi)為關(guān)鍵點(diǎn)i在工作空間中的坐標(biāo),penalty為懲罰項(xiàng)。
4.根據(jù)權(quán)利要求2所述的一種基于改進(jìn)遺傳算法的移動(dòng)機(jī)器人路徑規(guī)劃方法,其特征在于,步驟3.2.2中,最大迭代次數(shù)G=200;步驟3.2.3中,錦標(biāo)賽的聯(lián)賽規(guī)模Nchammp=2。
5.根據(jù)權(quán)利要求1所述的一種基于改進(jìn)遺傳算法的移動(dòng)機(jī)器人路徑規(guī)劃方法,其特征在于,步驟3.1.2及步驟3.1.3中,將新的樹(shù)節(jié)點(diǎn)連接到子樹(shù)中的具體步驟為:計(jì)算新的樹(shù)節(jié)點(diǎn)與子樹(shù)所有節(jié)點(diǎn)之間的歐式距離,選擇前w個(gè)歐式距離最小的樹(shù)節(jié)點(diǎn)Plst,p2nd,...,pwth,判斷樹(shù)節(jié)點(diǎn)Plst,p2nd,...,pwth與新的樹(shù)節(jié)點(diǎn)之間是否存在障礙物,如果否則將其與新的樹(shù)節(jié)點(diǎn)連接。
6.根據(jù)權(quán)利要求1所述的一種基于改進(jìn)遺傳算法的移動(dòng)機(jī)器人路徑規(guī)劃方法,其特征在于,步驟3.1.5中,所述雙向快速遍歷隨機(jī)樹(shù)的連接點(diǎn)為雙向快速遍歷隨機(jī)樹(shù)中兩棵子樹(shù)的公共樹(shù)節(jié)點(diǎn)。
7.根據(jù)權(quán)利要求1所述的一種基于改進(jìn)遺傳算法的移動(dòng)機(jī)器人路徑規(guī)劃方法,其特征在于,步驟3.1中,所述多樣性豐富是指種群分布廣度Br大,種群中的個(gè)體兩兩之間相似度小,種群中的個(gè)體兩兩之間的Hausdorff距離大,點(diǎn)集A和點(diǎn)集B的Hausdorff距離H(A,B)的計(jì)算公式如下:
式中,d(a,b)為點(diǎn)a和點(diǎn)b之間的歐氏距離。
8.根據(jù)權(quán)利要求7所述的一種基于改進(jìn)遺傳算法的移動(dòng)機(jī)器人路徑規(guī)劃方法,其特征在于,所述廣度Br的計(jì)算公式如下:
式中,N為種群中包含的路徑數(shù)量,pathi為路徑i關(guān)鍵點(diǎn)集合,pathj為路徑j(luò)關(guān)鍵點(diǎn)集合。
9.根據(jù)權(quán)利要求1所述的一種基于改進(jìn)遺傳算法的移動(dòng)機(jī)器人路徑規(guī)劃方法,其特征在于,步驟3.1.2,所述生長(zhǎng)因子v=∞,即使用貪心算法,沿著生長(zhǎng)方向一直生長(zhǎng),直到遇到障礙物或生長(zhǎng)方向點(diǎn)。
10.根據(jù)權(quán)利要求1所述的一種基于改進(jìn)遺傳算法的移動(dòng)機(jī)器人路徑規(guī)劃方法,其特征在于,步驟4中,二次B樣條曲線的矩陣表示為P0,2(t),t∈[0,1],則有:
式中,P0、P1、P2為二次B樣條曲線的控制點(diǎn)。