無人機的控制方法及系統的制作方法
【專利摘要】本發明提供一種無人機的控制方法及系統,方法包括以下步驟:掃描并生成飛行環境的柵格地圖,根據柵格地圖信息對飛行環境進行區域劃界;根據柵格地圖和區域劃界結果,利用A*算法規劃飛行路徑;從規劃的飛行路徑中選取多個路徑點,分別計算多個路徑點與周圍障礙物的最短距離;以及當對應路徑點與障礙物的最短距離大于安全半徑時,飛行器可沿該路徑點飛行,當最短距離小于安全半徑時,使用wall‐following算法規劃飛行路徑并飛行。根據本發明實施例的方法,根據地圖信息對飛行環境進行區域劃界,將A*算法與wall‐following算法相結合來規劃飛行路徑,提高了無人機自主飛行的效率和安全性,同時具有良好的擴展性。
【專利說明】無人機的控制方法及系統
【技術領域】
[0001]本發明涉及無人機【技術領域】,特別涉及一種無人機的控制方法及系統。
【背景技術】
[0002]無人機可通過配備外部傳感器,并通過規劃層算法,使無人機具備環境信息收集、建模,目標任務規劃、分解、執行的能力。進而可在災后搜救、基礎設施監察等領域發揮著重要角色。
[0003]無人機的導航是其中一個重要的組成部分。無人機的導航研究導是為了解決由Durrant -Whyte H F提出的三個關鍵問題:1) “現在何處? ”,2) “去往何處? ”,3) “如何去該處? ”。按照應用場景又可將其細分為解決完全已知環境,部分已知環境和完全未知環境的導航問題。其中,完全已知環境下的路徑規劃已經取得了豐碩的研究成果,可視圖法、柵格法等都能夠高效的實現全局路徑規劃的要求。
[0004]目前對部分未知和完全未知環境的導航是近年來的主要研究熱點,而對部分未知和完全未知環境的導航主要采用人工勢場法,模糊邏輯法,滾動窗口規劃法等方式進行導航,而現有方式會使導航行為缺乏“預見性”,且單一的導航規劃會出現局部卡死、陷于局部最小化和探索路徑重復等問題。因此,無法根據環境的變化靈活切換路徑規劃方式,不利于完成復雜未知飛行環境的全面探索,大大增加了危險性。
【發明內容】
[0005]本發明的目的旨在至少解決上述的技術缺陷之一。
[0006]為此,本發明一方面提供一種無人機的控制方法。
[0007]本發明的另一方面提出一種無人機的控制系統。
[0008]有鑒于此,本發明一方面的實施例提出一種無人機的控制方法,包括以下步驟:區域劃界步驟,掃描并生成飛行環境的柵格地圖,并根據所述柵格地圖對所述飛行環境進行區域劃界;路徑規劃步驟,根據所述柵格地圖和區域劃界結果,利用A*算法規劃飛行路徑;最短距離計算步驟,從規劃的所述飛行路徑中選取多個路徑點,分別計算所述多個路徑點與周圍障礙物的最短距離;以及第一飛行步驟,當對應路徑點與所述周圍障礙物的最短距離大于安全半徑時,所述無人機沿該路徑點飛行。
[0009]根據本發明實施例的方法,根據地圖信息對飛行環境進行區域劃界,將A*算法與wall - following算法相結合來規劃飛行路徑,提高了無人機自主飛行的效率和安全性,同時具有良好的擴展性。
[0010]在本發明的一個實施例中,還包括:路徑調整步驟,當所述對應路徑點的最短距離小于所述安全半徑時,通過wall -following算法調整該路徑點及其之后的飛行路徑,并確保調整后的路徑點與周圍障礙物的最短距離大于所述安全距離;以及第二飛行步驟,將調整后的多個路徑點作為飛行路徑進行飛行。
[0011]在本發明的一個實施例中,所述區域劃界步驟具體包括:根據所述飛行環境的深度信息生成所述飛行環境的柵格地圖;根據所述柵格地圖對所述柵格地圖的每個柵格進行識別;以及根據識別結果將包含障礙物的鄰接柵格相連以對所述飛行環境進行區域劃界。
[0012]在本發明的一個實施例中,路徑規劃步驟具體包括:根據當前位置、所述柵格地圖和所述區域劃界結果選定目標點;利用A*算法計算從所述當前位置到所述選定目標點的飛行路徑。
[0013]本發明另一方面的實施例提出了一種無人機的控制系統,包括:劃界模塊,用于生成飛行環境的柵格地圖,并根據所述柵格地圖對所述飛行環境進行區域劃界;規劃模塊,用于根據所述柵格地圖和區域劃界結果,利用A*算法規劃飛行路徑;計算模塊,用于從規劃的所述飛行路徑中選取多個路徑點,并分別計算所述多個路徑點與周圍障礙物的最短距離;以及飛行模塊,在對應路徑點與所述周圍障礙物的最短距離大于安全半徑時,將該路徑點作為飛行路徑中的路徑點進行飛行。
[0014]根據本發明實施例的系統,根據地圖信息對飛行環境進行區域劃界,將A*算法與wall - following算法相結合來規劃飛行路徑,提高了無人機自主飛行的效率和安全性,同時具有良好的擴展性。
[0015]在本發明的一個實施例中,還包括:調整模塊,當所述對應路徑點的最短距離小于所述安全半徑時,通過wall -following算法調整該路徑點及其之后的飛行路徑,并確保調整后的路徑點與所述周圍障礙物的最短距離大于所述安全距離,將調整后的多個路徑點作為飛行路徑進行飛行。
[0016]在本發明的一個實施例中,所述劃界模塊具體包括:生成單元,用于根據所述飛行環境的深度信息生成所述飛行環境的柵格地圖;識別單元,用于根據所述柵格地圖對所述柵格地圖的每個柵格進行識別;以及劃界單元,用于根據識別結果將包含障礙物的鄰接柵格相連以對所述飛行環境進行區域劃界。
[0017]在本發明的一個實施例中,所述規劃模塊具體包括:確定單元,用于根據當前位置、所述柵格地圖和所述區域劃界結果選定目標點;以及規劃單元,用于利用A*算法計算從所述當前位置到所述選定目標點的飛行路徑。
[0018]本發明附加的方面和優點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發明的實踐了解到。
【專利附圖】
【附圖說明】
[0019]本發明上述的和/或附加的方面和優點從下面結合附圖對實施例的描述中將變得明顯和容易理解,其中,
[0020]圖1為根據本發明一個實施例的無人機的控制方法的流程圖;
[0021]圖2為根據本發明實施例的路徑點可達行判斷的示意圖;
[0022]圖3為根據本發明實施例的路徑規劃示意圖;以及
[0023]圖4為根據本發明實施例的無人機的控制系統的結構示意圖。
【具體實施方式】
[0024]下面詳細描述本發明的實施例,實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發明,而不能理解為對本發明的限制。
[0025]在本發明的描述中,需要理解的是,術語“中心”、“縱向”、“橫向”、“上”、“下”、“前”、“后”、“左”、“右”、“豎直”、“水平”、“頂”、“底”、“內”、“外”等指示的方位或位置關系為基于
附圖所示的方位或位置關系,僅是為了便于描述本發明和簡化描述,而不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構造和操作,因此不能理解為對本發明的限制。此外,術語“第一”、“第二”僅用于描述目的,而不能理解為指示或暗示相對重要性。
[0026]在本發明的描述中,需要說明的是,除非另有明確的規定和限定,術語“安裝”、“相連”、“連接”應做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連,可以是兩個元件內部的連通。對于本領域的普通技術人員而言,可以具體情況理解上述術語在本發明中的具體含義。
[0027]圖1為根據本發明一個實施例的無人機的控制方法的流程圖。如圖1所示,根據本發明實施例的無人機的控制方法,包括以下步驟:掃描并生成飛行環境的柵格地圖,并根據柵格地圖對飛行環境進行區域劃界(步驟101)。根據柵格地圖和區域劃界結果,利用A*算法規劃飛行路徑(步驟103)。從規劃的飛行路徑中選取多個路徑點,分別計算多個路徑點與周圍障礙物的最短距離(步驟105)。當對應路徑點與周圍障礙物的最短距離大于安全半徑時,無人機沿該路徑點飛行(步驟107)。
[0028]根據本發明實施例的方法,根據地圖信息對飛行環境進行區域劃界,將A*算法與wall - following算法相結合來規劃飛行路徑,提高了無人機自主飛行的效率和安全性,同時具有良好的擴展性。
[0029]在步驟101中,根據飛行環境的深度信息生成飛行環境的柵格地圖。根據柵格地圖對柵格地圖的每個柵格進行識別。根據識別結果將包含障礙物的鄰接柵格相連以對飛行環境進行區域劃界。
[0030]在本發明的一個實施例中,通過二維激光測距機等機載傳感器按照一定頻率掃描無人機的飛行環境中某一高度水平面的深度信息,并根據該深度信息生成飛行環境的柵格地圖。其中,柵格地圖的信息采用二維數組存儲,數組中行列數表示該柵格在地圖中的坐標信息,用不同的數組的值來表示不同的環境信息。例如,“O”表示該柵格已被搜索且沒有障礙物,“ 100 ”表示該柵格已被探索且存在障礙物,“ -1”表示該柵格還未被探索。
[0031]在本發明的一個實施例中,根據柵格地圖的信息提取已探索區域與待探索區域的邊界,稱為未知區域邊界。具體為,遍歷柵格地圖,判斷值為“O”的柵格的四鄰域中是否有值為“-1”的柵格,若有則該柵格點為未知區域邊界點并存儲其二維坐標,進而對所有未知區域邊界點做連續性判斷。當某一邊界點八鄰域內有另一個邊界點,則這兩個邊界點連續。將二維坐標符合直線關系的連續邊界點連接起來,形成多條未知區域邊界。通過預先設定閾值T1和T2 (O < T1 < T2)選取具有合適長度L (T1 < L < T2)的邊界并計算其形心坐標作為待選探索目標點。在本發明的一個實施例中,在獲得多條未知區域邊界的形心坐標之后,選取離無人機最近的形心坐標作為探索點。
[0032]在步驟103中,根據當前位置、柵格地圖和區域劃界結果選定目標點。利用A*算法計算從當前位置到選定目標點的飛行路徑。[0033]在本發明的一個實施例中,因為受到復雜飛行環境的干擾、無人機姿態變化和傳感器噪聲的影響,可能無法正確提取未知區域邊界進而無法選擇路徑點。在這種情況下,無人機根據實時的環境信息采用Wall - following算法計算下一個可到達的飛行路徑點,以保持對復雜未知區域探索的連續性。
[0034]在步驟105和步驟107中,無人機從規劃的飛行路徑中選取多個路徑點時,分別計算路徑點與對應障礙物的最短距離,以判斷該路徑點是否可達(即是否小于安全距離)。當無人機的半徑為ra。,安全距離為rT,安全半徑rsafe = rac+rTO判斷路徑點是否可達的規則為:以該路徑點為圓心,以安全半徑rs-為半徑做圓,若該范圍內沒有障礙物,則該路徑點可達,否則為不可達。在路徑點不可達時,調整該路徑點以在滿足可達條件時以調整后的路徑點進行飛行。圖2為根據本發明實施例的路徑點可達行判斷的示意圖。如圖2所示,兩個路徑點A和B,無人機到達A點之前會先根據實時的環境地圖信息計算安全半徑范圍(如圖2中陰影所示)內是否存在障礙物(即路徑點A是否可達),確定該范圍內沒有障礙物之后向A點飛行。到達A點后,判斷B點的可達性。由于路徑點B的安全搜索范圍內出現了障礙物因此不能將路徑點作為無人機的飛行路徑中的路徑點,需要調整路徑點以躲避該障礙物。例如可以將路徑點B'選為離該障礙物距離大于安全半徑的點。
[0035]圖3為根據本發明實施例的路徑規劃示意圖。如圖3所示,無人機起始狀態下處在I點,此時對整個區域進行探索。可利用傳感器探索整個地圖信息,使用的是激光測距機,以對整個區域進行劃界。圖2中白色背景為已知區域,陰影部分為未知區域。進行區域劃界可得a、b、c、d四個邊界。從中選取邊界a上的點D作為飛行目標點。此時,利用A*算法計算出一條包括四個路徑點(路徑點1-4)的飛行路徑,其路徑點數量可根據飛行需求等具體情況或需求而定。正常情況下無人機按照I — 2 — 3 — 4的順序飛行。在飛行到路徑點I時,可同時計算路徑點2、3、4與對應障礙物之間的最短距離,并與安全距離比較以判斷是否可達(即最短距離大于安全距離則對應的路徑點為可達)。如果路徑點2可達,而路徑點3不可達,則在路徑點2調整飛行路徑,即丟棄路徑點3和路徑點4,并在路徑點2時(到達路徑點3之前)采用wall -following算法沿著當前能夠探測到的墻壁飛行,以保證探索的連續性。需要說明的是,無人機在飛行過程中不斷地進行區域劃分和路徑點的規劃和調整。
[0036]根據本發明實施例的方法,根據地圖信息對飛行環境進行區域劃界,將A*算法與wall - following算法相結合來規劃飛行路徑,提高了無人機自主飛行的效率和安全性,同時具有良好的擴展性。
[0037]圖4為根據本發明實施例的無人機的控制系統的結構示意圖。如圖4所示,根據本發明實施例的無人機的控制系統包括:劃界模塊100、規劃模塊300、計算模塊500和飛行模塊700。
[0038]具體地,劃界模塊100用于生成飛行環境的柵格地圖,并根據柵格地圖對飛行環境進行區域劃界。規劃模塊300用于根據柵格地圖和區域劃界結果,利用k*算法規劃飛行路徑。計算模塊500用于從規劃的飛行路徑中選取多個路徑點,并分別計算多個路徑點與周圍障礙物的最短距離。飛行模塊700在對應路徑點與周圍障礙物的最短距離大于安全半徑時,將該路徑點作為飛行路徑中的路徑點進行飛行。
[0039]根據本發明實施例的系統,根據地圖信息對飛行環境進行區域劃界,將A*算法與wall - following算法相結合來規劃飛行路徑,提高了無人機自主飛行的效率和安全性,同時具有良好的擴展性。
[0040]在本發明的一個實施例中,還包括:調整模塊900在對應路徑點的最短距離小于安全半徑時,通過wall-following算法調整該路徑點及其之后的飛行路徑,并確保調整后的路徑點與周圍障礙物的最短距離大于安全距離,將調整后的多個路徑點作為飛行路徑進行飛行。
[0041]根據本發明實施例的系統,根據地圖信息對飛行環境進行區域劃界,將A*算法與wall - following算法相結合規劃飛行路徑,提高了無人機自主飛行的效率和安全性,同時具有良好的擴展性。
[0042]在本發明的一個實施例中,劃分模塊100具體包括:生成單元110、識別單元120和劃界單元130。
[0043]具體而言,生成單元110用于根據飛行環境的深度信息生成飛行環境的柵格地圖。識別單元120用于根據柵格地圖對柵格地圖的每個柵格進行識別。劃界單元130用于根據識別結果將包含障礙物的鄰接柵格相連以對飛行環境進行區域劃界。
[0044]在本發明的一個實施例中,生成單元110通過二維激光測距機等機載傳感器按照一定頻率掃描無人機的飛行環境中某一高度水平面的深度信息,并根據該深度信息生成飛行環境的柵格地圖。其中,柵格地圖的地圖信息采用二維數組存儲,數組中行列數表示該柵格在地圖中的坐標信息,用不同的數組的值來表示不同的環境信息。例如,“O”表示該柵格已被搜索且沒有障礙物,“100”表示該柵格已被探索且存在障礙物,“-1”表示該柵格還未被探索。
[0045]在本發明的一個實施例中,劃界單元130根據柵格地圖的地圖信息提取已探索區域與待探索區域的邊界,稱為未知區域邊界。具體為,遍歷柵格地圖,判斷值為“O”的柵格的四鄰域中是否有值為“-1”的柵格,若有則該柵格點為未知區域邊界點并存儲其二維坐標,進而對所有未知區域邊界點做連續性判斷。當某一邊界點八鄰域內有另一個邊界點,則這兩個邊界點連續。將二維坐標符合直線關系的連續邊界點連接起來,形成多條未知區域邊界。通過預先設定閾值T1和T2 (O < T1 < T2)選取具有合適長度L (T1 < L < T2)的邊界并計算其形心坐標作為待選探索目標點。在本發明的一個實施例中,在獲得多條未知區域邊界的形心坐標之后,選取離無人機最近的形心坐標作為探索點。
[0046]在本發明的一個實施例中,規劃模塊300具體包括:確定單元310和規劃單元320。
[0047]確定單元310用于根據當前位置、柵格地圖和區域劃界結果選定目標點。規劃單元320用于利用k*算法計算從當前位置到選定目標點的飛行路徑。
[0048]計算模塊500從規劃的飛行路徑中選取多個路徑點時,分別計算路徑點與對應障礙物的最短距離,以判斷該路徑點是否可達(即是否小于安全距離)。當無人機的半徑為ra。,安全距離為rT,安全半徑匕-=rac+rTO判斷路徑點是否可達的規則為:以該路徑點為圓心,以安全半徑rs-為半徑做圓,若該范圍內沒有障礙物,則該路徑點可達,否則為不可達。在路徑點不可達時,調整該路徑點以在滿足可達條件時以調整后的路徑點進行飛行。圖2為根據本發明實施例的路徑點可達行判斷的示意圖。如圖2所示,兩個路徑點A和B,無人機到達A點之前會先根據實時的環境地圖信息計算安全半徑范圍(如圖2中陰影所示)內是否存在障礙物(即路徑點A是否可達),確定該范圍內沒有障礙物之后向A點飛行。到達A點后,判斷B點的可達性。由于路徑點B的安全搜索范圍內出現了障礙物因此不能將路徑點作為無人機的飛行路徑中的路徑點,需要由調整模塊900調整路徑點以躲避該障礙物。例如調整模塊900可將路徑點B選為離該障礙物距離大于安全半徑的點。
[0049]圖3為根據本發明實施例的路徑規劃示意圖。如圖3所示,無人機起始狀態下處在I點,此時對整個區域進行探索。生成單元110可利用傳感器探索整個地圖信息,使用的是激光測距機,以對整個區域進行劃界。圖2中白色背景為已知區域,陰影部分為未知區域。進行區域劃界可得a、b、C、d四個邊界。從中選取邊界a上的點D作為飛行目的地(D for destination)。此時,利用A*算法計算出一條包括四個路徑點(路徑點1- 4)的飛行路徑,其路徑點數量可根據飛行需求等具體情況或需求而定。正常情況下無人機按照1-2-3-4的順序飛行。在飛行到路徑點I時,可同時計算路徑點2、3、4與對應障礙物之間的最短距離,并與安全距離比較以判斷是否可達(即最短距離大于安全距離則對應的路徑點為可達)。如果路徑點2可達,而路徑點3不可達時調整模塊900在路徑點2調整飛行路徑,即丟棄路徑點3和路徑點4,并在路徑點2時(到達路徑點3之前)采用A*算法等調整飛行路徑以在調整后的飛行路徑中確定與對應障礙物的最短距離大于安全距離的多個路徑點以wall - following算法(沿墻走算法),沿著當前能夠探測到的墻壁飛行,以保證探索的連續性。需要說明的是,無人機在飛行過程中不斷地進行區域劃分和路徑點的規劃和調整。
[0050]根據本發明實施例的方法,根據地圖信息對飛行環境進行區域劃界,將k*算法與wall - following算法相結合來規劃飛行路徑,提高了無人機自主飛行的效率和安全性,同時具有良好的擴展性。
[0051]盡管上面已經示出和描述了本發明的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本發明的限制,本領域的普通技術人員在不脫離本發明的原理和宗旨的情況下在本發明的范圍內可以對上述實施例進行變化、修改、替換和變型。
【權利要求】
1.一種無人機的控制方法,其特征在于,包括以下步驟: 區域劃界步驟,掃描并生成飛行環境的柵格地圖,并根據所述柵格地圖對所述飛行環境進行區域劃界; 路徑規劃步驟,根據所述柵格地圖和區域劃界結果,利用A*算法規劃飛行路徑; 最短距離計算步驟,從規劃的所述飛行路徑中選取多個路徑點,分別計算所述多個路徑點與周圍障礙物的最短距離;以及 第一飛行步驟,當對應路徑點與所述周圍障礙物的最短距離大于安全半徑時,所述無人機沿該路徑點飛行。
2.如權利要求1所述的無人機的控制方法,其特征在于,還包括: 路徑調整步驟,當所述對應路徑點的最短距離小于所述安全半徑時,通過wall - following算法調整該路徑點及其之后的飛行路徑,并確保調整后的路徑點與周圍障礙物的最短距離大于所述安全距離;以及 第二飛行步驟,將調整后的多個路徑點作為飛行路徑進行飛行。
3.如權利要求1所述的無人機的控制方法,其特征在于,所述區域劃界步驟具體包括: 根據所述飛行環境的深度信息生成所述飛行環境的柵格地圖; 根據所述柵格地圖對所述柵格地圖的每個柵格進行識別;以及 根據識別結果將包含障礙物的鄰接柵格相連以對所述飛行環境進行區域劃界。
4.如權利要求1所述的無人機的控制方法,其特征在于,所述路徑規劃步驟具體包括: 根據當前位置、所述柵格地圖和所述區域劃界結果選定目標點; 利用k*算法計算從所述當前位置到所述選定目標點的飛行路徑。
5.一種無人機的控制系統,其特征在于,包括: 劃界模塊,用于生成飛行環境的柵格地圖,并根據所述柵格地圖對所述飛行環境進行區域劃界; 規劃模塊,用于根據所述柵格地圖和區域劃界結果,利用A*算法規劃飛行路徑; 計算模塊,用于從規劃的所述飛行路徑中選取多個路徑點,并分別計算所述多個路徑點與周圍障礙物的最短距離;以及 飛行模塊,在對應路徑點與所述周圍障礙物的最短距離大于安全半徑時,將該路徑點作為飛行路徑中的路徑點進行飛行。
6.如權利要求5所述的無人機的控制系統,其特征在于,還包括: 調整模塊,當所述對應路徑點的最短距離小于所述安全半徑時,通過wall - following算法調整該路徑點及其之后的飛行路徑,并確保調整后的路徑點與所述周圍障礙物的最短距離大于所述安全距離,將調整后的多個路徑點作為飛行路徑進行飛行。
7.如權利要求5所述的無人機的控制系統,其特征在于,所述劃界模塊具體包括: 生成單元,用于根據所述飛行環境的深度信息生成所述飛行環境的柵格地圖; 識別單元,用于根據所述柵格地圖對所述柵格地圖的每個柵格進行識別;以及劃界單元,用于根據識別結果將包含障礙物的鄰接柵格相連以對所述飛行環境進行區域劃界。
8.如權利要求5所述的無人機的控制系統,其特征在于,所述規劃模塊具體包括: 確定單元,用于根據當前位置、所述 柵格地圖和所述區域劃界結果選定目標點;以及規劃單元,用于利用A*算法計算 從所述當前位置到所述選定目標點的飛行路徑。
【文檔編號】G05D1/10GK103901892SQ201410076856
【公開日】2014年7月2日 申請日期:2014年3月4日 優先權日:2014年3月4日
【發明者】戴瓊海, 李一鵬, 蘆維寧 申請人:清華大學