專利名稱:一種基于阻塞角的行人仿真中障礙物避碰方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種交通仿真技術(shù)領(lǐng)域中模擬行人交通行為的方法,具體是一種基于阻塞角的行人仿真中障礙物避碰方法。
背景技術(shù):
交通領(lǐng)域中對行人的仿真研究通常是包含在對客運(yùn)樞紐系統(tǒng)的仿真研究中的,這 類研究可以追溯到20世紀(jì)60年代末期,最初主要針對機(jī)場樞紐進(jìn)行研究。德國首次將客 運(yùn)樞紐站作為系統(tǒng)進(jìn)行了仿真(Baron,1969)。在美國,聯(lián)邦航空局資助研究了用于機(jī)場樞 紐仿真的三種不同方法隨機(jī)離散事件仿真(Gorstein與McCabe,1982)、排隊(duì)模型(Gentry 與Doyle,1978),以及回歸模型(McCullough與Roberts,1979);加州大學(xué)伯克利分校使用 確定性的排隊(duì)模型分析機(jī)場陸域設(shè)施(landside components),模擬評價樞紐內(nèi)各個設(shè)施 的布局與設(shè)計(jì),如門、行李領(lǐng)取設(shè)備、容納廳及值機(jī)柜臺(MumayiZ,1990)等。計(jì)算機(jī)硬件 和軟件尤其是軟件編程和建模技術(shù)的不斷飛躍對交通仿真的發(fā)展起到了至關(guān)重要的作用。 世界范圍內(nèi)已經(jīng)有30種以上的仿真模型進(jìn)入了實(shí)用階段,根據(jù)仿真模型對行人系統(tǒng)細(xì)節(jié) 描述程度的不同,通常可以分為宏觀模型、中觀模型和微觀模型。代表性的軟件有Legion、 STEPS、BuildingEXDOUS、MYRIAD、PAXP0RT、SimPed 和 SIMULEX 等。在眾多仿真軟件中,行人對障礙物的避碰方法依賴于軟件本身的行人建模方式。 目前廣泛應(yīng)用的行人仿真模型中有兩類,一類是以元胞自動機(jī)模型為代表的離散仿真模 型,一類是以社會力模型為代表的連續(xù)仿真模型。元胞自動機(jī)是二十世紀(jì)四五十年代在數(shù) 字計(jì)算機(jī)的基礎(chǔ)上提出的,八九十年代引入交通領(lǐng)域。此類模型通常把建筑物的平面空間 劃分為微小的正方形單元格。在任意時刻,一個單元格要么被占據(jù)(障礙物或一個個體)、 要么為空,在仿真的運(yùn)行過程中,時間被劃分為等長的時間段,在每一時間段,所有個體依 據(jù)所處的環(huán)境和自己的行為規(guī)則選擇是留在原格還是移動到相鄰的8個單元格中的一格, 但是離散仿真模型對行人微觀行為模擬上仍存在欠缺。1995年Helbing使用阻力和引力的 概念模擬行人的微觀行為,并且建立了一種綜合的復(fù)雜的等式關(guān)系,來模擬一系列行人行 為,這就是我們所熟悉的社會力模型。該模型通過設(shè)置行人之間、行人與障礙物之間的斥力 來解決障礙物的避碰問題,但是由于模型本身的復(fù)雜性,斥力的參數(shù)標(biāo)定存在一定的困難, 提高了行人仿真的難度。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術(shù)中的不足,提供一種基于阻塞角的行人仿真中的 避障方法,該方法不受仿真模型的限制,且能夠在不需要大量參數(shù)標(biāo)定的前提下,實(shí)現(xiàn)行人 對靜態(tài)障礙物以及其他行人的避障繞行,使其順利到達(dá)目標(biāo)點(diǎn)。一種基于阻塞角的行人仿真中障礙物避碰方法,包括以下步驟a)、對每一個行人建立一個障礙物集合,集合中包含該行人周圍一定范圍內(nèi)的其 他行人和靜態(tài)障礙物;
b)、預(yù)設(shè)集合的更新時間,并在每個仿真步長內(nèi)判斷是否到達(dá)更新時間;c)、若到達(dá),更新行人的障礙物集合,并掃描,對其中距離該行人小于避碰距離障 礙物建立阻塞角,放入阻塞角數(shù)據(jù)組中;若未到達(dá)規(guī)定時間,則不需要更新集合,直接進(jìn)行 掃描并建立阻塞角,放入阻塞角數(shù)組中;d)、判斷行人的目標(biāo)方向是否被阻塞角數(shù)組中的任一阻塞角始邊、終邊之間的夾角包含;e)、若不包含,行人按照目標(biāo)方向繼續(xù)行走;若包含,遍歷阻塞角數(shù)組,判斷其中是 否含有不被其他阻塞角包含的始邊或終邊;f)若不包含,則行人沒有可以通過的角度,在該步長內(nèi)停止行走,進(jìn)行等待;若包 含,則從所有滿足上述條件的始邊、終邊中選出行人當(dāng)前位置到該邊上導(dǎo)航點(diǎn)與該導(dǎo)航點(diǎn) 到目標(biāo)點(diǎn)跑離之和最小的始邊或終邊作為行人的繞行方向。將行人近似為圓形C,當(dāng)障礙物為圓形Ci時,通過作圓Ci與圓C的內(nèi)公切線,得到 圓Ci上的兩個切點(diǎn),在兩個切點(diǎn)的外法線方向上分別找到距切點(diǎn)的距離為圓C半徑的點(diǎn)D、 E,Z DCE即為行人Ci對當(dāng)前行人C產(chǎn)生的阻塞角。將行人近似為圓形C,當(dāng)障礙物為多邊形時,設(shè)多邊形中距行人最近的邊的頂點(diǎn)分 別為A、B,做圓C的圓心到A、B兩點(diǎn)的連線CA、CB,在A、B兩點(diǎn)處分別作CA、CB的垂線,在 垂線上分別找到距A、B兩點(diǎn)的距離為圓C半徑的點(diǎn)F、G,Z FCG即為障礙物對當(dāng)前行人C 產(chǎn)生的阻塞角。每一個阻塞角的兩條邊,直角坐標(biāo)系下方向角度小的為始邊,另一條則為終邊。繞行同向行人或靜態(tài)障礙物時,首先識別出不被任何阻塞角包含的邊,分別計(jì)算 行人當(dāng)前位置到這些邊上的導(dǎo)航點(diǎn)的距離與該導(dǎo)航點(diǎn)到目標(biāo)點(diǎn)的距離之和,選擇從距離之 和最小的一邊繞行障礙物。繞行對向行人時,將兩行人各自的阻塞角的終邊的優(yōu)先級降低,行人分別從始邊 方向繞行。本發(fā)明的有益效果本發(fā)明不依賴于復(fù)雜的數(shù)學(xué)模型,算法參數(shù)少,通過提出阻塞角的概念,建立障礙 物對當(dāng)前行人的阻塞角,進(jìn)而確定行人需要繞行的阻塞區(qū)域,同時根據(jù)路徑最短原則選擇 對靜態(tài)障礙物以及同向行人的繞行路徑,通過降低阻塞角的某一邊的優(yōu)先級實(shí)現(xiàn)對向行人 避碰,這一過程不需要復(fù)雜的參數(shù)標(biāo)定,大大簡化了行人仿真過程中的建模工作,且避碰范 圍以及繞行規(guī)則可以自由設(shè)定,進(jìn)而滿足不同目的的仿真需要。
圖1本發(fā)明計(jì)算機(jī)程序?qū)崿F(xiàn)流程總圖;圖2本發(fā)明計(jì)算機(jī)實(shí)現(xiàn)中阻塞角建立流程圖;圖3本發(fā)明中行人或圓形障礙物產(chǎn)生的阻塞角建立示意圖;圖4本發(fā)明中多邊形障礙物產(chǎn)生的阻塞角建立示意圖;圖5本發(fā)明中同向行人繞行方法示意圖;圖6本發(fā)明中雙向行人繞行方法示意圖;圖7本實(shí)施例的同向多個行人避碰示意圖8本實(shí)施例的多邊形障礙物避碰示意圖;圖9本實(shí)施例的相向行人避碰示意圖。
具體實(shí)施例方式下面結(jié)合附圖對本發(fā)明的實(shí)施方式詳細(xì)說明本發(fā)明的計(jì)算機(jī)程序?qū)崿F(xiàn)方法如下圖1為本發(fā)明的方法計(jì)算機(jī)實(shí)現(xiàn)的流程圖,首先對每一個行人建立一個障礙物集 合,集合中包含該行人周圍一定范圍內(nèi)的其他行人和靜態(tài)障礙物。預(yù)設(shè)集合的更新時間,并 在每個仿真步長內(nèi)判斷是否到達(dá)更新時間,若到達(dá),則更新行人周圍障礙物集合,并掃描周 圍障礙物集合,對其中距離該行人小于避碰距離的障礙物建立阻塞角,若沒有到達(dá)規(guī)定時 間,則不需要更新集合,直接進(jìn)行掃描并建立阻塞角。將所建立的阻塞角全部放入阻塞角 數(shù)組中,在此基礎(chǔ)上,判斷行人的目標(biāo)方向是否被阻塞角數(shù)組中的任一阻塞角始邊、終邊之 間夾角包含,若不包含,則行人按照目標(biāo)方向繼續(xù)行走遍歷阻塞角數(shù)組;若被包含,進(jìn)行二 次判斷,判斷其中是否含有不被其他阻塞角包含的始邊或終邊,若沒有,則行人沒有可以通 過的角度,在該步長內(nèi)停止行走進(jìn)行等待;若有未被包含的邊,則從所有滿足上述條件的始 邊、終邊中選出行人當(dāng)前位置到該邊上導(dǎo)航點(diǎn)與該導(dǎo)航點(diǎn)到目標(biāo)點(diǎn)距離之和最小的始邊或 終邊作為行人的繞行方向。圖2本發(fā)明計(jì)算機(jī)實(shí)現(xiàn)中阻塞角建立流程圖,實(shí)施例中將行人抽象成為一個半徑 為r的圓,設(shè)行人當(dāng)前圓心位置為C,以行人避碰前方同向多個行人、多邊形障礙物以及避 碰相向行人為例,阻塞角的建立及繞行方向判斷的具體過程如下阻塞角的建立方法如下如圖3所示,建立其他行人Ci對當(dāng)前行人C產(chǎn)生的阻塞角時,將行人近似為圓形, 作圓Ci與圓C的內(nèi)公切線,得到圓Ci上的兩個切點(diǎn),在兩個切點(diǎn)的外法線方向上分別找到 距切點(diǎn)的距離為圓C半徑的點(diǎn)D、E,Z DCE即為行人Ci對當(dāng)前行人C產(chǎn)生的阻塞角,阻塞角 包含的區(qū)域只是不允許行人C通過,對其他行人沒有影響。D、E為阻塞角邊上的導(dǎo)航點(diǎn)。對 建立的阻塞角的兩條邊進(jìn)行標(biāo)記,定義直角坐標(biāo)系下方向角度小的為始邊,另一條為終邊, 則Z DCE的邊CE為始邊、⑶為終邊。如圖4所示,建立靜態(tài)障礙物對當(dāng)前行人C產(chǎn)生的阻塞角時,若障礙物為圓形,采 用與(1)中相同的方法建立阻塞角,若障礙物為多邊形,首先判斷出多邊形中距行人最近 的邊,設(shè)此條邊的頂點(diǎn)分別為A、B,做圓C的圓心到A、B兩點(diǎn)的連線04丄8,然后,在々、8兩 點(diǎn)處分別作CA、CB的垂線,在垂線上分別找到距A、B兩點(diǎn)的距離為圓C半徑的點(diǎn)F、G,Z FCG 即為障礙物對當(dāng)前行人C產(chǎn)生的阻塞角,F(xiàn)、G代替A、B成為新的導(dǎo)航點(diǎn)。根據(jù)上述阻塞角 的邊的標(biāo)記方法,Z FCG的邊CG為始邊、CF為終邊。行人繞行由阻塞角組成的阻塞區(qū)域的方法如下繞行同向行人或靜態(tài)障礙物時,首先識別出阻塞區(qū)域最外側(cè)的兩條邊,即不被任何阻塞角包含的邊,分別計(jì)算行人當(dāng)前位置到這兩條邊上的導(dǎo)航點(diǎn)的距離與該導(dǎo)航點(diǎn)到目 標(biāo)點(diǎn)的距離之和,選擇從距離之和最小的一邊繞行障礙物(圖5中箭頭指示的方向)。繞行對向行人時,將兩行人各自的阻塞角的終邊的優(yōu)先級降低,行人分別從始邊 方向繞行(圖6中箭頭所指示的方向)。這符合我國行人右側(cè)行走習(xí)慣。實(shí)施例對于同向多個行人的避碰如圖7所示,C為當(dāng)前行人,Dj為目標(biāo)點(diǎn),C1X2為行人C為前方阻礙其到達(dá)目標(biāo)點(diǎn) 的行人,通過做圓C與圓CpC2的內(nèi)公切線得到切點(diǎn)Ai、A2、A3、A4,在每個切點(diǎn)的外法線方向 上取距離切點(diǎn)為圓C半徑的點(diǎn)I\、T2、T3、T4,Z T1CT2和Z T3CT4即為阻塞角。阻塞角的終邊 和始邊均對應(yīng)有方向角度及導(dǎo)航點(diǎn),通過方向角度的判斷阻塞角的邊是否被其它阻塞角所 包含,將未被 包含的始邊或終邊的導(dǎo)航點(diǎn)記入一個集合T中,計(jì)算行人當(dāng)前位置到導(dǎo)航點(diǎn) 的距離與導(dǎo)航點(diǎn)到目標(biāo)點(diǎn)的距離之和"=<7; +dDjTl ’若dc.rD +dD/I.D =mm(d),則行人C以Td 為導(dǎo)航點(diǎn)繞過前方的行人或其它障礙物。本實(shí)施例中CT1和CT4為未被阻塞角包含的兩條 邊,這兩條邊上的導(dǎo)航點(diǎn)分別為T1和T4,通過計(jì)算+dDfl, <dcl, +dDjTi,如圖3中的箭頭 所指方向,行人C以T1為導(dǎo)航點(diǎn)繞過前方行人,最終到達(dá)目標(biāo)點(diǎn)Dj。對于多邊形障礙物的避碰如圖8所示,C為當(dāng)前行人,Dj為目標(biāo)點(diǎn),AB為多邊形障礙物距行人C最近的一條 邊,分別在A、B兩點(diǎn)處做CA、CB的垂線并向障礙物外側(cè)延長行人半徑的長度得到點(diǎn)T5、T6, Z T5CT6就是障礙物對行人C的阻塞角,計(jì)算距離后<7·6 +^DjT6 <dCT5 +dDjTs,則行人C以T6 為導(dǎo)航點(diǎn)繞過障礙物,最終到達(dá)目標(biāo)點(diǎn)Dj。對于相向行人的避碰如圖9所示,C為當(dāng)前行人示意圖,C3為行人C正前方與其相向行走的行人,圖中 實(shí)線箭頭所指分別是兩個行人的前進(jìn)方向,采用(1)中的方法分別建立行人C3對行人C的 阻塞角,T7CT8以及行人C對行人C3的阻塞角,T9CT0,根據(jù)我國行人右側(cè)行走的習(xí)慣,將兩 個阻塞角的終邊CT7、CT9的優(yōu)先級降低(可在程序?qū)崿F(xiàn)時將其狀態(tài)設(shè)置為delete),這樣行 人只能選擇始邊方向行走,如圖中虛線箭頭所示。
權(quán)利要求
一種基于阻塞角的行人仿真中障礙物避碰方法,其特征在于包括以下步驟a)、對每一個行人建立一個障礙物集合,集合中包含該行人周圍一定范圍內(nèi)的其他行人和靜態(tài)障礙物;b)、預(yù)設(shè)集合的更新時間,并在每個仿真步長內(nèi)判斷是否到達(dá)更新時間;c)、若到達(dá),更新行人的障礙物集合,并掃描,對其中距離該行人小于避碰距離障礙物建立阻塞角,放入阻塞角數(shù)據(jù)組中;若未到達(dá)規(guī)定時間,則不需要更新集合,直接進(jìn)行掃描并建立阻塞角,放入阻塞角數(shù)組中;d)、判斷行人的目標(biāo)方向是否被阻塞角數(shù)組中的任一阻塞角始邊、終邊之間的夾角包含;e)、若不包含,行人按照目標(biāo)方向繼續(xù)行走;若包含,遍歷阻塞角數(shù)組,判斷其中是否含有不被其他阻塞角包含的始邊或終邊;f)若不包含,則行人沒有可以通過的角度,在該步長內(nèi)停止行走,進(jìn)行等待;若包含,則從所有滿足上述條件的始邊、終邊中選出行人當(dāng)前位置到該邊上導(dǎo)航點(diǎn)與該導(dǎo)航點(diǎn)到目標(biāo)點(diǎn)距離之和最小的始邊或終邊作為行人的繞行方向。
2.根據(jù)權(quán)利要求1所述的一種基于阻塞角的行人仿真中障礙物避碰方法,其特征在于 所述的阻塞角將行人近似為圓形C,當(dāng)障礙物為圓形(;時,通過作圓Ci與圓C的內(nèi)公切線, 得到圓Ci上的兩個切點(diǎn),在兩個切點(diǎn)的外法線方向上分別找到距切點(diǎn)的距離為圓C半徑的 點(diǎn)D、E,Z DCE即為行人Ci對當(dāng)前行人C產(chǎn)生的阻塞角。
3.根據(jù)權(quán)利要求1所述的一種基于阻塞角的行人仿真中障礙物避碰方法,其特征在于 所述的阻塞角將行人近似為圓形C,當(dāng)障礙物為多邊形時,設(shè)多邊形中距行人最近的邊的 頂點(diǎn)分別為A、B,做圓C的圓心到A、B兩點(diǎn)的連線CA、CB,在A、B兩點(diǎn)處分別作CA、CB的垂 線,在垂線上分別找到距A、B兩點(diǎn)的距離為圓C半徑的點(diǎn)F、G,Z FCG即為障礙物對當(dāng)前行 人C產(chǎn)生的阻塞角。
4.根據(jù)權(quán)利要求2或3所述的一種基于阻塞角的行人仿真中障礙物避碰方法,其特征 在于每一個阻塞角的兩條邊,直角坐標(biāo)系下方向角度小的為始邊,另一條則為終邊。
5.根據(jù)權(quán)利要求4所述的一種基于阻塞角的行人仿真中障礙物避碰方法,其特征在 于繞行同向行人或靜態(tài)障礙物時,首先識別出不被任何阻塞角包含的邊,分別計(jì)算行人當(dāng) 前位置到這些邊上的導(dǎo)航點(diǎn)的距離與該導(dǎo)航點(diǎn)到目標(biāo)點(diǎn)的距離之和,選擇從距離之和最小 的一邊繞行障礙物。
6.根據(jù)權(quán)利要求4所述的一種基于阻塞角的行人仿真中障礙物避碰方法,其特征在 于繞行對向行人時,將兩行人各自的阻塞角的終邊的優(yōu)先級降低,行人分別從始邊方向繞 行。
全文摘要
本發(fā)明涉及一種交通仿真技術(shù)領(lǐng)域中模擬行人交通行為的方法,一種基于阻塞角的行人仿真中障礙物避碰方法,在掃描避碰范圍內(nèi)所有靜態(tài)障礙物以及其他行人后,建立這些障礙物對當(dāng)前行人產(chǎn)生的阻塞角,若當(dāng)前行人的目標(biāo)方向不被任一阻塞角包含,行人沿該方向行走,否則,行人需繞過目標(biāo)方向上的阻塞角組成的阻塞區(qū)域。本發(fā)明通過提出阻塞角的概念,建立障礙物對當(dāng)前行人的阻塞角,進(jìn)而確定行人需要繞行的阻塞區(qū)域,同時根據(jù)路徑最短原則選擇對靜態(tài)障礙物以及同向行人的繞行路徑,通過降低阻塞角的某一邊的優(yōu)先級實(shí)現(xiàn)對向行人避碰,這一過程不需要復(fù)雜的參數(shù)標(biāo)定,且避碰范圍以及繞行規(guī)則可以自由設(shè)定,進(jìn)而滿足不同目的的仿真需要。
文檔編號G06F17/50GK101826122SQ201010030828
公開日2010年9月8日 申請日期2010年1月18日 優(yōu)先權(quán)日2010年1月18日
發(fā)明者唐明, 孫寶鳳, 宗芳, 張娜, 李國威, 楊麗麗, 王甦菁, 賈洪飛, 陳彬, 陳震 申請人:吉林大學(xué)