李曉宇 徐紀(jì)洋 馬飛
(上海聯(lián)適導(dǎo)航技術(shù)股份有限公司,上海 200000)
人工智能(Artificial Intelligence,AI),是計算機(jī)科學(xué)的一個分支,其是根據(jù)了解人類的思想,并能以人類智能相似的方式做出反應(yīng)的智能機(jī)器[1]。隨著該技術(shù)的發(fā)展,人們逐漸將該技術(shù)運用于掃拖地機(jī)器人[2]、電氣自動化控制[3]、軍事[4]、計算機(jī)網(wǎng)絡(luò)[5]以及中國醫(yī)學(xué)等方面[6],近年來人們將該技術(shù)應(yīng)用于汽車上的無人駕駛方面[7]。
無人駕駛在實現(xiàn)上可分為2個步驟。對地理環(huán)境的探知,車輛要能夠按照要求在規(guī)定路徑行駛,這需要地理定位的技術(shù)支持,這一部分可以使用北斗衛(wèi)星定位技術(shù)來解決[8]。同時路徑的規(guī)劃也要能夠規(guī)避路徑上已經(jīng)知道的固定障礙物,以免引起行駛安全性問題;路徑確定后的控制技術(shù),使車輛能夠在規(guī)劃好的路徑上精確行駛,不能出現(xiàn)比較大的偏差。無人駕駛車輛的路徑規(guī)劃問題,就是在要工作的地塊形狀下,規(guī)劃出無人駕駛車輛能夠遍歷整個工作地塊、沒有障礙物碰撞的一條安全行駛路徑。
李寧等提出一種基于遺傳算法(genetic algorithm,GA)的自主避障控制算法應(yīng)用于電動汽車上,解決了傳統(tǒng)算法只能在橫向避障的缺陷[9]。程越等為了實現(xiàn)無人駕駛拖拉機(jī)在直線作業(yè)時的實時避障路徑規(guī)劃功能,通過仿真發(fā)現(xiàn)規(guī)劃的路徑跟蹤控制精度更高的算法是基于5次多項式函數(shù)的路徑規(guī)劃算法,更易于跟蹤控制[10]。
目前,無人駕駛車輛采用的工作路徑規(guī)劃在作業(yè)時多需要人工干預(yù),如在遇到需要轉(zhuǎn)彎、掉頭、規(guī)避障礙物時需要人工控制車輛完成動作,耗費人力,受時間、環(huán)境等客觀條件限制,在面對大面積工作地塊進(jìn)行標(biāo)準(zhǔn)化作業(yè)時,駕駛員受生理條件限制無法長時間按標(biāo)準(zhǔn)完成工作,限制了作業(yè)效率。
為了解決上述問題,本設(shè)計的目的在于為自動駕駛系統(tǒng)根據(jù)工作地塊提供一條可以遍歷整個地塊,實現(xiàn)無漏作業(yè),又可以繞過障礙物的自動路徑規(guī)劃方法。該方法僅需采集工作地塊形狀和障礙物位置,就可自動規(guī)劃出行駛路徑,無需其它人工代價,一次信息采集后,針對同一地塊下次作業(yè)時無需再做信息采集工作,方便簡單,降低人工成本,可繞過障礙物,保障作業(yè)安全。
采集工作地塊地理信息,獲得多邊形順序坐標(biāo)點,以規(guī)定安全邊界距離將多邊形向內(nèi)部縮進(jìn);以當(dāng)前工作車輛位置為參考,以與多邊形頂點距離最近的為下一個目標(biāo)點,以此點相鄰較長邊,生成路徑待定點并生成路徑;遇到障礙物通過平移待定點繞過障礙物,并能通過比較左右平移距離獲得較優(yōu)路徑,通過平移路徑待定點生成下一組路徑,直至路徑能夠遍歷整個工作地塊;通過采集地塊和障礙物坐標(biāo)后,可在路徑生成的時候根據(jù)障礙物坐標(biāo)自動生成帶有避障路徑的行駛路徑。
由上述基本原理可得,利用本設(shè)計的無人駕駛帶避障的路徑規(guī)劃方法可以極大提高無人駕駛作業(yè)的效率和作業(yè)安全性,并且操作方便簡單,降低人工成本。
本設(shè)計提供了一種無人駕駛的帶避障的路徑規(guī)劃方法的流程圖,如圖1所示。
建立地塊地理模型。預(yù)先對將要作業(yè)的地塊進(jìn)行地理信息采集、障礙物地理信息采集,建立地塊地理模型。采集地塊頂點坐標(biāo)。順、逆時針繞地塊采集地塊多邊形頂點坐標(biāo),根據(jù)將要作業(yè)的地塊,順或逆時針預(yù)先采集地塊特征點。邊界縮進(jìn)。將地塊多邊形按照工作時離地邊界安全距離Threshold向內(nèi)部縮進(jìn),生成邊界特征點。依次獲取邊界特征點。獲得當(dāng)前車輛所在位置坐標(biāo)點,取相距車輛最近的邊界特征點,取最長的一條為參考線段。生成路徑待定點。在此線段上生成路徑待定點,遍歷此組路徑待定點,是否有在障礙物圓形內(nèi)。遍歷路待定點。通過遍歷路徑待定點即可確定路徑特征點,將路徑特征點首尾相接即為規(guī)劃完成的路徑。
根據(jù)圖1所示流程圖,具體說明路徑規(guī)劃和生成的實施步驟如下。
采集地塊信息確定車輛行駛誤差,記為Bias;確定車輛安全邊界距離,記為Threshold;確定車輛工作寬度,記為Stride。通過手持、車載定位設(shè)備,順、逆時針繞著工作地塊采集地塊多邊形頂點坐標(biāo)和地塊中的障礙物坐標(biāo)以及大小。
以安全距離向內(nèi)縮進(jìn)如圖2所示。
以離地邊界安全距離Threshold為基準(zhǔn)向地塊多邊形內(nèi)部進(jìn)行縮進(jìn),縮進(jìn)采用解析幾何方法,使用矢量法實現(xiàn),生成邊界特征點。將工作地塊多邊形記為四邊形,即PP[2]、CP[1],將頂點向內(nèi)部縮進(jìn),實現(xiàn)多邊形縮進(jìn)效果,以P[1]點為例,L為平行線間距離,即縮進(jìn)距離,α為P[1]P、P[1]P[2]夾角,Pnew點為P[1]點縮進(jìn)后的生成點,Pnew坐標(biāo)可用向量運算得到,計算公式:
(1)
以當(dāng)前車輛最近點為起點獲得當(dāng)前車輛所在位置坐標(biāo)點,記為P[0];取距P[0]最近的邊界特征點,記為P[1]。地塊多邊形頂點為順序采集,計算P[1]相鄰的2個點與P[1]的距離,取最長的1條為參考線段(或手動選取某一鄰點取參考線),記為P[1]P[2]線段,另一個鄰點記為P。
根據(jù)車載機(jī)具寬度確定路徑間隔,記為Stride,設(shè)定工作時離地邊界安全距離設(shè)為Threshold,以車載機(jī)具寬度、行駛誤差的差值,記為real Stride;以當(dāng)前車輛所在目標(biāo)點為起始點,記為P[0];計算P[0]與所有邊界特征點的距離,以距離最短的點為下一目標(biāo)點,記為P[1],P[0]為路徑特征點的第1個點;所有邊界點為順或逆時針順序采集,計算P[1]相鄰的2個點與P[1]的距離,取最長的1條為參考線段(或手動選取某一鄰點取參考線),記為P[1]P[2]線段,另一個點記為P,在此線段上以Stride/10的間隔生成路徑待定點。
判斷車輛繞過障礙物路徑生成示意圖如圖3所示。
是否有在障礙物圓形內(nèi),如有加上1個不在圓內(nèi)的點、下1個不在原內(nèi)的點組成障礙物點,此組點先向左平移,直至此組點沒有在障礙物圓內(nèi)的點,若都在邊界內(nèi)則保留,超出邊界則放棄,向右平移判斷,若向左、向右平移都在邊界內(nèi)則,取平移距離較短的一組,取頭尾2個路徑待定點、取障礙物點頭尾點,加入路徑特征點。
以真實路徑間隔real Stride為間距、以P[1] P方向生成平行的另一組路徑待定點,判斷此組路徑待定點是否有超出邊界的點,有則刪去。如路徑待定點沒有超出邊界的點,則在此組路徑待定點兩端按照Stride/10(可按實際情況設(shè)置此項)的距離生成路徑待定點,如生成的路徑待定點在邊界內(nèi)則加入路徑待定點組。
判斷此組路徑特征點是否有超出邊界的點、生成的路徑特征點是否在邊界內(nèi),判斷點是否在多邊形內(nèi),多邊形可為凹多邊形或凸多邊形。判斷方法:判斷點的縱、橫坐標(biāo)是否超過多邊形最大、小于最小縱橫坐標(biāo),如超過最大、小于最小縱、橫坐標(biāo)則一定不在多邊形內(nèi);以當(dāng)前點向橫軸正方向引出射線,若此射線與多邊形各邊相交的邊數(shù)(非相交于端點)為奇數(shù)則點在多邊形內(nèi),為偶數(shù)點在多邊形外。
此組路徑待定點取頭尾2個路徑待定點、取障礙物點頭尾點然后逆序,加入路徑特征點。重復(fù)生成平行路徑待定點,至生成的平行路徑待定點的個數(shù)小于2為止。最后以距離為判斷條件最近的點為起始,將邊界點依次加入路徑特征點,用作邊界工作路徑,則全部路徑特征點生成完畢。
判斷車輛是否行駛過目標(biāo)點示意圖如圖4所示。
到達(dá)目標(biāo)點后的判斷方法:判斷行駛過程中車輛與目標(biāo)點的距離,記為d,若小于設(shè)定閾值(由作業(yè)要求、車輛質(zhì)量決定,人為設(shè)置),認(rèn)為到達(dá)目標(biāo)點;以A:(X0,Y0),B:(X1,Y1)組成的線段為路徑,車當(dāng)前點P:(X,Y),車輛由A駛向B為例,計算向量的夾角余弦值,若小于0,則超過目標(biāo)B。
本設(shè)計通過采集地塊和障礙物坐標(biāo)后,可在路徑生成的時候根據(jù)障礙物坐標(biāo)自動生成帶有避障路徑的行駛路徑,極大提高了無人駕駛作業(yè)的效率和作業(yè)安全性。所以本設(shè)計可以用于含有障礙物的封閉地塊中農(nóng)用機(jī)械無人駕駛作業(yè)的路徑規(guī)劃。