IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 公立大学法人会津大学の特許一覧 ▶ 株式会社東日本計算センターの特許一覧

特許7458593複数の移動体のそれぞれの移動経路の作成方法、システムおよびプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-22
(45)【発行日】2024-04-01
(54)【発明の名称】複数の移動体のそれぞれの移動経路の作成方法、システムおよびプログラム
(51)【国際特許分類】
   G01C 21/20 20060101AFI20240325BHJP
   G08G 5/04 20060101ALI20240325BHJP
   G05D 1/46 20240101ALI20240325BHJP
   G06Q 10/047 20230101ALI20240325BHJP
【FI】
G01C21/20
G08G5/04 A
G05D1/46
G06Q10/047
【請求項の数】 14
(21)【出願番号】P 2020185960
(22)【出願日】2020-11-06
(65)【公開番号】P2022075273
(43)【公開日】2022-05-18
【審査請求日】2023-04-14
【早期審査対象出願】
(73)【特許権者】
【識別番号】506301140
【氏名又は名称】公立大学法人会津大学
(73)【特許権者】
【識別番号】512118299
【氏名又は名称】株式会社東日本計算センター
(74)【代理人】
【識別番号】100078282
【弁理士】
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100113413
【弁理士】
【氏名又は名称】森下 夏樹
(74)【代理人】
【識別番号】100181674
【弁理士】
【氏名又は名称】飯田 貴敏
(74)【代理人】
【識別番号】100181641
【弁理士】
【氏名又は名称】石川 大輔
(74)【代理人】
【識別番号】230113332
【弁護士】
【氏名又は名称】山本 健策
(72)【発明者】
【氏名】矢口 勇一
(72)【発明者】
【氏名】松本 美勝
【審査官】貞光 大樹
(56)【参考文献】
【文献】特開2013-60123(JP,A)
【文献】特開2020-57312(JP,A)
【文献】特開2019-196047(JP,A)
【文献】特開2019-82837(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G01C 21/00 - 21/36
G08G 1/00 - 99/00
G05D 1/00 - 1/87
G06Q 10/00 - 10/30
(57)【特許請求の範囲】
【請求項1】
第1の移動体と第2の移動体とを少なくとも含む複数の移動体の、それぞれの移動経路の作成方法であって、前記作成方法は、プロセッサ部を有するコンピュータシステムにおいて実行され、前記作成方法は、
(1)前記プロセッサ部が、複数の移動体のそれぞれについての出発点と複数の候補到達点とを含む移動条件を取得することであって、前記出発点は、前記第1の移動体についての第1の出発点前記第2の移動体についての第2の出発点とを含み、前記複数の候補到達点は、前記第1の移動体についての第1の複数の候補到達点と前記第2の移動体についての第2の複数の候補到達点とを含むことと、
(2)前記プロセッサ部が、前記複数の移動体のそれぞれについて直線経路を決定することであって、
前記複数の移動体のそれぞれの出発点を始点群とし、前記複数の移動体のそれぞれの複数の候補到達点を終点群として、前記始点群のうちの各出発点と前記終点群のうちのいずれか1つの候補到達点とをペアにすることと、
前記第1の出発点と、前記第1の出発点とペアにされた第1の選択候補到達点とを結ぶことにより、第1の移動体の第1の直線経路を決定することと、
前記第2の出発点と、前記第2の出発点とペアにされた第2の選択候補到達点とを結ぶことにより、第2の移動体の第2の直線経路を決定することと
を含み、前記ペアにすることは、前記始点群のうちの1つの出発点と前記終点群のうちの1つの候補到達点とを結んだ直線と、前記始点群のうちの他の1つの出発点と前記終点群のうちの他の1つの候補到達点とを結んだ直線との交差数が最小になるように、ペア交差数をカウントする枝刈付き深さ優先探索法を用いて、前記始点群のうちの各出発点と前記終点群のうちのいずれか1つとのペアを探索することを含む、ことと、
(3)前記プロセッサ部が、少なくとも第1の直線経路について、前記第1の出発点と、前記第1の選択候補到達点と、前記出発点と前記第1の選択候補到達点との間の少なくとも1つの点とを結ぶことによって、第1の修正経路を導出することと
を含み、
前記(2)直線経路を決定することは、
他のいずれの直線経路とも交差しない1本の直線を特定することと、
前記第1の出発点および前記第2の出発点と、前記第1の複数の候補到達点および前記第2の複数の候補到達点を含む候補到達点群とを含む点群を前記1本の直線で分割することと、
分割後の点群のうち、第1の出発点が含まれる点群内で、前記第1の選択候補到達点を特定することと、
分割後の点群のうち、第2の出発点が含まれる点群内で、前記第2の選択候補到達点を特定することと
を含み、前記1本の直線は、分割後の点群の少なくとも一方において、出発点の数と候補到達点の数とが同一となるように特定される、作成方法。
【請求項2】
前記交差は、2次元平面上での交差である、請求項に記載の作成方法。
【請求項3】
前記少なくとも1つの点は、前記第1の直線経路の周囲に配置された点群内の点である、請求項1~のいずれか一項に記載の作成方法。
【請求項4】
第1の移動体と第2の移動体とを少なくとも含む複数の移動体の、それぞれの移動経路の作成方法であって、前記作成方法は、プロセッサ部を有するコンピュータシステムにおいて実行され、前記作成方法は、
(1)前記プロセッサ部が、複数の移動体のそれぞれについての出発点と複数の候補到達点とを含む移動条件を取得することであって、前記出発点は、前記第1の移動体についての第1の出発点前記第2の移動体についての第2の出発点とを含み、前記複数の候補到達点は、前記第1の移動体についての第1の複数の候補到達点と前記第2の移動体についての第2の複数の候補到達点とを含むことと、
(2)前記プロセッサ部が、前記複数の移動体のそれぞれについて直線経路を決定することであって、
前記複数の移動体のそれぞれの出発点を始点群とし、前記複数の移動体のそれぞれの複数の候補到達点を終点群として、前記始点群のうちの各出発点と前記終点群のうちのいずれか1つの候補到達点とをペアにすることと、
前記第1の出発点と、前記第1の出発点とペアにされた第1の選択候補到達点とを結ぶことにより、第1の移動体の第1の直線経路を決定することと、
前記第2の出発点と、前記第2の出発点とペアにされた第2の選択候補到達点とを結ぶことにより、第2の移動体の第2の直線経路を決定することと
を含み、前記ペアにすることは、前記始点群のうちの1つの出発点と前記終点群のうちの1つの候補到達点とを結んだ直線と、前記始点群のうちの他の1つの出発点と前記終点群のうちの他の1つの候補到達点とを結んだ直線との交差数が最小になるように、ペア交差数をカウントする枝刈付き深さ優先探索法を用いて、前記始点群のうちの各出発点と前記終点群のうちのいずれか1つとのペアを探索することを含む、ことと、
(3)前記プロセッサ部が、少なくとも第1の直線経路について、前記第1の出発点と、前記第1の選択候補到達点と、前記出発点と前記第1の選択候補到達点との間の少なくとも1つの点とを結ぶことによって、第1の修正経路を導出することと
を含み、
前記少なくとも1つの点は、前記第1の直線経路の周囲に配置された点群内の点であり、
前記点群内の複数の点は、前記第1の出発点に近づくほど点が密になり、かつ/または、前記第1の選択候補到達点に近づくほど点が密になるように分布している、作成方法。
【請求項5】
前記点群は、
極座標系におけるランダムな分布を有する点群を取得することと、
前記極座標系における点群を直交座標系における点群に変換することと、
前記変換された点群を前記第1の出発点を中心に配置することと、
前記変換された点群を前記第1の選択候補到達点を中心に配置することと
によって配置される、請求項または請求項に記載の作成方法。
【請求項6】
第1の移動体と第2の移動体とを少なくとも含む複数の移動体の、それぞれの移動経路の作成方法であって、前記作成方法は、プロセッサ部を有するコンピュータシステムにおいて実行され、前記作成方法は、
(1)前記プロセッサ部が、複数の移動体のそれぞれについての出発点と複数の候補到達点とを含む移動条件を取得することであって、前記出発点は、前記第1の移動体についての第1の出発点前記第2の移動体についての第2の出発点とを含み、前記複数の候補到達点は、前記第1の移動体についての第1の複数の候補到達点と前記第2の移動体についての第2の複数の候補到達点とを含むことと、
(2)前記プロセッサ部が、前記複数の移動体のそれぞれについて直線経路を決定することであって、
前記複数の移動体のそれぞれの出発点を始点群とし、前記複数の移動体のそれぞれの複数の候補到達点を終点群として、前記始点群のうちの各出発点と前記終点群のうちのいずれか1つの候補到達点とをペアにすることと、
前記第1の出発点と、前記第1の出発点とペアにされた第1の選択候補到達点とを結ぶことにより、第1の移動体の第1の直線経路を決定することと、
前記第2の出発点と、前記第2の出発点とペアにされた第2の選択候補到達点とを結ぶことにより、第2の移動体の第2の直線経路を決定することと
を含み、前記ペアにすることは、前記始点群のうちの1つの出発点と前記終点群のうちの1つの候補到達点とを結んだ直線と、前記始点群のうちの他の1つの出発点と前記終点群のうちの他の1つの候補到達点とを結んだ直線との交差数が最小になるように、ペア交差数をカウントする枝刈付き深さ優先探索法を用いて、前記始点群のうちの各出発点と前記終点群のうちのいずれか1つとのペアを探索することを含む、ことと、
(3)前記プロセッサ部が、少なくとも第1の直線経路について、前記第1の出発点と、前記第1の選択候補到達点と、前記出発点と前記第1の選択候補到達点との間の少なくとも1つの点とを結ぶことによって、第1の修正経路を導出することと
を含み、
前記第1の修正経路を導出することは、
(i)障害物が前記第1の直線経路に与える斥力場を算出することと、
(ii)前記斥力場が最小となるように、前記第1の出発点と、前記第1の選択候補到達点と、前記少なくとも1つの点とを結ぶことと
を含む、作成方法。
【請求項7】
前記第1の修正経路を導出することは、
(a)障害物が前記第2の直線経路に与える斥力場を算出することと、
(b)前記斥力場に基づいて、前記第2の出発点と、前記第2の選択候補到達点と、前記第2の出発点と前記第2の選択候補到達点との間の少なくとも1つの点とを結ぶこととによって、第2の修正経路を導出することと、
(c)前記第2の修正経路を障害物として、前記第1の直線経路に対して、前記(i)、(ii)を行うことによって、前記第1の修正経路を導出することと
を含む、請求項に記載の作成方法。
【請求項8】
前記第1の移動体および前記第2の移動体は、前記複数の移動体からランダムに選択される、請求項1~のいずれか一項に記載の作成方法。
【請求項9】
第1の移動体と第2の移動体とを少なくとも含む複数の移動体の、それぞれの移動経路を作成するためのシステムであって、
複数の移動体のそれぞれについての出発点と複数の候補到達点とを含む移動条件を取得する取得手段であって、前記出発点は、前記第1の移動体についての第1の出発点と前記第2の移動体についての第2の出発点とを含み、前記複数の候補到達点は、前記第1の移動体についての第1の複数の候補到達点と前記第2の移動体についての第2の複数の候補到達点とを含む、取得手段と、
前記複数の移動体のそれぞれについて直線経路を決定する決定手段であって、前記決定手段は、
前記複数の移動体のそれぞれの出発点を始点群とし、前記複数の移動体のそれぞれの複数の候補到達点を終点群として、前記始点群のうちの各出発点と前記終点群のうちのいずれか1つの候補到達点とをペアにすることと、
前記第1の出発点と、前記第1の出発点とペアにされた第1の選択候補到達点とを結ぶことにより、第1の移動体の第1の直線経路を決定することと、
前記第2の出発点と、前記第2の出発点とペアにされた第2の選択候補到達点とを結ぶことにより、第2の移動体の第2の直線経路を決定することと
を行うように構成され、前記ペアにすることは、前記始点群のうちの1つの出発点と前記終点群のうちの1つの候補到達点とを結んだ直線と、前記始点群のうちの他の1つの出発点と前記終点群のうちの他の1つの候補到達点とを結んだ直線との交差数が最小になるように、ペア交差数をカウントする枝刈付き深さ優先探索法を用いて、前記始点群のうちの各出発点と前記終点群のうちのいずれか1つとのペアを探索することを含む、決定手段と、
少なくとも第1の直線経路について、前記第1の出発点と、前記第1の選択候補到達点と、前記出発点と前記第1の選択候補到達点との間の少なくとも1つの点とを結ぶことによって、第1の修正経路を導出する導出手段と
を含み、前記導出手段は、
(i)障害物が前記第1の直線経路に与える斥力場を算出するステップと、
(ii)前記斥力場が最小となるように、前記第1の出発点と、前記第1の選択候補到達点と、前記少なくとも1つの点とを結ぶステップと
を行う、システム。
【請求項10】
第1の移動体と第2の移動体とを少なくとも含む複数の移動体の、それぞれの移動経路を作成するためのプログラムであって、前記プログラムは、プロセッサ部を有するコンピュータシステムにおいて実行され、前記プログラムは、
(1)複数の移動体のそれぞれについての出発点と複数の候補到達点とを含む移動条件を取得することであって、前記出発点は、前記第1の移動体についての第1の出発点前記第2の移動体についての第2の出発点とを含み、前記複数の候補到達点は、前記第1の移動体についての第1の複数の候補到達点と前記第2の移動体についての第2の複数の候補到達点とを含むことと、
(2)前記複数の移動体のそれぞれについて直線経路を決定することであって、
前記複数の移動体のそれぞれの出発点を始点群とし、前記複数の移動体のそれぞれの複数の候補到達点を終点群として、前記始点群のうちの各出発点と前記終点群のうちのいずれか1つの候補到達点とをペアにすることと、
前記第1の出発点と、前記第1の出発点とペアにされた第1の選択候補到達点とを結ぶことにより、第1の移動体の第1の直線経路を決定することと、
前記第2の出発点と、前記第2の出発点とペアにされた第2の選択候補到達点とを結ぶことにより、第2の移動体の第2の直線経路を決定することと
を含み、前記ペアにすることは、前記始点群のうちの1つの出発点と前記終点群のうちの1つの候補到達点とを結んだ直線と、前記始点群のうちの他の1つの出発点と前記終点群のうちの他の1つの候補到達点とを結んだ直線との交差数が最小になるように、ペア交差数をカウントする枝刈付き深さ優先探索法を用いて、前記始点群のうちの各出発点と前記終点群のうちのいずれか1つとのペアを探索することを含む、ことと、
(3)少なくとも第1の直線経路について、前記第1の出発点と、前記第1の選択候補到達点と、前記出発点と前記第1の選択候補到達点との間の少なくとも1つの点とを結ぶことによって、第1の修正経路を導出することと
を含む処理を前記プロセッサ部に行わせ、前記第1の修正経路を導出することは、
(i)障害物が前記第1の直線経路に与える斥力場を算出することと、
(ii)前記斥力場が最小となるように、前記第1の出発点と、前記第1の選択候補到達点と、前記少なくとも1つの点とを結ぶことと
を含む、プログラム。
【請求項11】
第1の移動体と第2の移動体とを少なくとも含む複数の移動体の、それぞれの移動経路を作成するためのシステムであって、
複数の移動体のそれぞれについての出発点と複数の候補到達点とを含む移動条件を取得する取得手段であって、前記出発点は、前記第1の移動体についての第1の出発点と前記第2の移動体についての第2の出発点とを含み、前記複数の候補到達点は、前記第1の移動体についての第1の複数の候補到達点と前記第2の移動体についての第2の複数の候補到達点とを含む、取得手段と、
前記複数の移動体のそれぞれについて直線経路を決定する決定手段であって、前記決定手段は、
前記複数の移動体のそれぞれの出発点を始点群とし、前記複数の移動体のそれぞれの複数の候補到達点を終点群として、前記始点群のうちの各出発点と前記終点群のうちのいずれか1つの候補到達点とをペアにすることと、
前記第1の出発点と、前記第1の出発点とペアにされた第1の選択候補到達点とを結ぶことにより、第1の移動体の第1の直線経路を決定することと、
前記第2の出発点と、前記第2の出発点とペアにされた第2の選択候補到達点とを結ぶことにより、第2の移動体の第2の直線経路を決定することと
を行うように構成され、前記ペアにすることは、前記始点群のうちの1つの出発点と前記終点群のうちの1つの候補到達点とを結んだ直線と、前記始点群のうちの他の1つの出発点と前記終点群のうちの他の1つの候補到達点とを結んだ直線との交差数が最小になるように、ペア交差数をカウントする枝刈付き深さ優先探索法を用いて、前記始点群のうちの各出発点と前記終点群のうちのいずれか1つとのペアを探索することを含む、決定手段と、
少なくとも第1の直線経路について、前記第1の出発点と、前記第1の選択候補到達点と、前記出発点と前記第1の選択候補到達点との間の少なくとも1つの点とを結ぶことによって、第1の修正経路を導出する導出手段と
を含み、
前記決定手段は、
他のいずれの直線経路とも交差しない1本の直線を特定することと、
前記第1の出発点および前記第2の出発点と、前記第1の複数の候補到達点および前記第2の複数の候補到達点を含む候補到達点群とを含む点群を前記1本の直線で分割することと、
分割後の点群のうち、第1の出発点が含まれる点群内で、前記第1の選択候補到達点を特定することと、
分割後の点群のうち、第2の出発点が含まれる点群内で、前記第2の選択候補到達点を特定することと
を行い、前記1本の直線は、分割後の点群の少なくとも一方において、出発点の数と候補到達点の数とが同一となるように特定される、システム
【請求項12】
第1の移動体と第2の移動体とを少なくとも含む複数の移動体の、それぞれの移動経路を作成するためのプログラムであって、前記プログラムは、プロセッサ部を有するコンピュータシステムにおいて実行され、前記プログラムは、
(1)複数の移動体のそれぞれについての出発点と複数の候補到達点とを含む移動条件を取得することであって、前記出発点は、前記第1の移動体についての第1の出発点と前記第2の移動体についての第2の出発点とを含み、前記複数の候補到達点は、前記第1の移動体についての第1の複数の候補到達点と前記第2の移動体についての第2の複数の候補到達点とを含む、ことと、
(2)前記複数の移動体のそれぞれについて直線経路を決定することであって、
前記複数の移動体のそれぞれの出発点を始点群とし、前記複数の移動体のそれぞれの複数の候補到達点を終点群として、前記始点群のうちの各出発点と前記終点群のうちのいずれか1つの候補到達点とをペアにすることと、
前記第1の出発点と、前記第1の出発点とペアにされた第1の選択候補到達点とを結ぶことにより、第1の移動体の第1の直線経路を決定することと、
前記第2の出発点と、前記第2の出発点とペアにされた第2の選択候補到達点とを結ぶことにより、第2の移動体の第2の直線経路を決定することと
を含み、前記ペアにすることは、前記始点群のうちの1つの出発点と前記終点群のうちの1つの候補到達点とを結んだ直線と、前記始点群のうちの他の1つの出発点と前記終点群のうちの他の1つの候補到達点とを結んだ直線との交差数が最小になるように、ペア交差数をカウントする枝刈付き深さ優先探索法を用いて、前記始点群のうちの各出発点と前記終点群のうちのいずれか1つとのペアを探索することを含む、ことと、
(3)少なくとも第1の直線経路について、前記第1の出発点と、前記第1の選択候補到達点と、前記出発点と前記第1の選択候補到達点との間の少なくとも1つの点とを結ぶことによって、第1の修正経路を導出することと
を含む処理を前記プロセッサ部に行わせ、
前記(2)直線経路を決定することは、
他のいずれの直線経路とも交差しない1本の直線を特定することと、
前記第1の出発点および前記第2の出発点と、前記第1の複数の候補到達点および前記第2の複数の候補到達点を含む候補到達点群とを含む点群を前記1本の直線で分割することと、
分割後の点群のうち、第1の出発点が含まれる点群内で、前記第1の選択候補到達点を特定することと、
分割後の点群のうち、第2の出発点が含まれる点群内で、前記第2の選択候補到達点を特定することと
を含み、前記1本の直線は、分割後の点群の少なくとも一方において、出発点の数と候補到達点の数とが同一となるように特定される、プログラム
【請求項13】
第1の移動体と第2の移動体とを少なくとも含む複数の移動体の、それぞれの移動経路を作成するためのシステムであって、
複数の移動体のそれぞれについての出発点と複数の候補到達点とを含む移動条件を取得する取得手段であって、前記出発点は、前記第1の移動体についての第1の出発点と前記第2の移動体についての第2の出発点とを含み、前記複数の候補到達点は、前記第1の移動体についての第1の複数の候補到達点と前記第2の移動体についての第2の複数の候補到達点とを含む、取得手段と、
前記複数の移動体のそれぞれについて直線経路を決定する決定手段であって、前記決定手段は、
前記複数の移動体のそれぞれの出発点を始点群とし、前記複数の移動体のそれぞれの複数の候補到達点を終点群として、前記始点群のうちの各出発点と前記終点群のうちのいずれか1つの候補到達点とをペアにすることと、
前記第1の出発点と、前記第1の出発点とペアにされた第1の選択候補到達点とを結ぶことにより、第1の移動体の第1の直線経路を決定することと、
前記第2の出発点と、前記第2の出発点とペアにされた第2の選択候補到達点とを結ぶことにより、第2の移動体の第2の直線経路を決定することと
を行うように構成され、前記ペアにすることは、前記始点群のうちの1つの出発点と前記終点群のうちの1つの候補到達点とを結んだ直線と、前記始点群のうちの他の1つの出発点と前記終点群のうちの他の1つの候補到達点とを結んだ直線との交差数が最小になるように、ペア交差数をカウントする枝刈付き深さ優先探索法を用いて、前記始点群のうちの各出発点と前記終点群のうちのいずれか1つとのペアを探索することを含む、決定手段と、
少なくとも第1の直線経路について、前記第1の出発点と、前記第1の選択候補到達点と、前記出発点と前記第1の選択候補到達点との間の少なくとも1つの点とを結ぶことによって、第1の修正経路を導出する導出手段と
を含み、
前記少なくとも1つの点は、前記第1の直線経路の周囲に配置された点群内の点であり、
前記点群内の複数の点は、前記第1の出発点に近づくほど点が密になり、かつ/または、前記第1の選択候補到達点に近づくほど点が密になるように分布している、システム
【請求項14】
第1の移動体と第2の移動体とを少なくとも含む複数の移動体の、それぞれの移動経路を作成するためのプログラムであって、前記プログラムは、プロセッサ部を有するコンピュータシステムにおいて実行され、前記プログラムは、
(1)複数の移動体のそれぞれについての出発点と複数の候補到達点とを含む移動条件を取得することであって、前記出発点は、前記第1の移動体についての第1の出発点と前記第2の移動体についての第2の出発点とを含み、前記複数の候補到達点は、前記第1の移動体についての第1の複数の候補到達点と前記第2の移動体についての第2の複数の候補到達点とを含む、ことと、
(2)前記複数の移動体のそれぞれについて直線経路を決定することであって、
前記複数の移動体のそれぞれの出発点を始点群とし、前記複数の移動体のそれぞれの複数の候補到達点を終点群として、前記始点群のうちの各出発点と前記終点群のうちのいずれか1つの候補到達点とをペアにすることと、
前記第1の出発点と、前記第1の出発点とペアにされた第1の選択候補到達点とを結ぶことにより、第1の移動体の第1の直線経路を決定することと、
前記第2の出発点と、前記第2の出発点とペアにされた第2の選択候補到達点とを結ぶことにより、第2の移動体の第2の直線経路を決定することと
を含み、前記ペアにすることは、前記始点群のうちの1つの出発点と前記終点群のうちの1つの候補到達点とを結んだ直線と、前記始点群のうちの他の1つの出発点と前記終点群のうちの他の1つの候補到達点とを結んだ直線との交差数が最小になるように、ペア交差数をカウントする枝刈付き深さ優先探索法を用いて、前記始点群のうちの各出発点と前記終点群のうちのいずれか1つとのペアを探索することを含む、ことと、
(3)少なくとも第1の直線経路について、前記第1の出発点と、前記第1の選択候補到達点と、前記出発点と前記第1の選択候補到達点との間の少なくとも1つの点とを結ぶことによって、第1の修正経路を導出することと
を含む処理を前記プロセッサ部に行わせ、
前記少なくとも1つの点は、前記第1の直線経路の周囲に配置された点群内の点であり、
前記点群内の複数の点は、前記第1の出発点に近づくほど点が密になり、かつ/または、前記第1の選択候補到達点に近づくほど点が密になるように分布している、プログラム
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の移動体のそれぞれの移動経路の作成方法、システムおよびプログラムに関する。
【背景技術】
【0002】
自律航行可能な飛行体(例えば、ドローン)が、例えば、物流、点検、土木・建築、空撮等の多種多様な用途において用いられている。
【0003】
特許文献1は、ドローンを含む自律移動可能なロボットの経路を動的に計画するシステムを開示している。
【先行技術文献】
【特許文献】
【0004】
【文献】特表2020-502630号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明の発明者は、自律航行可能な飛行体または自律移動可能なロボット等の移動体を複数個同時に利用することにより、それらの移動体の用途の幅をさらに広げることができると考えた。
【0006】
しかしながら、複数の移動体の衝突を最小限にする安全な移動経路を自動的に作成する手法は確立されていない。
【0007】
本発明は上記事情に鑑みてなされたものであり、複数の移動体の衝突を最小限にする、複数の移動体のそれぞれの移動経路の作成方法、システムおよびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明は、例えば、以下の項目を提供する。
(項目1)
第1の移動体と第2の移動体とを少なくとも含む複数の移動体の、それぞれの移動経路の作成方法であって、
(1)前記第1の移動体についての第1の出発点および第1の複数の候補到達点と、前記第2の移動体についての第2の出発点および第2の複数の候補到達点とを含む移動条件を取得することと、
(2)前記複数の移動体のそれぞれについて直線経路を決定することであって、
前記第1の出発点と、前記第1の複数の候補到達点のうちの1つの第1の選択候補到達点とを結ぶことにより、第1の移動体の第1の直線経路を決定することと、
前記第2の出発点と、前記第2の複数の候補到達点のうちの1つの第2の選択候補到達点とを結ぶことにより、第2の移動体の第2の直線経路を決定することと
を含む、直線経路を決定することと、
(3)少なくとも第1の直線経路について、前記第1の出発点と、前記第1の選択候補到達点と、前記出発点と前記第1の選択候補到達点との間の少なくとも1つの点とを結ぶことによって、第1の修正経路を導出することと
を含む作成方法。
(項目2)
前記(2)直線経路を決定することは、前記第1の直線経路と前記第2の直線経路との交差が最小となるように、前記第1の直線経路および前記第2の直線経路のそれぞれを決定することを含む、項目1に記載の作成方法。
(項目3)
前記交差は、2次元平面上での交差である、項目2に記載の作成方法。
(項目4)
前記(2)直線経路を決定することは、
他のいずれの直線経路とも交差しない1本の直線を特定することと、
前記第1の出発点および前記第2の出発点と、前記第1の複数の候補到達点および前記第2の複数の候補到達点を含む候補到達点群とを含む点群を前記1本の直線で分割することと、
分割後の点群のうち、第1の出発点が含まれる点群内で、前記第1の選択候補到達点を特定することと、
分割後の点群のうち、第2の出発点が含まれる点群内で、前記第2の選択候補到達点を特定することと
を含む、項目1~3のいずれか一項に記載の作成方法。
(項目5)
前記少なくとも1つの点は、前記第1の直線経路の周囲に配置された点群内の点である、項目1~4のいずれか一項に記載の作成方法。
(項目6)
前記点群内の複数の点は、前記第1の出発点に近づくほど点が密になり、かつ/または、前記第1の選択候補到達点に近づくほど点が密になるように分布している、項目5に記載の作成方法。
(項目7)
前記点群は、
極座標系におけるランダムな分布を有する点群を取得することと、
前記極座標系における点群を直交座標系における点群に変換することと、
前記変換された点群を前記第1の出発点を中心に配置することと、
前記変換された点群を前記第1の選択候補到達点を中心に配置することと
によって配置される、項目5または項目6に記載の作成方法。
(項目8)
前記第1の修正経路を導出することは、
(i)障害物が前記第1の直線経路に与える斥力場を算出することと、
(ii)前記斥力場が最小となるように、前記第1の出発点と、前記第1の選択候補到達点と、前記少なくとも1つの点とを結ぶことと
を含む、項目1~7のいずれか一項に記載の作成方法。
(項目9)
前記第1の修正経路を導出することは、
(a)障害物が前記第2の直線経路に与える斥力場を算出することと、
(b)前記斥力場に基づいて、前記第2の出発点と、前記第2の選択候補到達点と、前記第2の出発点と前記第2の選択候補到達点との間の少なくとも1つの点とを結ぶこととによって、第2の修正経路を導出することと、
(c)前記第2の修正経路を障害物として、前記第1の直線経路に対して、前記(i)、(ii)を行うことによって、前記第1の修正経路を導出することと
を含む、項目8に記載の作成方法。
(項目10)
前記第1の移動体および前記第2の移動体は、前記複数の移動体からランダムに選択される、項目1~9のいずれか一項に記載の作成方法。
(項目11)
第1の移動体と第2の移動体とを少なくとも含む複数の移動体の、それぞれの移動経路を作成するためのシステムであって、
前記第1の移動体についての第1の出発点および第1の複数の候補到達点と、前記第2の移動体についての第2の出発点および第2の複数の候補到達点とを含む移動条件を取得する取得手段と、
前記複数の移動体のそれぞれについて直線経路を決定する決定手段であって、
前記第1の出発点と、前記第1の複数の候補到達点のうちの1つの第1の選択候補到達点とを結ぶことにより、第1の移動体の第1の直線経路を決定することと、
前記第2の出発点と、前記第2の複数の候補到達点のうちの1つの第2の選択候補到達点とを結ぶことにより、第2の移動体の第2の直線経路を決定することと
を行うように構成されている決定手段と、
少なくとも第1の直線経路について、前記第1の出発点と、前記第1の選択候補到達点と、前記出発点と前記第1の選択候補到達点との間の少なくとも1つの点とを結ぶことによって、第1の修正経路を導出する導出手段と
を含むシステム。
(項目12)
第1の移動体と第2の移動体とを少なくとも含む複数の移動体の、それぞれの移動経路を作成するためのプログラムであって、前記プログラムは、プロセッサ部を有するコンピュータシステムにおいて実行され、前記プログラムは、
(1)前記第1の移動体についての第1の出発点および第1の複数の候補到達点と、前記第2の移動体についての第2の出発点および第2の複数の候補到達点とを含む移動条件を取得することと、
(2)前記複数の移動体のそれぞれについて直線経路を決定することであって、
前記第1の出発点と、前記第1の複数の候補到達点のうちの1つの第1の選択候補到達点とを結ぶことにより、第1の移動体の第1の直線経路を決定することと、
前記第2の出発点と、前記第2の複数の候補到達点のうちの1つの第2の選択候補到達点とを結ぶことにより、第2の移動体の第2の直線経路を決定することと
を含む、直線経路を決定することと、
(3)少なくとも第1の直線経路について、前記第1の出発点と、前記第1の選択候補到達点と、前記出発点と前記第1の選択候補到達点との間の少なくとも1つの点とを結ぶことによって、第1の修正経路を導出することと
を含む処理を前記プロセッサ部に行わせる、プログラム。
【発明の効果】
【0009】
本発明によれば、複数の移動体の衝突を最小限にする、複数の移動体のそれぞれの移動経路の作成方法、システムおよびプログラムを提供することができる。複数の移動体は、これらの移動経路に辿ることで、衝突を最小限にして安全に移動することができるようになる。
【図面の簡単な説明】
【0010】
図1】複数の飛行体10を利用するフローの一例を示す図
図2】複数の移動体のそれぞれの移動経路を作成するためのシステム100の構成の一例を示す図
図3】プロセッサ部120の構成の一例を示す図
図4A】ペア交差数をカウントする枝刈付き深さ優先探索法を説明する図
図4B】Sequential Partition法のステップを概略的に示す図
図5A】点群を直線経路の周囲に配置する方法を概略的に示す図
図5B】点群を直線経路の周囲に配置する方法を概略的に示す図
図6A】A*アルゴリズムによって出発点と選択候補到達点との間の少なくとも1つの点を特定し、修正経路を導出するフローを概略的に示す図
図6B】A*アルゴリズムによって出発点と選択候補到達点との間の少なくとも1つの点を特定し、修正経路を導出するフローを概略的に示す図
図6C】A*アルゴリズムによって出発点と選択候補到達点との間の少なくとも1つの点を特定し、修正経路を導出するフローを概略的に示す図
図6D】A*アルゴリズムによって出発点と選択候補到達点との間の少なくとも1つの点を特定し、修正経路を導出するフローを概略的に示す図
図6E】A*アルゴリズムによって出発点と選択候補到達点との間の少なくとも1つの点を特定し、修正経路を導出するフローを概略的に示す図
図7】複数の移動体のそれぞれの移動経路を作成するためのシステム100による処理700の一例を示すフローチャート
図8】出発点と選択候補到達点とを結ぶ直線経路の周囲に点群を配置するための処理800の一例を示すフローチャート
図9】修正経路を導出するための処理900の一例を示すフローチャート
図10】複数の移動体のそれぞれの移動経路を作成するためのシステム100を利用して、複数の移動体のそれぞれの移動経路を計画するフローの一例を示すフローチャート
図11】複数の移動体のそれぞれの移動経路を作成するための処理700を実装するためのアプリケーションのユーザインターフェース1100の一例
図12】複数の移動体のそれぞれの移動経路を作成するための処理700を実装するためのアプリケーションの操作方法の一例を示すフローチャート
図13】ユーザに提示される飛行経路の3D表示を含む画面1300の一例
【発明を実施するための形態】
【0011】
以下、図面を参照しながら、本発明の実施の形態を説明する。
【0012】
本明細書において、「約」とは、後に続く数字の±10%の範囲内をいう。
【0013】
1.複数の飛行体を利用するフロー
図1は、移動体の実施形態として複数の飛行体10を利用するフローの一例を概略的に示す。
【0014】
ここでは、複数の飛行体10(例えば、無人航空機(Unnmaned Aerial Vehicle))を目的地Gで利用する(例えば、目的地の気象を観測する、目的地で環境を計測する、目的地に荷物を運ぶ等)ために、出発地Sから目的地Gまで複数の飛行体10を自律航行させることを例に説明する。
【0015】
ステップS1では、ユーザUは、初期設定として航行条件をコンピュータシステム100に入力する。航行条件は、少なくとも出発地Sの情報、目的地Gの情報を含む。出発地Sの情報は、例えば、複数の飛行体10の各々の出発点の位置座標として表される。目的地Gの情報は、例えば、複数の飛行体10の各々の到達点の位置座標として表される。航行条件は、航行させる飛行体の数、航行範囲等の情報も含み得る。
【0016】
航行条件が入力されると、コンピュータシステム100は、航行条件に基づいて、複数の飛行体10のそれぞれの航行経路を作成する。このとき、コンピュータシステム100は、複数の飛行体10のそれぞれの航行経路が互いに最小限に干渉する航行経路を作成することができる。
【0017】
ステップS2では、コンピュータシステム100は、作成された航行経路に従って航行するように、複数の飛行体10のそれぞれに命令する。
【0018】
ステップS3では、複数の飛行体10のそれぞれは、コンピュータシステム100によって作成されたそれぞれの航行経路に従って、出発地Sから目的地Gまで航行する。コンピュータシステム100によって作成された複数の航行経路は、干渉が最小限であるため、複数の飛行体10のそれぞれは、出発地Sから目的地Gまで安全に航行することができる。
【0019】
複数の飛行体10が目的地Gに到達すると、ステップS4では、複数の飛行体10が用途に応じた作業内容で利用され得る。例えば、複数の飛行体10に搭載された観測機器を用いて、目的地Gの気象が観測される。例えば、複数の飛行体10に搭載された計測機器を用いて、目的地Gの環境が計測される。例えば、複数の飛行体10に積載された荷物が目的地Gに下ろされる。
【0020】
このように、コンピュータシステム100によって作成された航行経路により、出発地Sから目的地Gまでの安全な航行が可能となり、目的地Gでの複数の飛行体10の利用が促進される。これにより、複数の飛行体10の目的地Gでの用途の幅を広げることができる。
【0021】
上述した例では、移動体として飛行体10について説明したが、本発明は、飛行体に限定されず、任意の移動体に適用されることができる。任意の移動体は、例えば、地上を移動する移動体、地中を移動する移動体、水上を移動する移動体、水中を移動する移動体、宇宙空間を移動する移動体等を含むが、これらに限定されない。また、移動体は、例えば、操縦入力なしに自律移動可能であってもよいし、操縦入力によって移動可能であってもよい。操縦入力は、例えば、移動体に搭乗している操作者によって入力されてもよいし、移動体の外部の操作者によって入力されてもよいし、移動体の外部のコンピュータシステムによって入力されてもよい。
【0022】
上述したコンピュータシステム100は、以下に説明する複数の移動体のそれぞれの移動経路を作成するためのシステムによって実装され得る。
【0023】
2.複数の移動体のそれぞれの移動経路を作成するためのシステムの構成
図2は、複数の移動体のそれぞれの移動経路を作成するためのシステム100の構成の一例を示す。
【0024】
システム100は、インターフェース部110と、プロセッサ部120と、メモリ130部とを備える。システム100は、データベース部200に接続されている。
【0025】
インターフェース部110は、システム100の外部と情報のやり取りを行う。システム100のプロセッサ部120は、インターフェース部110を介して、システム100の外部から情報を受信することが可能であり、システム100の外部に情報を送信することが可能である。インターフェース部110は、任意の形式で情報のやり取りを行うことができる。
【0026】
インターフェース部110は、例えば、システム100に情報を入力することを可能にする入力部を備える。入力部が、どのような態様でシステム100に情報を入力することを可能にするかは問わない。例えば、入力部がタッチパネルである場合には、ユーザがタッチパネルにタッチすることによって情報を入力するようにしてもよい。あるいは、入力部がマウスである場合には、ユーザがマウスを操作することによって情報を入力するようにしてもよい。あるいは、入力部がキーボードである場合には、ユーザがキーボードのキーを押下することによって情報を入力するようにしてもよい。あるいは、入力部がマイクである場合には、ユーザがマイクに音声を入力することによって情報を入力するようにしてもよい。あるいは、入力部がカメラである場合には、カメラが撮像した情報を入力するようにしてもよい。あるいは、入力部がデータ読み取り装置である場合には、システム100に接続された記憶媒体から情報を読み取ることによって情報を入力するようにしてもよい。あるいは、入力部が受信器である場合、受信器がネットワークを介してシステム100の外部から情報を受信することにより入力してもよい。この場合、ネットワークの種類は問わない。例えば、受信器は、インターネットを介して情報を受信してもよいし、LANを介して情報を受信してもよい。
【0027】
例えば、インターフェース部110の入力部は、ユーザの端末装置から移動条件の入力を受け付ける。例えば、インターフェース部110の入力部は、データベース部200から移動条件の入力を受け付ける。
【0028】
インターフェース部110は、例えば、システム100から情報を出力することを可能にする出力部を備える。出力部が、どのような態様でシステム100から情報を出力することを可能にするかは問わない。例えば、出力部が表示画面である場合、表示画面に情報を出力するようにしてもよい。あるいは、出力部がスピーカである場合には、スピーカからの音声によって情報を出力するようにしてもよい。あるいは、出力部がデータ書き込み装置である場合、システム100に接続された記憶媒体に情報を書き込むことによって情報を出力するようにしてもよい。あるいは、出力部が送信器である場合、送信器がネットワークを介してシステム100の外部に情報を送信することにより出力してもよい。この場合、ネットワークの種類は問わない。例えば、送信器は、インターネットを介して情報を送信してもよいし、LANを介して情報を送信してもよい。
【0029】
例えば、インターフェース部110の出力部は、複数の移動体のそれぞれに、作成されたそれぞれの移動経路を送信する。例えば、インターフェース部110の出力部は、複数の移動体を制御するコントローラに、作成された移動経路を送信する。
【0030】
プロセッサ部120は、システム100の処理を実行し、かつ、システム100全体の動作を制御する。プロセッサ部120は、メモリ部130に格納されているプログラムを読み出し、そのプログラムを実行する。これにより、システム100を所望のステップを実行するシステムとして機能させることが可能である。プロセッサ部120は、単一のプロセッサによって実装されてもよいし、複数のプロセッサによって実装されてもよい。
【0031】
メモリ部130は、システム100の処理を実行するために必要とされるプログラムやそのプログラムの実行に必要とされるデータ等を格納する。メモリ部130は、複数の移動体のそれぞれの移動経路を作成するための処理をプロセッサ部120に行わせるためのプログラム(例えば、後述する図7図8図9に示される処理を実現するプログラム)を格納してもよい。ここで、プログラムをどのようにしてメモリ部130に格納するかは問わない。例えば、プログラムは、メモリ部130にプリインストールされていてもよい。あるいは、プログラムは、ネットワークを経由してダウンロードされることによってメモリ部130にインストールされるようにしてもよい。この場合、ネットワークの種類は問わない。メモリ部130は、任意の記憶手段によって実装され得る。
【0032】
データベース部200には、例えば、地理的情報が格納されている。地理的情報は、例えば、地形に関する情報、建造物に関する情報等を含み得る。地理的情報は、飛行禁止区域に関する情報も含み得る。
【0033】
データベース部200には、例えば、ユーザによって入力された移動条件が格納されてもよいし、例えば、過去に作成された移動経路が格納されてもよい。
【0034】
図2に示される例では、データベース部200は、システム100の外部に設けられているが、本発明はこれに限定されない。データベース部200をシステム100の内部に設けることも可能である。このとき、データベース部200は、メモリ部130を実装する記憶手段と同一の記憶手段によって実装されてもよいし、メモリ部130を実装する記憶手段とは別の記憶手段によって実装されてもよい。いずれにせよ、データベース部200は、システム100のための格納部として構成される。データベース部200の構成は、特定のハードウェア構成に限定されない。例えば、データベース部200は、単一のハードウェア部品で構成されてもよいし、複数のハードウェア部品で構成されてもよい。例えば、データベース部200は、システム100の外付けハードディスク装置として構成されてもよいし、ネットワークを介して接続されるクラウド上のストレージとして構成されてもよい。
【0035】
図3は、プロセッサ部120の構成の一例を示す。
【0036】
プロセッサ部120は、取得手段121と、決定手段122と、導出手段123とを備える。
【0037】
取得手段121は、インターフェース部110を介して、システム100の外部から情報を取得するように構成されている。
【0038】
取得手段121は、移動条件を取得するように構成されている。移動条件は、複数の移動体のそれぞれについて、出発点と複数の候補到達点とを含む。出発点および到達点は、例えば、(緯度、経度、高度)の座標で表され得る。例えば、移動条件は、複数の移動体のうちの第1の移動体についての第1の出発点および第1の複数の候補到達点、および、複数の移動体のうちの第2の移動体についての第2の出発点および第2の複数の候補到達点を含む。
【0039】
移動条件は、例えば、
・移動体の数
・移動範囲の一辺の長さ
・航路計画を行う地図上の範囲
・直線移動を行う最長距離(すなわち、決定され得る直線経路の長さ)
・直線経路の周囲に配置される点群内の点の数
・障害物点群のサンプリング距離(すなわち、障害物を複数の障害物点の集合であるとみなす場合に、障害物上に点をサンプリングする間隔。例えば、障害物点群のサンプリング距離は、格子サンプリング(格子内に属する1点をサンプリングする)場合の格子の一辺の長さであり得る。)
・パスに対するサンプリング距離(すなわち、斥力場を求める際に各直線経路から複数の点をサンプリングするときの各点間の距離)
・移動体半径(例えば移動体が円形または球形でない場合、移動体の中心から移動体の最外点までの距離をいう。)
・障害物と移動体との安定離隔距離
のうちの少なくとも1つをさらに含み得る。
【0040】
移動条件は、例えば、ユーザによって入力されたものであり得る。ここで、入力の仕方は問わない。例えば、ユーザは、インターフェース部110を介して移動条件をシステム100に直接入力するようにしてもよいし、ユーザは、移動条件を端末装置に入力してもよい。端末装置に入力された移動条件は、例えば、ネットワークを介してシステム100に入力され得る。取得手段121は、入力された移動条件を取得し得る。
【0041】
移動条件は、例えば、データベース部200に格納されたものであり得る。移動条件は、例えば、ユーザによって予めデータベース部200に格納され得る。取得手段121は、データベース部200から、移動条件を取得し得る。
【0042】
決定手段122は、複数の移動体のそれぞれについて、それぞれの直線経路を決定するように構成されている。
【0043】
決定手段122は、複数の移動体のそれぞれについて、複数の候補到達点のうちの1つを選択し、出発点と、複数の候補到達点のうちの選択された候補到達点を結ぶことにより、複数の移動体のそれぞれの直線経路を決定することができる。選択された候補到達点は、「選択候補到達点」とも呼ばれる。例えば、決定手段122は、第1の移動体について、第1の出発点と、第1の複数の候補到達点のうちの1つの第1の選択候補到達点とを結ぶことにより、第1の移動体の第1の直線経路を決定することができ、第2の移動体について、第2の出発点と、第2の複数の候補到達点のうちの1つの第2の選択候補到達点とを結ぶことにより、第2の移動体の第2の直線経路を決定することができる。このとき、決定手段122は、第1の直線経路と第2の直線経路との交差が最小となるように、第1の直線経路および第2の直線経路のそれぞれを決定することが好ましい。第1の直線経路と第2の直線経路との交差は、3次元空間内での交差であってもよいし、2次元平面上での交差であってもよい。好ましくは、決定手段122は、第1の直線経路と第2の直線経路との2次元平面上での交差が最小となるように、第1の直線経路および第2の直線経路のそれぞれを決定する。例えば、3次元空間内では交差しないが2次元平面へ投影した場合に交差する2つの直線経路のそれぞれに沿って2つの移動体が移動する場合、下降流/上昇流の発生または機体異常の発生により急降下/急上昇が起きた場合に、移動体同士が衝突してしまう可能性がある。2次元平面上での交差が最小とすることにより、このような可能性までも排除または低減することができる。なお、出発点および候補到達点はそれぞれ3次元空間内の点であり得るが、2次元平面(例えば、x-y平面)に投影することにより、出発点および候補到達点を2次元平面上で扱うことができる。
【0044】
決定手段122は、任意のアルゴリズムを用いて直線経路を決定することができる。
【0045】
一実施形態において、決定手段122は、二部グラフを利用するアルゴリズムを用いて、直線経路を決定することができる。二部グラフを利用するアルゴリズムでは、複数の移動体のそれぞれの出発点を始点群とし、複数の移動体のそれぞれの複数の候補到達点を終点群として、始点群のうちの1つと終点群のうちの1つとがペアにされる。決定手段122は、始点群のうちの1つと終点群のうちの1つとを結んだ直線と、始点群のうちの他の1つと終点群のうちの他の1つとを結んだそれぞれの直線との交差が最小になるように、始点群のうちの各々と終点群のうちのいずれかとをペアにする。すなわち、決定手段122は、最小交差問題を解くことになる。ペアにされた始点群のうちの1つ、終点群のうちの1つが、それぞれ出発点、選択候補到達点に対応し、それぞれを結んだ直線が直線経路に対応する。
【0046】
決定手段122は、二部グラフを利用するアルゴリズムとして、ペア交差数をカウントする枝刈付き深さ優先探索法を利用する。ペア交差数をカウントする枝刈付き深さ優先探索法は、本発明者が開発した手法である。ペア交差数をカウントする枝刈付き深さ優先探索法は、最小交差となるペアを探索するために始点群のうちの1つと終点群のうちの1つとを逐一検証する手法に比べて、計算量を大幅に削減することができ、高速で計算を行うことができる点で有用である。
【0047】
ペア交差数をカウントする枝刈付き深さ優先探索法は、始点群のうちの1つと終点群のうちの1つとを結んだ直線と、始点群のうちの他の1つと終点群のうちの他の1つとを結んだそれぞれの直線との交差が最小になるように、始点群のうちの各々と終点群のうちのいずれかとのペアを探索する際に、交差数を既に判定された複数のペアをひとまとまりに扱い、それらのひとまとまりについて既に得られている計算結果を使用しながら(枝刈りしながら)、深さ優先探索(depth-first search、DFS)を行う手法である。
【0048】
枝刈りでは、交差数を既に判定されたペア群がその交差数とともにリストに記憶され、リスト内のペア群の交差数は、次の計算において活用され得る。例えば、始点群のうちの第1の点と終点群のうちの第1の点との第1のペアおよび始点群のうちの第2の点と終点群のうちの第2の点との第2のペアが、交差数1と判定された場合、交差数{(第1の点,第1の点),(第2の点,第2の点)}=1としてリストに記憶される。以降の計算では、始点群のうちの第1の点と終点群のうちの第1の点との第1のペアおよび始点群のうちの第2の点と終点群のうちの第2の点との第2のペアの交差数を改めて計算する必要はなく、リストから得られた交差数1を代用することができる。これにより、計算量を抑えることができる。
【0049】
ペア交差数をカウントする枝刈付き深さ優先探索法では、以下の処理がループで繰り返される。
●始点群内の点と終点群内の点との複数のペア候補の中から、Priority Queueにより、ペア候補の組み合わせを1つ取り出す。組み合わせは、2以上のペア候補を含む。Priority Queueは、最も多くのペア候補を含み、かつ、最も少ない交差数を有する組み合わせを抽出するように設定されたアルゴリズムである。
・取り出した組み合わせを『到達済み』としてマークする。
・取り出した組み合わせに含まれるペア候補の総数が出発点の数(すなわち、移動体の数)と同一であれば、ループを終了する。
・取り出した組み合わせのサブセットは『少なくとも現在の交差数よりも多くならない』ことを前提に、到達済みとして交差数をマークする(既にリストに含まれており、リスト内の交差数より交差数が少なくならない場合は更新しない)。
●組み合わせに含まれていない始点群内の点および終点群内の点で構成される可能性のあるペアを全て列挙し、組み合わせと比較して交差数を計測する。
・その際、組み合わせ内のペアの1つと列挙されたペアの1つとを選択し、それらの交差判定を行う。このとき、選択されたペア同士の交差数を既に計算していれば、リストから抽出し、交差数を足し込む。まだ計算していなければ、交差した場合に交差数=+1をし、交差しなければそのままにして、リストに情報を挿入する。
【0050】
最終的に得られた組み合わせが、最小交差を有するペアの組み合わせとなる。
【0051】
図4Aに示される、より具体的な例を用いて、ペア交差数をカウントする枝刈付き深さ優先探索法を説明する。
【0052】
図4A(a)に示されるように、5つの出発点を含む始点群と、5つの候補到達点を含む終点群とについて、始点群のうちの1つと終点群のうちの1つとを結んだ直線と、始点群のうちの他の1つと終点群のうちの他の1つとを結んだそれぞれの直線との交差が最小になるように、始点群のうちの各々と終点群のうちのいずれかとをペアにすることを考える。
【0053】
まず、第1の出発点と第1の出発点とのペア(1,1)と、第2の出発点と第2の出発点とのペア(2,2)との交差数を計算する。図4Aに示される例では、これらのペアは、交差していないので、
交差数{(1,1),(2,2)}=0
としてリストに記憶される。
【0054】
次に、第1の出発点と第1の出発点とのペア(1,1)と、第2の出発点と第2の出発点とのペア(2,2)と、第3の出発点と第3の出発点とのペア(3,3)との交差数を計算する。図4Aに示される例では、これらのペアは、交差していないので、
交差数{(1,1),(3,3)}=0
交差数{(2,2),(3,3)}=0
交差数{(1,1),(2,2),(3,3)}=0
としてリストに記憶される。このとき、{(1,1),(2,2)}=0であると既に計算されてリストに記憶されているので、第1の出発点と第1の出発点とのペア(1,1)と、第2の出発点と第2の出発点とのペア(2,2)との交差数を改めて計算する必要はなく、第1の出発点と第1の出発点とのペア(1,1)と、第3の出発点と第3の出発点とのペア(3,3)との交差数、および、第2の出発点と第2の出発点とのペア(2,2)と、第3の出発点と第3の出発点とのペア(3,3)との交差数を計算することで足りる。このようにして枝刈りを行うことにより、計算量を著しく低減することができる。
【0055】
次に、第1の出発点と第1の出発点とのペア(1,1)と、第2の出発点と第2の出発点とのペア(2,2)と、第3の出発点と第3の出発点とのペア(3,3)、第4の出発点と第4の出発点とのペア(4,4)との交差数を計算する。図4Aに示される例では、これらのペアは、交差していないので、
交差数{(1,1),(4,4)}=0
交差数{(2,2),(4,4)}=0
交差数{(3,3),(4,4)}=0
交差数{(1,1),(2,2),(4,4)}=0
交差数{(1,1),(3,3),(4,4)}=0
交差数{(2,2),(3,3),(4,4)}=0
交差数{(1,1),(2,2),(3,3),(4,4)}=0
としてリストに記憶される。このとき、{(1,1),(2,2),(3,3)}=0であると既に計算されてリストに記憶されているので、第1の出発点と第1の出発点とのペア(1,1)と、第2の出発点と第2の出発点とのペア(2,2)と、第3の出発点と第3の出発点とのペア(3,3)との交差数を改めて計算する必要はなく、第1の出発点と第1の出発点とのペア(1,1)と、第4の出発点と第4の出発点とのペア(4,4)との交差数、第2の出発点と第2の出発点とのペア(2,2)と、第4の出発点と第4の出発点とのペア(4,4)との交差数、および、第3の出発点と第3の出発点とのペア(3,3)と第4の出発点と第4の出発点とのペア(4,4)との交差数を計算することで足りる。
【0056】
次に、図4A(b)に示されるように、第1の出発点と第1の出発点とのペア(1,1)と、第2の出発点と第2の出発点とのペア(2,2)と、第3の出発点と第3の出発点とのペア(3,3)、第4の出発点と第4の出発点とのペア(4,4)、第5の出発点と第5の出発点とのペア(5,5)との交差数を計算する。図4A(b)に示される例では、これらのペアは、1回の交差を有しているので、
交差数{(1,1),(2,2),(3,3),(4,4),(5,5)}=1
としてリストに記憶される。このとき、{(1,1),(2,2),(3,3),(4,4)}=0であると既に計算されてリストに記憶されているので、第1の出発点と第1の出発点とのペア(1,1)と、第2の出発点と第2の出発点とのペア(2,2)と、第3の出発点と第3の出発点とのペア(3,3)と、第4の出発点と第4の出発点とのペア(4,4)との交差数を改めて計算する必要はなく、第1の出発点と第1の出発点とのペア(1,1)と、第5の出発点と第5の出発点とのペア(5,5)との交差数、第2の出発点と第2の出発点とのペア(2,2)と、第5の出発点と第5の出発点とのペア(5,5)との交差数、第3の出発点と第3の出発点とのペア(3,3)と、第5の出発点と第5の出発点とのペア(5,5)との交差数、および、第4の出発点と第4の出発点とのペア(4,4)と、第5の出発点と第5の出発点とのペア(5,5)との交差数を計算することで足りる。
【0057】
次に、深さ優先探索の観点から、図4A(c)に示されるように、第1の出発点と第1の出発点とのペア(1,1)と、第2の出発点と第2の出発点とのペア(2,2)と、第3の出発点と第3の出発点とのペア(3,3)、第4の出発点と第5の出発点とのペア(4,5)、第5の出発点と第4の出発点とのペア(5,4)との交差数を計算する。図4A(c)に示される例では、これらのペアは、交差していないので、
交差数{(1,1),(2,2),(3,3),(4,5),(5,4)}=0
としてリストに記憶される。このとき、{(1,1),(2,2),(3,3)}=0であると既に計算されてリストに記憶されているので、第1の出発点と第1の出発点とのペア(1,1)と、第2の出発点と第2の出発点とのペア(2,2)と、第3の出発点と第3の出発点とのペア(3,3)との交差数を改めて計算する必要はなく、第1の出発点と第1の出発点とのペア(1,1)と、第4の出発点と第5の出発点とのペア(4,5)との交差数、第2の出発点と第2の出発点とのペア(2,2)と、第4の出発点と第5の出発点とのペア(4,5)との交差数、第3の出発点と第3の出発点とのペア(3,3)と第4の出発点と第5の出発点とのペア(4,5)との交差数、第1の出発点と第1の出発点とのペア(1,1)と、第5の出発点と第4の出発点とのペア(5,4)との交差数、第2の出発点と第2の出発点とのペア(2,2)と、第5の出発点と第4の出発点とのペア(5,4)との交差数、第3の出発点と第3の出発点とのペア(3,3)と、第5の出発点と第4の出発点とのペア(5,4)との交差数および、第4の出発点と第5の出発点とのペア(4,5)と、第5の出発点と第4の出発点とのペア(5,4)との交差数を計算することで足りる。
【0058】
出発点と同数の5つのペアについて、交差数が最小であると判断されるまで、深さ優先探索を続ける。例えば、さらなる探索を行っても現在得られている最小交差数よりも小さくならないと判断される場合には、処理を終了することができる。本例では、最小0の交差数を得られているため、ここで処理を終了することができる。
【0059】
決定手段122は、二部グラフを利用するアルゴリズムにおいて、最小交差問題を解く前に、Sequential Partition法を利用して、最小交差問題を部分問題に切り分けるようにしてもよい。Sequential Partition法は、本発明者が開発した手法である。最小交差問題を部分問題に切り分けることにより、最小交差問題を解くときの計算量を著しく低減することができる。全体の点に対して最小交差問題を解く場合には、例えば、ペア交差数をカウントする枝刈付き深さ優先探索法を利用すると、計算量がO(N)となり得るが、最小交差問題の部分問題を解く、すなわち、点群の複数のサブセットの各々に対して最小交差問題を解くようにすることにより、Nを小さくすることができるからである(Nは、出発点の数)。一つの実施形態において、移動体の数を15台として計算した場合、全体の点に対して最小交差問題を計算するには1日以上かかるが、Sequential Partition法を用いた場合20分程度で計算することができる。
【0060】
図4Bは、Sequential Partition法のステップを概略的に図示する。
【0061】
図4B(a)に示されるように、複数の移動体のそれぞれの出発点および複数の移動体のそれぞれの複数の候補到達点の2次元分布が与えられたとする。出発点および候補到達点はそれぞれ3次元空間内の点であり得るが、図4B(a)に示される2次元分布は、出発点および候補到達点をx-y平面に投影した分布である。
【0062】
次いで、図4B(b)に示されるように、図4B(a)に示される2次元分布の軸を回転させ、x軸方向に横長に並ぶような形の分布に変換する。これは、例えば、任意の多変量解析によって行われることができ、例えば、2次元分布をKL展開(ベクトルの分布を最も良く近似する部分空間を算出)することによって行われる。このとき、x軸は固有値の1次元目に対応し、y軸は固有値の2次元目に対応する。
【0063】
次いで、複数の出発点のうちの1つを選択し、複数の候補到達点のうちの1つをそのペアとして仮置く。選択される出発点は、複数の出発点のうちの任意の点であり得る。選択された出発点とペアにされた候補到達点とを結ぶことで得られる直線を基準として、負側または正側に同数の出発点および候補到達点が存在するかを判定し、同数の出発点および候補到達点が存在する場合には、そのペアがPartitionになり得るとして、そのペアの負側と正側とを切り分けて、別々に取り扱うことができるようになる。なぜなら、負側または正側に存在する出発点の数と候補到達点の数とが同数であることで、負側または正側に存在する出発点および候補到達点のみで全てペアを組むことができるからである。Partitionになり得るペアの直線は、他のどのペアの直線とも決して交差しない直線となる。
【0064】
ある場合において、図4B(c)に示されるように、一番左側の(すなわち、x軸の値が最小となる)出発点S1を選択し、一番左側の(すなわち、x軸の値が最小となる)候補到達点G1をそのペアとして仮置く。このとき、S1とG1とを結ぶことで得られる直線L11に対して、L11よりも負側に存在する出発点の数と候補到達点の数とが同一(または、L11よりも正側に存在する出発点の数と候補到達点の数とが同一)である場合、このペア(S1,G1)は、Partitionとなり得るため、ペア(S1,G1)が決定される。図4B(c)に示される例では、正側に存在する出発点の数および候補到達点の数が8で一致している。
【0065】
別の場合において、図4B(d)に示されるように、左側から3番目の(すなわち、x軸の値が3番目に小さい)出発点S3を選択し、左から4番目の(すなわち、x軸の値が4番目に小さい)候補到達点G4をそのペアとして仮置く。このとき、S3とG4とを結ぶことで得られる直線L34に対して、L34よりも負側に存在する出発点の数と候補到達点の数とが同一(または、L34よりも正側に存在する出発点の数と候補到達点の数とが同一)でない場合、このペア(S3,G4)は、Partitionとなり得ないため、別のペアの探索に移る。図4B(c)に示される例では、正側に存在する出発点の数、候補到達点の数が、それぞれ6、5で一致しておらず、負側に存在する出発点の数、候補到達点の数が、それぞれ2、3で一致していない。別のペアの選択は、例えば、x軸の値が次に小さい候補到達点または大きい候補到達点をペアとして仮置くこと、x軸の値が次に小さい出発点または大きい出発点を選択すること等であり得る。
【0066】
なお、選択された出発点とペアにされた候補到達点とを結ぶことで得られる直線上に複数の出発点および/または候補到達点が存在する場合には、最小の距離を持つペアをPartitionとして採用することができる。
【0067】
出発点の数をNとすると、Sequential Partition法による計算量は、最大の場合(全てペアリングされなかった場合)、O(N)となり、最小の場合(全て1回でペアリングされた場合)、O(N)となる。
【0068】
Sequential Partition法を適用した後、例えば、Sequential Partition法によって切り分けられた出発点および候補到達点のサブセットに対して、最小交差問題を解くことになる。例えば、上述したペア交差数をカウントする枝刈付き深さ優先探索法によって、サブセットに対する最小交差問題を解くことができる。あるいは、Sequential Partition法を適用した後、例えば、Sequential Partition法によって切り分けられた出発点および候補到達点のサブセットに対して、さらにSequential Partition法を適用することによりサブセットを切り分けるようにしてもよい。サブセット内の出発点の数を減らすことにより、最小交差問題を解くために必要な計算量を低減することができるからである。好ましくは、Sequential Partition法のための計算量が、Sequential Partition法によって低減できる最小交差問題を解くための計算量を上回らないように、Sequential Partition法を適用すべきである。
【0069】
導出手段123は、決定手段122によって複数の移動体のそれぞれについて決定されたそれぞれの直線経路に基づいて、修正経路を導出するように構成されている。
【0070】
導出手段123は、複数の移動体のそれぞれの直線経路について、出発点と選択候補到達点との間の少なくとも1つの点を特定し、出発点と、特定された少なくとも1つの点と、選択候補到達点とを結ぶことによって直線経路を修正することにより、複数の移動体のそれぞれの修正経路を導出することができる。例えば、導出手段123は、第1の直線経路について、第1の出発点と、第1の出発点と第1の選択候補到達点との間の少なくとも1つの点と、第1の選択候補到達点とを結ぶことによって第1の直線経路を修正することにより、第1の修正経路を導出することができる。例えば、導出手段123は、第2の直線経路について、第2の出発点と、第2の出発点と第2の選択候補到達点との間の少なくとも1つの点と、第2の選択候補到達点とを結ぶことによって第2の直線経路を修正することにより、第2の修正経路を導出することができる。
【0071】
出発点と選択候補到達点との間の少なくとも1つの点は、複数の直線経路のそれぞれの周囲に配置された点群のうちの少なくとも1つの点であり得る。例えば、第1の出発点と第1の選択候補到達点との間の少なくとも1つの点は、第1の直線経路の周囲に配置された第1の点群のうちの少なくとも1つの点であり得、第2の出発点と第2の選択候補到達点との間の少なくとも1つの点は、第2の直線経路の周囲に配置された第2の点群のうちの少なくとも1つの点であり得る。
【0072】
ここで、点群は、複数の直線経路のそれぞれの周囲で任意の形状の広がりを有し得る。例えば、点群は、出発点、選択候補到達点、または、出発点と選択候補到達点との間の点を中心とする球状の広がりを有し得るが、他の形状、例えば、楕円球状、立方体状、直方体状、円柱状、または角柱状の広がりを有するようにしてもよい。さらに、点群は、複数の直線経路のそれぞれの周囲で任意の大きさの広がりを有し得る。例えば、点群は、出発点と選択候補到達点との間の距離を直径の長さ、半径の長さ、一辺の長さ、または対角線の長さとする広がりを有する。例えば、出発点と候補到達点との間の距離が約10kmであるならば、半径約10kmの球状の広がりを有する点群とすることが好ましい。
【0073】
さらに、点群は、任意の数の点を有し得る。例えば、点群は、出発点と選択候補到達点との間の距離に応じた数の点を有し得る。例えば、点群は、約100個以下、約500個以下、約1000個以下、約2000個以下、約10000個以下の点を有し得る。点群内の点を多くすると、精密な経路生成を可能とするが、計算量が多くなる。他方で、点群内の点を少なくすると、高速で計算することができるようになるが、粗略な経路生成となり得る。好ましくは、約500個~約1000個の点を有する点群であり得る。計算量および経路の精密さの点でバランスがよいからである。
【0074】
さらに、点群は、任意の点分布を有し得る。例えば、点群は、ランダムな点分布を有し得る。すなわち、点群内の複数の点は、点群が占める空間内でランダムに分布し得る。例えば、点群は、均一な点分布を有し得る。すなわち、点群内の複数の点は、点群が占める空間内で規則的に分布し得る。好ましい実施形態では、点群は、出発点に近づくほど点が密になるような点分布、または、選択候補到達点に近づくほど点が密になるような点分布を有し得る。さらに好ましい実施形態では、出発点に近づくほど点が密になり、かつ、選択候補到達点に近づくほど点が密になるような点分布を有し得る。このような分布を有する点群によれば、出発点および/または選択候補到達点の近傍により多数の点を提供し、出発点および/または選択候補到達点の遠方により少数の点を提供することができる。これは、複数の移動体が衝突する可能性が高い出発点および/または選択候補到達点の近傍で細かく直線経路を修正することを可能にすることで、より精密な経路生成を可能にするとともに、複数の移動体が衝突する可能性が低い出発点および/または選択候補到達点の遠方での選択肢の数を減らし、計算負荷を軽減することができる。
【0075】
出発点に近づくほど点が密になるような点分布を有する点群は、例えば、図5Aに示される方法によって直線経路の周囲に配置される。図5Aに示される例では、記載の簡単のために、点群は、2次元平面内の第1象限のみにしか示されないが、第2象限、第3象限、および/または第4象限にも、ならびに、3次元空間内にも当然に分布し得ることが理解される。
【0076】
第一に、図5A(a)に示されるように、極座標系において、ランダムな分布を有する点群を取得する。
【0077】
第二に、図5A(b)に示されるように、極座標系における点群を直交座標系における点群に変換する。これにより、点群は、原点に近いほど点が密になり、原点から離れるほど点が疎になる点分布を有することになる。この点群は、円状(3次元空間では球状)の広がりを有することになる。
【0078】
例えば、2次元の極座標系における点群内の点iの座標pは、
=(d,θ) (d:(0,1],θ:[0,2π))
として表され、2次元の極座標系における点群を2次元の直交座標系における点群に変換すると、2次元の直交座標系における点群内の点iの座標qは、
=(x,y,z)=(dcos(θ)),dsin(θ))
となる。
【0079】
例えば、3次元の極座標系における点群内の点iの座標pは、
=(d,θ,φ) d:(0,1],θ:[0,2π),φ:[-1/2π,1/2π]
として表され、3次元の極座標系における点群を3次元の直交座標系における点群に変換すると、3次元の直交座標系における点群内の点iの座標qは、
=(x,y,z)=(dsin(θ)cos(φ),dsin(θ)sin(φ),dcos(θ))
となる。
【0080】
第三に、図5A(c)に示されるように、直交座標系における点群を出発点を中心に配置する。これにより、出発点に近づくほど点が密になる点分布を有する点群を取得することができる。このとき、点群が選択候補到達点に及ぶように、点群の広がりを調節することができる。
【0081】
選択候補到達点に近づくほど点が密になるような点分布を有する点群は、例えば、図5Aに示される方法と同様の方法によって、直線経路の周囲に配置される。図5Aに示される方法において、直交座標系における点群を選択候補到達点を中心に配置することにより、選択候補到達点に近づくほど点が密になる点分布を有する点群を取得することができる。
【0082】
出発点に近づくほど点が密になり、かつ、選択候補到達点に近づくほど点が密になるような点分布を有する点群は、例えば、図5Bに示される方法によって直線経路の周囲に配置される。
【0083】
第一に、図5B(a)に示されるように、極座標系において、ランダムな分布を有する点群を取得する。
【0084】
第二に、図5B(b)に示されるように、極座標系における点群を直交座標系における点群に変換する。これにより、点群は、原点に近いほど点が密になり、原点から離れるほど点が疎になる点分布を有することになる。この点群は、円状(3次元空間では球状)の広がりを有することになる。
【0085】
第三に、図5B(c)に示されるように、直交座標系における点群を、出発点を中心に配置し、かつ、同じ点群を、選択候補到達点を中心に配置する。これにより、出発点に近づくほど点が密になり、かつ、選択候補到達点に近づくほど点が密になるような点分布を有する点群を取得することができる。このとき、点群が出発点と選択候補到達点との間全体に及ぶように、点群の広がりを調節することができる。この分布では、出発点と選択候補到達点との間は、出発点および選択候補到達点の近傍よりも疎になっている。
【0086】
導出手段123は、複数の移動体のそれぞれの直線経路について、障害物を考慮して、出発点と選択候補到達点との間の少なくとも1つの点を特定することができる。例えば、導出手段123は、障害物が直線経路に与える斥力場を算出し、斥力場に基づいて出発点と選択候補到達点との間の少なくとも1つの点を特定することができる。導出手段123は、例えば、斥力場が最小になるように、あるいは、斥力場が所定の閾値よりも小さくなるように、出発点と選択候補到達点との間の少なくとも1つの点を特定することができる。導出手段123は、例えば、斥力場がより小さく、かつ、結果として得られる経路の長さがより短くなるように、出発点と選択候補到達点との間の少なくとも1つの点を特定することができる。導出手段123は、例えば、斥力場の値と、結果として得られる経路の長さの値とを加算した値が最小となるように、あるいは、斥力場の値と、結果として得られる経路の長さの値とを加算した値が所定の閾値よりも小さくなるように、出発点と選択候補到達点との間の少なくとも1つの点を特定することができる。障害物は、例えば、地形(例えば、山、丘、木等)または建物等であり得る。
【0087】
ここで斥力場は、障害物との衝突危険度を示し得る。障害物へ近づくほど、斥力場は大きくなり、従って、衝突の危険性が高いことを示す。
【0088】
障害物が直線経路に与える斥力場は、例えば、障害物を複数の障害物点の集合であるとみなし、直線経路の近傍の障害物点が直線経路に与える斥力場として算出され得る。複数の障害物点は、例えば、格子サンプリング(各格子毎に障害物上の1点をサンプリングすること)によってサンプリングされる。複数の障害物点は、任意のサンプリング距離でサンプリングされ得る。障害物の複数の点は、例えば、KD木を用いてデータベース部200に格納されている。これにより、導出手段123は、例えば、直線経路上の複数の点のそれぞれから最も近い障害物点を、KD木を利用して探索することができる。直線経路上の複数の点は、例えば、任意の数の任意の点であり得、例えば、直線経路を等間隔に分割する任意の数の点であり得る。直線経路上の複数の点は、任意のサンプリング距離でサンプリングされ得る。
【0089】
導出手段123は、例えば、直線経路上の複数の点のうちの各点について、以下の式を用いて斥力場wを算出することができる。
【数1】

ここで、Oは、障害物からの離隔距離であり、それ以上障害物に近づくと危険であることを示す距離である。Oは、障害物の性質等に応じて任意の値に設定され得る。Oは、移動体の半径である(例えば移動体が円形または球形でない場合、移動体の中心から移動体の最外点までの距離をいう)。pは、直線経路上のi番目の点の座標を表し、oは、pから一番近い障害物点の座標を表す。dist(p-o)は、pとoとの間の距離を表す。なお、dist(pi-oi)が0以下であるとき(すなわち、直線経路と障害物とが衝突する場合)は、dist(pi-oi)を極小値(例えば、0.00001に設定することができる。例えば、移動体の最外部がちょうど障害物からの離隔距離上にある場合には、dist(pi-oi)-O=Oとなることから、その点iでの斥力場wpiは、2となる。移動体が離隔距離よりも障害物から離れると斥力場は2よりも小さくなり、移動体が離隔距離よりも障害物に近づくと斥力場は2よりも大きくなる。
【0090】
なお、数1の式は、一例であり、他の式で斥力場を導出することができる。例えば、Oの係数2を任意の値に変更することもできる。
【0091】
導出手段123は、直線経路上の複数の点について算出された斥力場wpiを合算することにより、その直線経路の斥力場wを算出することができる。
【0092】
導出手段123は、斥力場を算出した後、例えば、A*アルゴリズムを用いて、斥力場が最小となるように出発点と選択候補到達点との間の少なくとも1つの点を特定することができる。あるいは、導出手段123は、斥力場を算出した後、例えば、A*アルゴリズムを用いて、斥力場の値と、結果として得られる経路の長さの値とを加算した値が最小となるように出発点と選択候補到達点との間の少なくとも1つの点を特定することができる。例えば、障害物から離れるほど斥力場が小さくなるが、結果として得られる経路の長さは長くなる。A*アルゴリズムでは、斥力場の値wと、結果として得られる経路の長さの値hとを加算した値が最小となる点を探索することができる。
【0093】
導出手段123は、例えば、第1の直線経路について、(a)障害物が第1の直線経路に与える斥力場を算出することと、(b)斥力場が最小となるように第1の出発点と第1の選択候補到達点との間の少なくとも1つの点を特定し、(c)第1の出発点と、第1の選択候補到達点と、第1の出発点と第1の選択候補到達点との間の少なくとも1つの点を結ぶこととによって、第1の直線経路を修正することができる。これにより、導出される第1の修正経路は、障害物と衝突する可能性が最小限にされた経路となり得る。
【0094】
導出手段123は、例えば、第1の直線経路について、(a)障害物が第1の直線経路に与える斥力場を算出することと、(b)斥力場と、結果として得られる経路の長さの値とを加算した値が最小となるように第1の出発点と第1の選択候補到達点との間の少なくとも1つの点を特定し、(c)第1の出発点と、第1の選択候補到達点と、第1の出発点と第1の選択候補到達点との間の少なくとも1つの点を結ぶこととによって、第1の直線経路を修正することができる。これにより、導出される第1の修正経路は、障害物と衝突する可能性が低減され、かつ、経路長も低減された経路となり得る。
【0095】
導出手段123は、出発点と選択候補到達点との間に存在し得る実際の障害物を障害物として考慮することに加えて、導出手段123によって既に導出された修正経路を障害物として考慮して、別の直線経路を修正して修正経路を導出するようにしてもよい。例えば、導出手段123は、第2の直線経路について、(a)障害物が第2の直線経路に与える斥力場を算出することと、(b)斥力場に基づいて第2の出発点と第2の選択候補到達点との間の少なくとも1つの点を特定し、(c)第2の出発点と、第2の選択候補到達点と、第2の出発点と第2の選択候補到達点との間の少なくとも1つの点を結ぶこととによって、第2の直線経路を修正し、第2の修正経路を導出したあとに、第1の直線経路について、第2の直線経路を障害物とみなして、(a)障害物が第1の直線経路に与える斥力場を算出することと、(b)斥力場に基づいて第1の出発点と第1の選択候補到達点との間の少なくとも1つの点を特定し、(c)第1の出発点と、第1の選択候補到達点と、第1の出発点と第1の選択候補到達点との間の少なくとも1つの点を結ぶこととによって、第1の直線経路を修正し、第1の修正経路を導出することができる。既に導出されている修正経路を障害物とみなすことにより、出発点と選択候補到達点との間に存在し得る実際の障害物と衝突する可能性が最小限にされるのみならず、他の移動体の経路とも衝突する可能性が最小限にされた経路を作成することができるようになる。
【0096】
例えば、最初に導出された修正経路(すなわち、既に導出された修正経路を障害物として考慮していない修正経路)については、他の修正経路が導出された後に、他の修正経路を障害物として考慮して、再度、直線経路から修正経路を導出するようにしてもよい。
【0097】
図6A図6Eは、A*アルゴリズムによって出発点と選択候補到達点との間の少なくとも1つの点を特定し、修正経路を導出するフローを概略的に示す。図6A図6Eに示される例では、n個の出発点S~Sとそれに対応するn個の選択候補到達点G~Gとが示されており、SとGとの間、SとGとの間、SとGとの間、・・・SとGとの間に直線経路が決定されている。図6A図6Eに示される例では、説明の簡略化のために、実際の障害物は省略されており、各直線経路が障害物として設定されている。また、図6A図6Eに示される例では、説明の簡略化のために、2次元的に描写されているが、出発点S~S、選択候補到達点G~G、直線経路、および修正経路が3次元空間内に位置し得ることが当然に理解される。
【0098】
図6Aでは、n個の出発点のうち1つの出発点がランダムに選択される。ここでは、第3の出発点Sが選択されており、SとGとを結ぶ第3の直線経路を修正することになる。
【0099】
図6Bでは、第3の直線経路が消去され、SとGとの間に点群が配置される。点群は、上述したように取得されて配置された任意の点群である。
【0100】
図6Cでは、点群のうちの少なくとも1つを辿る経路のそれぞれについてA*が算出される。A*を算出する際に利用される各経路の重み付けは、他の直線経路を障害物としたときの各障害物から与えられる斥力場wとヒューリスティック関数hである。ここで、ヒューリスティック関数hは、直線経路からの逸脱を抑えるように働く項である。簡単な例では、h=-kx(kは正の定数、xは直線経路からの逸脱距離)で表され得る。
【0101】
A*は、斥力場wがより小さく、かつ、結果として得られる経路の長さがより短くなるように、算出される。例えば、図6Cでは、点線および二重破線で示される経路について斥力場wおよびヒューリスティック関数hが算出されており、斥力場wがより小さくかつヒューリスティック関数hがより小さくなる経路が二重破線で示されている。これにより、斥力場wがより小さくかつヒューリスティック関数hがより小さくなる経路を形成する点群内の点が特定される。
【0102】
図6Dでは、Sと、斥力場wがより小さくかつヒューリスティック関数hがより小さくなる経路を形成する点群内の点と、Gとが結ばれ、SとGとを結ぶ第3の修正経路が導出されている。
【0103】
その後、n個の出発点のうち1つの出発点がランダムに選択され、図6A図6Dに示される手順が繰り返される。そのとき、例えば、既に導出された修正経路も障害物として設定される。
【0104】
図6Eは、全ての出発点について図6A図6Dに示される手順が繰り返された結果として導出された第1の修正経路~第nの修正経路を示している。
【0105】
導出手段123によって導出された、複数の移動体のそれぞれの修正経路は、複数の移動体のそれぞれの移動経路として、システム100の外部に出力される。移動経路は、例えば、インターフェース部110を介して、複数の移動体のそれぞれに送信される。あるいは、移動経路は、例えば、インターフェース部110を介して、複数の移動体を制御するコントローラに送信される。複数の移動体は、それぞれの移動経路に従うことにより、障害物および他の移動体と衝突する可能性を最小限にして、移動することができる。
【0106】
上述した図3に示される例では、プロセッサ部120の各構成要素が同一のプロセッサ部120内に設けられているが、本発明はこれに限定されない。プロセッサ部120の各構成要素が複数のプロセッサ部に分散される構成も本発明の範囲内である。このとき、複数のプロセッサ部は、同一のハードウェア部品内に位置してもよいし、近傍または遠隔の別個のハードウェア部品内に位置してもよい。
【0107】
なお、上述したシステム100の各構成要素は、単一のハードウェア部品で構成されていてもよいし、複数のハードウェア部品で構成されていてもよい。複数のハードウェア部品で構成される場合は、各ハードウェア部品が接続される態様は問わない。各ハードウェア部品は、無線で接続されてもよいし、有線で接続されてもよい。本発明のシステム100は、特定のハードウェア構成には限定されない。プロセッサ部120をデジタル回路ではなくアナログ回路によって構成することも本発明の範囲内である。本発明のシステム100の構成は、その機能を実現できる限りにおいて上述したものに限定されない。
【0108】
3.複数の移動体のそれぞれの移動経路を作成するためのシステムによる処理
図7は、複数の移動体のそれぞれの移動経路を作成するためのシステム100による処理700の一例を示すフローチャートである。処理700は、システム100のプロセッサ部120によって行われることができる。
【0109】
ステップS701では、プロセッサ部120の取得手段121が、移動条件を取得する。移動条件は、移動条件は、複数の移動体のそれぞれについて、出発点と複数の候補到達点とを含む。例えば、移動条件は、複数の移動体のうちの第1の移動体についての第1の出発点および第1の複数の候補到達点、および、複数の移動体のうちの第2の移動体についての第2の出発点および第2の複数の候補到達点を含む。取得された移動条件は、プロセッサ部120の決定手段122に渡される。
【0110】
ステップS702では、プロセッサ部120の決定手段122が、複数の移動体のそれぞれについて、直線経路を決定する。決定手段122は、例えば、複数の移動体のそれぞれについて、複数の候補到達点のうちの1つを選択し、出発点と、複数の候補到達点のうちの選択された候補到達点を結ぶことにより、複数の移動体のそれぞれの直線経路を決定することができる。例えば、決定手段122は、第1の移動体について、第1の出発点と、第1の複数の候補到達点のうちの1つの第1の選択候補到達点とを結ぶことにより、第1の移動体の第1の直線経路を決定することができ、第2の移動体について、第2の出発点と、第2の複数の候補到達点のうちの1つの第2の選択候補到達点とを結ぶことにより、第2の移動体の第2の直線経路を決定することができる。
【0111】
決定手段122は、第1の直線経路と第2の直線経路との交差が最小となるように、第1の直線経路および第2の直線経路のそれぞれを決定することができる。第1の直線経路と第2の直線経路との交差は、例えば、2次元平面上での交差であり得る。
【0112】
決定手段122は、任意のアルゴリズムを用いて直線経路を決定することができる。例えば、決定手段122は、二部グラフを利用するアルゴリズムを用いて、直線経路を決定することができる。
【0113】
例えば、決定手段122は、ペア交差数をカウントする枝刈付き深さ優先探索法を利用して、最小交差問題を解くことによって、複数の直線経路のそれぞれの交差が最小となるように、複数の直線経路のそれぞれを決定することができる。
【0114】
例えば、決定手段122は、Sequential Partition法を利用して、最小交差問題を部分問題に切り分けたうえで、切り分けられた部分問題のそれぞれについて、最小交差問題を解くことによって、複数の直線経路のそれぞれの交差が最小となるように、複数の直線経路のそれぞれを決定することができる。一実施形態では、Sequential Partition法を利用して、最小交差問題を部分問題に切り分けたうえで、切り分けられた部分問題のそれぞれについて、ペア交差数をカウントする枝刈付き深さ優先探索法を利用して、最小交差問題の部分問題を解くことによって、複数の直線経路のそれぞれの交差が最小となるように、複数の直線経路のそれぞれを決定することができる。最小交差問題を部分問題に切り分けてから解くことにより、計算量を著しく低減することができる。
【0115】
一例において、或るマシンにおいて、15体の移動体について、出発点から到達点までの直線経路を計算した場合、ペア交差数をカウントする枝刈付き深さ優先探索法を利用することにより、後述するA*による修正経路の導出まで、1.5日程度の時間で計算を完了することができた。同一のマシンにおいて、15体の移動体について、Sequential Partition法を行ったうえで、ペア交差数をカウントする枝刈付き深さ優先探索法を行った場合、後述するA*による修正経路の導出まで、約70分程度で計算を完了することができた。このように、Sequential Partition法とペア交差数をカウントする枝刈付き深さ優先探索法とを組み合わせることにより、予想外に高速に計算を完了することができた。
【0116】
決定された複数の直線経路は、導出手段123に渡される。
【0117】
ステップS703では、プロセッサ部120の導出手段123が、ステップS702で決定された直線経路の少なくとも1つを修正することによって、修正経路を導出する。導出手段123は、複数の移動体のそれぞれの直線経路について、出発点と選択候補到達点との間の少なくとも1つの点を特定し、出発点と、特定された少なくとも1つの点と、選択候補到達点とを結ぶことによって直線経路を修正することにより、複数の移動体のそれぞれの修正経路を導出することができる。例えば、導出手段123は、第1の直線経路について、第1の出発点と、第1の出発点と第1の選択候補到達点との間の少なくとも1つの点と、第1の選択候補到達点とを結ぶことによって第1の直線経路を修正することにより、第1の修正経路を導出することができる。
【0118】
出発点と選択候補到達点との間の少なくとも1つの点は、複数の直線経路のそれぞれの周囲に配置された点群のうちの少なくとも1つの点であり得る。例えば、第1の出発点と第1の選択候補到達点との間の少なくとも1つの点は、第1の直線経路の周囲に配置された第1の点群のうちの少なくとも1つの点であり得、第2の出発点と第2の選択候補到達点との間の少なくとも1つの点は、第2の直線経路の周囲に配置された第2の点群のうちの少なくとも1つの点であり得る。
【0119】
点群は、例えば、図8に示される処理によって、直線経路の周囲に配置される。
【0120】
図8は、出発点と選択候補到達点とを結ぶ直線経路の周囲に点群を配置するための処理800の一例を示すフローチャートである。処理800は、システム100のプロセッサ部120によって行われることができる。
【0121】
ステップS801では、プロセッサ部120の導出手段123が、極座標系におけるランダムな分布を有する点群を取得する。
【0122】
ステップS802では、プロセッサ部120の導出手段123が、ステップS801で取得された極座標系における点群を直交座標系における点群に変換する。これにより、点群は、原点に近いほど点が密になり、原点から離れるほど点が疎になる点分布を有することになる。
【0123】
ステップS803では、プロセッサ部120の導出手段123が、ステップS802で変換された点群を出発点を中心に配置する。導出手段123は、複数の直線経路のそれぞれのために、変換された点群をそれぞれの出発点を中心に配置することができる。例えば、導出手段123は、第1の直線経路のために、変換された点群を第1の出発点を中心に配置することができる。
【0124】
ステップS804では、プロセッサ部120の導出手段123が、ステップS802で変換された点群を候補到達点を中心に配置する。導出手段123は、複数の直線経路のそれぞれのために、変換された点群をそれぞれの候補到達点を中心に配置することができる。例えば、導出手段123は、第1の直線経路のために、変換された点群を第1の候補到達点を中心に配置することができる。
【0125】
処理800によって配置された点群は、複数の直線経路のそれぞれにおいて、出発点に近づくほど点が密になり、かつ、選択候補到達点に近づくほど点が密になる点分布を有することになる。
【0126】
なお、上述した例では、処理800の全てのステップをプロセッサ部120が行うことを説明したが、処理800のステップのうちの少なくとも1つは、プロセッサ部120以外のプロセッサ部が行うことができる。例えば、ステップS801およびステップS802は、プロセッサ部120以外のプロセッサ部によって予め行われることができ、直交座標系における点群は、データベース部200に予め格納されることができる。これにより、プロセッサ部120は、データベース部200に格納されている点群を利用して、ステップS803およびステップS804を行うことができる。
【0127】
導出手段123は、例えば、図9に示される処理によって、複数の移動体のそれぞれの直線経路について、修正経路を導出することができる。
【0128】
図9は、修正経路を導出するための処理900の一例を示すフローチャートである。処理900は、システム100のプロセッサ部120によって行われることができる。処理900では、複数の移動体のそれぞれの直線経路のうち、第1の直線経路について、第1の修正経路を導出することを説明する。
【0129】
ステップS901では、プロセッサ部120の導出手段123が、障害物が第1の直線経路に与える斥力場を算出する。障害物が第1の直線経路に与える斥力場は、例えば、障害物を複数の障害物点の集合であるとみなし、第1の直線経路の近傍の障害物点が第1の直線経路に与える斥力場として算出され得る。導出手段123は、例えば、第1の直線経路上の複数の点のうちの各点について、以下の式を用いて斥力場wを算出することができる。
【数1】


ここで、Oは、障害物からの離隔距離であり、それ以上障害物に近づくと危険であることを示す距離である。Oは、障害物の性質等に応じて任意の値に設定され得る。Oは、移動体の半径である(例えば移動体が円形または球形でない場合、移動体の中心から移動体の最外点までの距離をいう)。pは、直線経路上のi番目の点の座標を表し、oは、pから一番近い障害物点の座標を表す。dist(p-o)は、pとoとの間の距離を表す。なお、dist(pi-oi)が0以下であるとき(すなわち、直線経路と障害物とが衝突する場合)は、dist(pi-oi)を極小値(例えば、0.00001に設定することができる。
【0130】
導出手段123は、第1の直線経路上の複数の点について算出された斥力場wpiを合算することにより、第1の直線経路の斥力場wを算出することができる。
【0131】
ステップS902では、プロセッサ部120の導出手段123が、斥力場に基づいて、第1の出発点と、第1の選択候補到達点と、少なくとも1つの点とを結ぶ。少なくとも1つの点は、処理800によって配置された点群の中から、斥力場が最小となるように特定される。
【0132】
導出手段123は、例えば、A*アルゴリズムを用いて、斥力場に基づいて、少なくとも1つの点を特定することができる。導出手段123は、例えば、A*アルゴリズムを用いて、斥力場が最小となるように出発点と選択候補到達点との間の少なくとも1つの点を特定することができる。あるいは、導出手段123は、例えば、A*アルゴリズムを用いて、斥力場の値と、結果として得られる経路の長さの値とを加算した値が最小となるように出発点と選択候補到達点との間の少なくとも1つの点を特定することができる。例えば、障害物から離れるほど斥力場が小さくなるが、結果として得られる経路の長さは長くなる。A*アルゴリズムでは、斥力場の値wと、結果として得られる経路の長さの値hとを加算した値が最小となる点を探索することができる。
【0133】
第1の出発点と、第1の選択候補到達点と、少なくとも1つの点とを結ぶことによって、第1の修正経路が得られる。
【0134】
処理900では、ステップS901を行う前に、ステップS911~ステップS913を行うようにしてもよい。ステップS911~ステップS912は、第2の直線経路について第2の修正経路を導出する処理である。これにより、既に得られた第2の修正経路を障害物とみなして、第1の修正経路を得ることができる。このようにして得られた第1の修正経路は、第1の出発点と第1の選択候補到達点との間に存在し得る実際の障害物と衝突する可能性が最小限にされるのみならず、他の移動体の経路とも衝突する可能性が最小限にされた経路となり得る。
【0135】
ステップS911では、プロセッサ部120の導出手段123が、障害物が第2の直線経路に与える斥力場を算出する。ステップS911は、ステップS901と同様の処理である。
【0136】
ステップS912では、プロセッサ部120の導出手段123が、斥力場に基づいて、第2の出発点と、第2の選択候補到達点と、少なくとも1つの点とを結ぶことによって、第2の修正経路を導出する。ステップS912は、ステップS902と同様の処理である。
【0137】
ステップS913では、プロセッサ部120の導出手段123が、ステップS912で導出された第2の修正経路を障害物とみなす。例えば、第2の修正経路は、複数の障害物点の集合として表現されて、メモリ部130等に格納され得る。
【0138】
その後、ステップS901では、第2の修正経路を障害物として、ステップS901~ステップS902が行われる。
【0139】
図9に示される例では、ステップS911~ステップS913では、第2の直線経路について第2の修正経路を得て、それを障害物とみなすことを説明したが、第2の直線経路に加えて、他の少なくとも1つの直線経路についてそれぞれの修正経路を得て、それぞれの修正経路を障害物とみなすようにしてもよい。
【0140】
図10は、複数の移動体のそれぞれの移動経路を作成するためのシステム100を利用して、複数の移動体のそれぞれの移動経路を計画するフローの一例を示すフローチャートである。
【0141】
ステップS1001で、移動経路の計画を開始する。
【0142】
ステップS1002では、移動条件がシステム100に入力される。例えば、ユーザが、端末装置を介してシステム200に移動条件を入力することができる。移動条件は、例えば、複数の移動体のそれぞれについて、出発点と複数の候補到達点とを含む。
【0143】
これにより、システム100は、移動条件を取得する。これは、処理700のステップS701に対応している。
【0144】
ステップS1003では、地図情報が取得される。例えば、システム100は、移動条件に基づいて、データベース部200に格納されている地図情報を取得する。地図情報は、移動条件に含まれる出発点および到達点の周囲に地形および建造物の情報を含み得る。
【0145】
ステップS1004では、3次元での移動空間地図が生成される。例えば、システム100は、地図情報に基づいて、移動空間地図を生成することができる。
【0146】
ステップS1005では、移動禁止区域情報が取得される。例えば、システム100は、地図情報または移動空間地図に基づいて、データベース部200に格納されている移動禁止区域情報を取得する。
【0147】
ステップS1006では、2次元平面において、複数の移動体のそれぞれの出発点および到達点の組み合わせが決定される。例えば、システム100は、処理700のステップS702の処理を行うことにより、複数の移動体のそれぞれの出発点および到達点の組み合わせ、ならびに、出発点および到達点を結んだ直線経路を決定することができる。
【0148】
ステップS1007では、3次元地図上で直線経路が生成される。例えば、システム100は、ステップS1006で決定された直線経路を3次元空間に拡張することにより、3次元地図上での直線経路を生成することができる。
【0149】
ステップS1008では、直線経路の周囲に配置すべき点群が計算される。例えば、システム100は、処理800のステップS801~ステップS802の処理を行うことにより、配置されるべき点群を計算することができる。配置されるべき点群は、例えば、ランダムな点分布を有してもよいし、中心に近づくほど点が密になり、中心から離れるほど点が疎になる点分布を有してもよい。
【0150】
ステップS1009では、障害物および生成済経路を複数の点で表すために、障害物および生成済経路の点群が生成される。例えば、システム100は、KD木を利用して、障害物および生成済経路の点群を生成することができる。
【0151】
ステップS1010では、経路が未だ決定されていない移動体の中から、経路が決定されるべき移動体(および対応する出発点)がランダムに選択される。例えば、システム100は、経路が未だ決定されていない移動体の中から1つの移動体(および対応する出発点)をランダムに選択する。これは、例えば、図6Aに示される状態に対応する。
【0152】
ステップS1011では、選択された移動体の直線経路が障害物点群から除外される。例えば、システム100は、選択された移動体の直線経路を障害物点群から除外する。
【0153】
ステップS1012では、移動体の出発点および到達点を中心に点群が配置される。例えば。システム100は、処理800のステップS803~S804を行うことにより、点群を配置することができる。これは、例えば、図6Bに示される状態に対応する。
【0154】
ステップS1013では、A*による重み付最小パス探索が行われる。例えば、システム100は、処理700のステップS703または処理900のステップS901~ステップS902を行うことによって、A*アルゴリズムを利用して、斥力場が最小になる経路を導出する。これは、例えば、図6Cおよび図6Dに示される状態に対応する。
【0155】
A*による重み付最小パス探索は、出発点および到達点を結ぶパスを一度に探索するようにしてもよいし、複数段階に分けて探索するようにしてもよい。例えば、出発点から所定距離(探索半径ともいう)までのパスについてA*による重み付最小パス探索を行うことにより第1のサブパスを特定し、第1のサブパスの終点から所定距離までのパスについてA*による重み付最小パス探索を行うことにより第2のサブパスを特定し、・・・これを到達点まで到達するまで繰り返すことができる。探索半径は、例えば、出発点と到達点との間の距離の5%、10%、20%、25%等の距離であり得る。
【0156】
ステップS1014では、全ての移動体について経路生成が終了したか否かが判定される。例えば、システム100は、全ての移動体について経路生成が終了したか否かを判定する。
【0157】
全ての移動体について経路生成が終了したと判定された場合、ステップS1015に進む。
【0158】
全ての移動体について経路生成が終了していないと判定された場合、ステップS1009に戻り、ステップS1009~ステップS1014を繰り返す。これは、全ての移動体について経路生成が終了するまで繰り返される。これは、例えば、図6Eに示される状態に対応する。
【0159】
ステップS1015では、移動経路の計画が終了する。
【0160】
このようにして、複数の移動体のそれぞれの経路が作成される。複数の移動体のそれぞれは、作成された経路に従って移動することにより、障害物と衝突する可能性も、他の移動体のそれぞれと衝突する可能性も最小限にされる。
【0161】
上述した例では、特定の順序で処理700、800、900、1000の各ステップが行われることを説明したが、説明された順序は一例に過ぎない。処理700、800、900、1000の各ステップは、論理的に可能な任意の順序で行われることができる。
【0162】
図7図8図9を参照して上述した例では、図7図8図9に示される各ステップの処理は、プロセッサ部120とメモリ部130に格納されたプログラムとによって実現することが説明されたが、本発明はこれに限定されない。図7図8図9に示される各ステップの処理のうちの少なくとも1つは、制御回路などのハードウェア構成によって実現されてもよい。
【0163】
本発明は、上述した実施形態に限定されるものではない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。当業者は、本発明の具体的な好ましい実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。
【実施例
【0164】
複数の移動体のそれぞれの移動経路を作成するための処理700を実装するためのアプリケーションを開発した。図11は、複数の移動体のそれぞれの移動経路を作成するための処理700を実装するためのアプリケーションのユーザインターフェース1100の一例を示す。ここでは、複数の飛行体(ここでは、無人航空機(UAV))のそれぞれの移動経路を作成することを例に説明する。
【0165】
ユーザは、ユーザインターフェース1100に複数の飛行体のそれぞれの移動経路を作成するための条件を入力すると、このアプリケーションは、移動経路を作成してユーザに表示することができる。
【0166】
ユーザインターフェース1100は、位置データ入力ボタン(Position Data)1101、障害物データ入力ボタン(Obstavle Data)1102、飛行体設定ボタン(Drones Ctrl.)1103、実行ボタン1104、保存ボタン1105、経路パラメータ入力部(Path Calculation)1106、飛行パラメータ入力部(Flight Parameters)1107、初期位置/到達位置入力部(Drone Points)1108を含む。ユーザインターフェース1100に表示されたマップには、航行中心位置1109および航行範囲1110が表示されている。
【0167】
図12は、複数の移動体のそれぞれの移動経路を作成するための処理700を実装するためのアプリケーションの操作方法の一例を示すフローチャートである。
【0168】
まず、ステップS1201では、ユーザは、航行中心位置を設定する。ユーザは、ユーザインターフェース1101に表示されている航行中心位置1109を移動することにより、航行中心位置を設定することができる。これにより、ユーザは、直感的に航行中心位置を設定することができる。
【0169】
次に、ステップS1202では、ユーザは、航行範囲を設定する。ユーザは、ユーザインターフェース1101に表示されている航行範囲1110を移動および/または拡縮することにより、航行範囲を設定することができる。これにより、ユーザは、直感的に航行範囲を設定することができる。
【0170】
このとき、ユーザは、経路パラメータ入力部(Path Calculation)1106、飛行パラメータ入力部(Flight Parameters)1107を介して、経路パラメータおよび飛行パラメータを設定することができる。経路パラメータおよび飛行パラメータは、上述した移動条件の一部である。
【0171】
さらにこのとき、ユーザは、障害物データ入力ボタン(Obstavle Data)1102を介して、障害物データを入力するようにしてもよい。これにより、航行範囲内に障害物を設定することができる。障害物データは、例えば、複数の障害物点のデータである。
【0172】
次に、ステップS1203では、ユーザは、飛行させるUAVの台数を設定する。ユーザは、飛行体設定ボタン(Drones Ctrl.)1103の[+]または[-]を操作することにより、飛行させるUAVの台数を増減することができる。
【0173】
次に、ステップS1204では、ユーザは、飛行させるUAVの初期位置および到達位置を設定する。ユーザは、初期位置/到達位置入力部(Drone Points)1108の[x]、[y]に初期位置および到達位置を入力することができる。ユーザは、例えば、初期位置/到達位置入力部(Drone Points)1108の[x]、[y]にテキストを入力することができる。あるいは、ユーザは、位置データ入力ボタン(Position Data)1101を介して、UAVの初期位置および到達位置を表すデータを入力することができる。
【0174】
次に、ステップS1205では、ユーザは、飛行させるUAVの離陸高度および到達高度を設定する。ユーザは、初期位置/到達位置入力部(Drone Points)1108の[Alt]に離陸高度および到達高度を入力することができる。ユーザは、例えば、初期位置/到達位置入力部(Drone Points)1108の[Alt]にテキストを入力することができる。あるいは、ユーザは、位置データ入力ボタン(Position Data)1101を介して、UAVの離陸高度および到達高度を表すデータを入力することができる。
【0175】
次に、ステップS1206では、ユーザは、飛行させるUAVの離陸時間差を設定する。ユーザは、初期位置/到達位置入力部(Drone Points)1108の[Delay]に離陸高度および到達高度を入力することができる。ユーザは、例えば、初期位置/到達位置入力部(Drone Points)1108の[Delay]にテキストを入力することができる。
【0176】
次に、ステップS1207では、ユーザは、飛行させるUAVの各設定を反映させる。ユーザは、飛行体設定ボタン(Drones Ctrl.)1103の[!]を操作することにより、これまでに入力した設定を確定させ。これにより、本アプリケーションは、UAVの移動条件を受け取ることになる。
例えば、航行中心位置を微調整したい場合には、ステップS1208において、ユーザは、ステップS1201と同様の操作で、航行中心位置を再設定することができる。この場合、ステップS1207に
【0177】
戻って、再設定された内容を反映させる必要がある。
【0178】
次に、ステップS1209では、ユーザは、自動パス構築の機能を動作させる。ユーザは、実行ボタン1104を操作することにより、自動パス構築の機能を動作させることができる。これにより、アプリケーション内では、処理700が行われることになる。
【0179】
処理700が完了すると、作成された飛行経路がユーザに提示される。飛行経路は、3D表示および/または2D表示でユーザに提示されることができる。
【0180】
図13は、ユーザに提示される飛行経路の3D表示を含む画面1300の一例を示す。
【0181】
画面1300では、3Dで芦原された地形図上に、作成された4本の飛行経路1310が表示されている。
【0182】
再度図12を参照して、ステップS1210では、ユーザは、作成された飛行経路を3D表示上で視認し、交差等がないかを確認する。例えば、図13の画面1300を視認し、交差がないことを確認する。
【0183】
ステップS1211では、ユーザは、作成された飛行経路を2D表示上で視認し、交差等がないかを確認する。3D表示上では交差がなかったとしても、2D表示上では交差が存在する可能性が有るからである。例えば、3次元空間内では交差しないが2次元平面では交差する場合、下降流/上昇流の発生または機体異常の発生により急降下/急上昇が起きた場合に、飛行体同士が衝突してしまう可能性があるため、2D表示上でも交差しないことを確認することが重要である。上述したとおり、処理700では、2次元平面上での交差が最小となるように飛行経路を作成することができるため、2D表示上で交差する飛行経路は作成されにくいはずである。
【0184】
作成された飛行経路に交差等の不備があった場合、ステップS1204に戻って、ステップS1204~ステップS1211を繰り返すことができる。
【0185】
作成された飛行経路が十分なものである場合、ステップS1212では、ユーザは、作成された飛行経路を出力することができる。ユーザは、保存ボタン1105を操作することにより、作成された飛行経路を保存することができる。飛行経路は、例えば、CSVデータで出力されることができる。
【産業上の利用可能性】
【0186】
本発明は、複数の移動体の衝突を最小限にする、複数の移動体のそれぞれの移動経路の作成方法、システムおよびプログラムを提供するものとして有用である。
【符号の説明】
【0187】
U ユーザ
S 出発地
G 目的地
10 飛行体
100 システム
110 インターフェース部
120 プロセッサ部
130メモリ部
200 データベース部
図1
図2
図3
図4A
図4B
図5A
図5B
図6A
図6B
図6C
図6D
図6E
図7
図8
図9
図10
図11
図12
図13