JP2018109621A - 移動体のためのナビゲーション - Google Patents
移動体のためのナビゲーション Download PDFInfo
- Publication number
- JP2018109621A JP2018109621A JP2017244265A JP2017244265A JP2018109621A JP 2018109621 A JP2018109621 A JP 2018109621A JP 2017244265 A JP2017244265 A JP 2017244265A JP 2017244265 A JP2017244265 A JP 2017244265A JP 2018109621 A JP2018109621 A JP 2018109621A
- Authority
- JP
- Japan
- Prior art keywords
- representation
- collision
- destination
- polygon
- mobile
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3446—Details of route searching algorithms, e.g. Dijkstra, A*, arc-flags, using precalculated routes
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/20—Instruments for performing navigational calculations
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/20—Instruments for performing navigational calculations
- G01C21/203—Specially adapted for sailing ships
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3407—Route searching; Route guidance specially adapted for specific applications
- G01C21/343—Calculating itineraries, i.e. routes leading from a starting point to a series of categorical destinations using a global route restraint, round trips, touristic trips
-
- G—PHYSICS
- G08—SIGNALLING
- G08G—TRAFFIC CONTROL SYSTEMS
- G08G3/00—Traffic control systems for marine craft
- G08G3/02—Anti-collision systems
-
- G—PHYSICS
- G08—SIGNALLING
- G08G—TRAFFIC CONTROL SYSTEMS
- G08G9/00—Traffic control systems for craft where the kind of craft is irrelevant or unspecified
- G08G9/02—Anti-collision systems
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Ocean & Marine Engineering (AREA)
- Traffic Control Systems (AREA)
- Navigation (AREA)
Abstract
【課題】移動体をナビゲートする無衝突経路の決定を並列処理できる方法が提供される。【解決手段】現在地と目的地リスト中の最新目的地との間の直結線上に衝突物体が位置しているか否かを判定し、移動体表現各々について以下を反復することにより、無衝突経路区間のグラフを繰り返し構築する。すなわち、直結線が無衝突状態であるならば、経路区間をグラフのエッジとして保存し、次の反復のために最新目的地を新たな現在地として選択し、最新目的地を目的地リストから取り除く。直結線が無衝突状態でなければ、直結線と交差する1つまたは複数のポリゴン表現における局所的極値に基づき、到達可能なノードを識別する。ただし局所的極値は、現在地と最新目的地との間の直結線から左または右に逸脱した角度に対し相対的に決定される。さらに次の反復のために表現から、識別されたノード各々について移動体の新たな表現を生成する。【選択図】図2A
Description
本発明は、一般的には移動体のナビゲーションシステムに関し、より具体的には、リアルタイムルート調整のための方法、コンピュータプログラム製品およびシステムに関する。
たとえば水域移動体(たとえば船、ボート、ホバークラフト、船舶、潜水艦等)、空域移動体(たとえばドローン)またはロボットなどのような移動体向けのルートの計算および最適化は、移動体が出発地と目的地との間の特定の一連のゴールに向かって最適化されたルートを使用すべき場合であると、および出発地と目的地との間に1つまたは複数の衝突物体(または衝突エリア)が存在する場合であると、複雑になる。ここで留意されたいのは、水域/空域の移動体またはロボットはもともと、道路またはレールといった予め規定されたルートオプションに基づく何らかの境界線には拘束されていない、ということである。むしろ、かかる移動体はたいてい、ある表面上または所定の高度帯内において、任意の方向を自由に使うことができる。これによって衝突物体に遭遇するリスクが高まる。かかる衝突物体は、静的タイプ(たとえば島などの陸地、沿岸エリアまたは水深の浅いエリア、山、湖水等)の場合もあるし、あるいはそれらの衝突物体は動的タイプ(たとえば水流/気流が強いエリア、またはもっと一般的には、避けるべき厳しい気象条件のエリア、または晒されるのを最小限にすべきエリア)の場合もある。
かかる衝突物体は典型的には、マップ上で個々の衝突物体の形状および位置をモデリングするポリゴン表現によって表され、またはそのようなポリゴン表現として近似される。これはポリゴン環境と呼ばれることもある。同様に、ルートは典型的には一連の中間地点としても計算され、それらの中間地点を用いてポリゴン線を描くことができ、そのようなポリゴン線はいわゆるスプラインの計算により滑らかにすることができ、またはそれらの中間地点を用いて一連の大きな円弧を描くことができ、それらによって球面形状の上に経路が記述される。
特定の最適化の制約条件(たとえば陸地等)と、(たとえばできるかぎり短く、またはできるかぎり速くなどのような)1つまたは複数の目的関数のもとで、ルート計算を試みる場合、1つの連続環境における数学的な最適化問題には無数の可能解があり、これにより適切なルートの選択が著しく妨げられる。中間ステップの個数に関する知識が欠如していること、衝突物体が場合によっては非凸性であること、たとえば燃料消費というコンテキストにおいて非凸性であること、によって、ルート計算がかなり難しくなる。動的環境(非静的な衝突物体)のケースであると、数学的に最適な解は非実用的であり、現在の技術水準の計算能力では実行不可能である。
よって、ポリゴン環境において解くことができるルート計算に対し、従来技術において解決策が提案されてきた。それら従来技術の解決策には、セル分割法、ボロノイ図、確率ロードマップ、Aスター、および可視グラフが含まれる。しかしながら離散化ステップゆえに、いくつかの従来技術の解決手段では、使用されるアルゴリズムに固有の情報損失が引き起こされ、それによって最適なルートの計算が妨げられる可能性がある。可視グラフに基づく手法によって、情報損失が回避される。これによれば、可視グラフ上の最短経路が実世界の最短経路に対応する。ただし、出発地と目的地とによって定義されるグラフの少なくとも一部分は、可能性のある組み合わせ各々について計算しなければならない。連続空間には無限の組み合わせが存在しており、したがって可能性のある組み合わせ各々について対応するグラフを規定するのは不可能である。船舶ルート計算のケースでは、典型的には数100万のロケーションポイントを考慮しなければならない。その結果、ほぼリアルタイムの計算環境が要求されるシナリオではルート計算は実施不可能であり、しかも膨大な量のメモリスペースを消費する、という状況が引き起こされる。たとえば、動的衝突物体を避けなければならない、という状況においては、水域移動体の慣性ゆえに船舶のルートを著しく迅速に調整するのが有利である。さらに望まれているのは、かかる計算を、メモリ容量および計算能力が制限されているスマートフォンまたはタブレットコンピュータなどのようなモバイルデバイスにおいて実行することである。
よって、たとえばスマートフォンまたはタブレットコンピュータなどのような低パフォーマンスのコンピューティングデバイスによりほぼリアルタイムのレスポンス特性で実施可能である高精度のルート計算のための、情報損失のないルート計算システムおよびルート計算方法を提供する必要がある。
このような技術的問題点は、出発地から目的地まで移動体をナビゲートするための無衝突経路の決定を並列処理可能にするコンピュータで実装された方法と、対応するコンピュータプログラム製品と、独立請求項に記載された上述の方法を実施するためにコンピュータプログラムを実行するように構成されたコンピュータシステムと、によって解決される。以下の記載では、水域移動体のナビゲーションの例を用いて、本発明の実施形態を説明する。当業者であれば本開示の原理を、所定の高度帯内での空域移動体のナビゲート、地上のロボット移動体のナビゲート(たとえば芝刈り機ロボット)など、他の形式の移動体に容易に適合させることができる。
コンピュータで実装された方法によれば、出発地から目的地まで水域移動体をナビゲートするための無衝突経路の決定について、並列処理が可能となるようにデータ構造(無衝突経路区間を含むグラフ)を構築する手法が開示される。これと同時に、無衝突ルートのオプションを提供するグラフのサイズが、上述の従来技術のアプローチよりも格段に小さくなる。本開示のアプローチによれば、たとえばスマートフォンまたはタブレットコンピュータなどのような低パフォーマンスコンピューティングデバイス上で、この方法を実行することができる。
出発地と、目的地と、1つまたは複数の潜在的な衝突物体の1つまたは複数のポリゴン表現を受け取ることから、この方法はスタートする。「潜在的な衝突物体」とは、移動体がそのような潜在的な衝突物体を超えて、この物体と衝突することなく所定の位置に到達しなければならないときに、移動体の逸脱を大きくする何らかの物体のことである。出発地は、ナビゲーションスタート時に移動体が最初に位置している場所に対応する。目的地は、移動体が到達すべき最終位置である。ポリゴン表現は、潜在的な衝突物体の形状を表す。衝突物体を静的なものとしてもよいし(たとえば静的な衝突物体を表すポリゴンは、島または陸地の沿岸領域をモデリングすることができる)、あるいは衝突物体を動的なものとしてもよく、この場合には衝突物体の位置および/または形状が、時間の経過につれて変化する可能性がある。動的な衝突物体の例は、他の水域移動体、海流または気象現象(たとえばハリケーン、濃霧エリア等)である。出発地/目的地を、ヒューマンユーザインタフェースを介してユーザから受け取ってもよいし、またはマシン−マシンインタフェースを介して他のコンピュータシステムから受け取ってもよい。
上述のグラフデータ構造を構築するために、初期化構成要素によって移動体の少なくとも1つの表現が初期化される。初期化後、少なくとも1つの移動体表現には、受け取った出発地がその移動体の現在地として含まれ、受け取った目的地を有する目的地リストがさらに含まれている。
移動体表現は、以下の説明中ではパーティクルとも呼ばれる。換言すれば、初期化後、少なくとも1つの移動体表現は、移動体の最終的な行先である目的地を伴う出発地に存在する。ここで述べておくと、用語「出発地」、「現在地」および「目的地」は、実世界の位置に対応するものであるが、本明細書ではかかる実世界の位置の表現をグラフ内で記述したものとして用いられる。用語「衝突物体」も、実世界の物体または現象に関連する。衝突物体の表現はポリゴンである。かかるポリゴンの特定のノードは、上述のグラフのパーツになることができる。ただし用語「衝突物体」は、上述のポリゴン表現に関連して用いられることもある。用語「衝突物体」が個々の表現の意味で用いられるときには、そのことは当業者には文脈から明らかである。たとえば、「衝突物体が第1の位置と第2の位置との間に位置している」というフレーズは、実世界では、個々の実際の位置の間に実際の衝突物体が存在している、ということを意味する。同時にここで理解されたいのは、ルート計算システムの場合には、衝突物体のポリゴン表現が第1の位置と第2の位置を表す個々のノードの間にある、ということである。
グラフジェネレータは、移動体の現在地と、この移動体に関連づけられた目的地リスト中の最新目的地と、の間の直結線上に衝突物体が位置しているか否か、を判定することによって、無衝突経路区間のグラフ(グラフデータ構造)を繰り返し構築する。本明細書では「現在地」または「現在目的地」とは、グラフの反復構築における目下の計算反復サイクル中の個々の位置表現のことを指す。グラフの反復構築は、移動体表現各々について、現在目的地が受け取った目的地と等しくなるまで(すなわち移動体表現がその最終的な行先に到達するまで)、または他の終了条件が満たされるまで、以下のステップを反復する。
移動体の現在地と最新目的地との間の直結線が無衝突状態であれば、対応する経路区間(すなわちこの直結線)がグラフのエッジとして保存される。たとえば初期化直後には、受け取った1つまたは複数の目的地だけしか目的地リスト内に含まれていない。つまり初回の反復中、最新目的地は目的地と一致している。次いでグラフジェネレータは次の反復のために、最新目的地を新たな現在地としてセット(選択)し、この最新目的地を目的地リストから取り除く。
そうでなければ(すなわち直結線が無衝突状態でなければ)、グラフジェネレータは到達可能なノードを識別する。それらのノードは、現在地と目的地との間の直結線と交差する1つまたは複数のポリゴン表現上で、この直結線から左または右に逸脱した角度に対し相対的な局所的極値に基づき規定される。たとえば到達可能な1つのノードは、それが識別された局所的極値そのものに対応するならば、または局所的極値から導出可能であるならば、識別された局所的極値のノードに基づくものである。たとえば到達可能なノードを、局所的極値付近の位置として規定してもよい。たとえば、到達可能なノードが十分な水深の水域に関連づけられていることが保証されるよう、局所的極値に安全距離を付加することができる。到達可能なノードを、個々の衝突物体の少なくとも一部によって隠されていない局所的極値の近くにある任意のノードとすることができる。当業者であれば、識別された局所的極値に基づき到達可能なノードを計算するために、他のアルゴリズムを用いることができる。かかるアルゴリズムには、特定の到達可能なノードがナビゲート可能なエリア内にあることをチェックする、ということを含めることができる。さらにここで述べておくと、到達可能なノードが必ずしも無衝突経路区間を意味するとはかぎらない。むしろ、現在出発地と現在目的地との間の直結線上にはない新たな衝突物体が、到達可能なノードに至る進路上の障害物を表す場合もある。
次の反復のために、グラフジェネレータは識別されたノード各々について、(存続中の)表現から移動体の新たな表現を生成する。この新たな表現は、上述の表現と同じ現在地を有しており、かつこの前述の表現の目的地リストの全要素と新たな最新目的地として識別されたノードとを含む1つの目的地リストを有している。換言すれば、グラフジェネレータが上述の到達可能なノードを識別すると、グラフジェネレータのレプリケータは、移動体表現の複数のクローンコピーを生成し、この場合、クローンコピー各々は、識別された個々のノードへの移動に特化されたものである。言い換えれば各クローンは、到達可能な個々のノードまでの動きを計算するように構成されている。よって、識別されたノードは、個々のクローンコピーに関する次の目的地を表すために、クローンコピーの目的地リストに追加される。たとえば目的地リストを、ラストインファーストアウト型のキューとして実装することができる。
当初の移動体表現および/またはその移動体表現の1つまたは複数のクローンコピーが、受け取った(最終)目的地に到達するまで、上述のif-elseオペレーションが繰り返し実施されるときに、ジェネレータは区間ごとに1つのグラフを構築する。このグラフは複数の無衝突区間から成り、これによって潜在的な実世界の衝突物体との何らかの実世界の衝突を回避しながら、受け取った出発地から受け取った目的地まで実世界の移動体が進むための複数のオプションが提供される。換言すれば、グラフジェネレータは、反復プロセス中に決定された無衝突経路区間に基づき、移動体のために無衝突経路を構築する。
次いで、経路セレクタに対し無衝突経路が供給される。経路セレクタをヒューマンユーザとすることができ、この場合、ユーザは、供給された無衝突経路オプションから1つの特定の経路を選択する。経路セレクタはコンピュータシステムであってもよく、この場合、コンピュータシステムは、予め定義された優先度(たとえば最短ルート、最速ルート、最小燃料消費ルート等)に基づき、1つの特定の無衝突経路を選択する。
1つの実施形態によれば、経路セレクタはさらに後処理モジュールを含むことができる。この後処理モジュールは構築された無衝突経路に対し、以下の後処理アクティビティのうち1つまたは複数のアクティビティを適用することができる。
第1の後処理アクティビティにおいて望ましいものであるとすることができるのは、移動体が急激な動きや突然のコース変更を回避できるよう、非凸特性を取り除くためにたとえばスプラインを用いて、経路を平滑化することである。いくつかの具体例を挙げると、物理的な制約たとえば最大操舵角または慣性などによって、かかる後処理ステップが必要とされることさえある。
第2の後処理アクティビティによれば、1つの経路における1つまたは複数の経路区間に沿って、1つまたは複数の中間地点を経路に追加することができる。たとえば水域移動体のために、(硫黄)排出規制水域((S)ECAゾーン)に対する入口および出口のポイントを追加することができる。他の例は、許容可能であるが厳しい気象条件を伴うエリアに対する入口および出口のポイントを追加することであり、これにより経路選択ステップにおいてこの情報を提供することができる。
第3の後処理アクティビティによれば、移動体が前の中間地点から次の中間地点までまっすぐに進むことができると判定されたならば、1つの経路から1つまたは複数の中間地点を取り除くことができる。これによってたとえば、経路の全長を低減することができ、このことは目標が最短ルートを探すことである場合に、望ましいものとすることができる。
グラフの反復構築は、移動体表現の各クローンが他の移動体表現とはまったく無関係に無衝突経路区間を見つけることができるように、設計されている。これにより(たとえば適切なマルチプロセッサまたはマルチコアコンピューティングデバイスを用いて)並列プロセッサが最大限に使用されるようにするために、グラフ構築を高度に並列処理できるようになる。反復のたびに、新たにクローニングされた移動体表現を、無衝突経路区間の計算のために個々のプロセッサユニットに割り当てることができる。経路分岐数によっては(これは衝突物体の複雑さと個数に左右される)、1つの反復から次の反復まで移動体表現の個数の増加が相当なものになる可能性がある(たとえば指数関数的)。ここで提案するグラフデータ構造生成プロセスによれば、要求に応じて(クローンの個数に応じて)付加的な並列計算リソースを割り当てることができ、たとえ著しく複雑な衝突物体状況のケースであっても、ほぼリアルタイムのルート計算を保証することができる。さらに当業者は、プロセッサまたはコアの個数に制約があるデバイスを、使用可能なプロセッサ/コアが所要の計算を高度な並列処理で実施するために最適化されるように、各プロセッサ/コアに対する作業負荷のバランスをとることによって、取り扱うことができる。これと同時に、ここで提案するグラフデータ構造生成プロセスによれば、既述の従来技術の解決策と比べると、生成されたグラフにより必要とされる作業(メイン)メモリのサイズが格段に低減される。本発明により提案されるグラフと比べると、従来技術で用いられていたグラフはそれよりも著しく多くの情報量を記憶しなければならず、それによって多くのメモリを消費することになる。メインメモリに対する要求が低いこと、および多くのスマートフォンまたはタブレットコンピュータにおいてマルチコアプロセッサが使用されていることから、高度に複雑な衝突のシナリオに対して様々な無衝突ルートオプションを経路セレクタ(たとえばデバイスのユーザ)へ供給するために、かかる標準デバイスにおいて許容可能なレスポンスタイムでルート計算を実施できるようになる。本明細書で用いられる「許容可能なレスポンスタイム」とは、計算された1つまたは複数の無衝突ルートの1つの経路区間に対応する実世界のルートを辿るために必要とされる時間よりも少ない時間しかルート計算のためにかからない、というレスポンスタイムである。いくつかのシナリオにおいては、ほぼリアルタイムのレスポンスが要求される可能性がある(たとえばドローンが、1つの衝突コース上で移動中の他の空域移動体との衝突を回避しなければならない場合など)。ここで提供されるルート計算システムおよびルート計算方法によれば、複雑なルート計算シナリオであっても、1秒よりも短い時間内でルート計算またはルート調整が可能である。
1つの実施形態によれば、ルート計算システムのインタフェースを、選択された無衝突経路を経路セレクタから受け取るように構成することができる。次いでルート計算システムは、選択された経路に従い移動体の移動方向を調整するために、選択された無衝突経路によって移動体の制御システムを更新することができる。この実施形態によれば、実世界の移動体と実世界の1つまたは複数の衝突物体との衝突が自動的に回避されるように、選択された経路を実世界の移動体のナビゲーション制御手段に対する入力として用いることができる。
1つの実施形態によれば、1つの特定の潜在的な衝突物体における1つの特定のポリゴン表現が、特定の潜在的な衝突物体の現在ポジションを表すセンサデータに関連づけられている。この実施形態によれば、レーダセンサデータ、衛星画像、または移動する物体または現象およびそれらの境界の位置特定に適した他のセンサなどのようなセンサのデータを介して、動的な衝突物体を識別することができる。
1つの実施形態によれば、直結線が無衝突状態であるケースにおいて、目的地リストが空であれば、グラフジェネレータは個々の移動体の表現を削除することができる。このケースでは、移動体表現はもはや何の目的ももたず、移動体表現によって消費されるメモリを解放することができる。
1つの実施形態によれば、局所的極値の識別を最大限に並列処理で行うことによって、並列処理のレベルをさらに向上させることができる。この実施形態によれば、グラフコンストラクタの極値識別器は、到達可能なノードを以下のようにして識別する。すなわち、対応する衝突物体を迂回するために左へ逸脱した角度を有するポリゴン区間を含む1つの特定のポリゴン表現の第1群のポリゴン区間を決定し、かつ対応する衝突物体を迂回するために右へ逸脱した角度を有するポリゴン区間を含む上記の特定のポリゴン表現の第2群のポリゴン区間を決定することによって、到達可能なノードを識別する。次いで、右へ逸脱した角度を有する決定されたポリゴン区間各々について、極値識別器は、逸脱角度の値が大きい方のノードを別個にマークし、かつ左へ逸脱した角度を有する決定されたポリゴン区間各々について、極値識別器は、逸脱角度の値が大きい方のノードを別個にマークする。ここで述べておくと、いずれの順序でポリゴン区間をマークするのかはまったく問題にはならないので、ポリゴンノードのマーキングを最大限に並列処理で行うことができる。ここで重要なのは、すべてのポリゴン区間に対しマーキングが適用される、ということだけである。つまり、たとえばグラフィックプロセッサユニット(GPU)が使用されるなどして、マークすべきポリゴン区間の個数に対応する多数の並列プロセッサが提供される、という極端な(起こりそうにない)ケースであるならば、マーキングを単一の反復ステップで実施できることになる。標準的なモバイルコンピューティングデバイスの標準的なマルチコアプロセッサが使用されるケースであれば、最適な負荷バランスを達成するために、種々のプロセッサにマーキングを分配することができる。かかる負荷バランシング手法は、並列計算技術の当業者に知られている。
並列処理によるマーキングステップの完了後、極値識別器は、左または右への特定のポリゴン表現の局所的極値として2つのマークが付されたノードを識別する。1つまたは複数のポリゴン表現の1つまたは複数の局所的極値によって、現在地からは(すなわちグラフ構築の個々の反復中、現在地にいる移動体表現からは)隠されている1つの特定のポリゴン表現の局所的極値をフィルタリング除去することによって、到達可能なノードが最終的に取得される。たとえば、ある1つの移動体表現から1つの衝突物体を見た場合、識別された局所的極値のノードは、その移動体に面した衝突物体の前側に位置している可能性がある。他の局所的極値のノードは、その衝突物体の後側に位置している可能性があり、したがって表現されている移動体にとっては到達不可能なノードである。
次いで極値識別器は、識別された到達可能な局所的極値のノードに基づき、右および左へ逸脱した角度の値が最も大きい到達可能なノードを、特定のポリゴン表現の大域的極値として識別することができる。この大域的極値の識別は、(並列処理で計算された)識別された到達可能なノードだけを処理すればよいことから、計算に関して著しく効率的である。これは一般的に、1つの衝突物体のポリゴン表現のノード総数に比べると、著しく僅かな個数である。ところが従来技術の解決策によれば、衝突物体のすべてのポリゴン区間を分析することによって、大域的極値を計算しなければならない。つまり複数のプロセッサまたはコアによりポリゴンノードを独立して並列処理でマーキングすることによって、極値決定のベースとしてポリゴンノードの総数のほんの一部しか含まないノードデータ構造が生成され、したがって移動体表現の現在地に関連して1つのポリゴン表現の大域的極値を決定するために、効率的なフィルタが提供される。
パフォーマンスベースフィルタによる実施形態を用いることによって、このルート計算方法をさらに加速させることができる。1つの実施形態によれば、パフォーマンスベースフィルタは、中間目的地の許容性をチェックすることによって、局所的極値をフィルタリングするように構成されている。たとえば、ある1つのパーティクルは、到達可能なノードを選択するときに下された以前の判定(たとえば衝突物体を避けるために右旋回)を記録に残すことができる。現在地から現在目的地までの直結線をチェックしたときに衝突物体が識別され、そこにおいて先行のステップでそのパーティクルがすでに判定を下していたならば、その情報を用いて、先行の判定を準最適なものにするであろう局所的極値を却下することができる。たとえば、1つの衝突物体を避けるために右旋回する判定を下したパーティクルであれば、目的が最短ルートを見つけることならば、左旋回を意味することになる局所的極値を後のステップで破棄した方がよい。なぜならば、この特定の障害物を避けるために左旋回する判定を下したクローンが存在しなければならず、その個々のクローン(またはその後継/後続のクローン)が、少なくとも同じ程度に短いルートを探し出さなければならないからである。換言すれば、パフォーマンスベースフィルタは、グラフプルーニング方式として動作し、たとえばこれは、準最適であると判定され得る経路の探索を中止することにより行われ、または個々の優先度(たとえば時間または距離の最短化など)に関して明らかに最適な経路の一部ではない区間を取り除く(それによりメモリ消費を低減する)ことにより行われる。破棄された局所的極値のノードは、許容できない中間目的地として分類され、したがってルートオプションのためには考慮されなくなる。
1つの実施形態によれば、パフォーマンスベースフィルタは、大域的極値ではない局所的極値をフィルタリング除去するように構成されている。たとえば、目的が最短ルートを見つけることであるならば、個々の方向の大域的極値以外の左または右へ向かう局所的極値を選択するパーティクルは、大域的極値へまっすぐに進むことを選択したパーティクルとせいぜい同じ程度のパフォーマンスである。なぜならば、そのようなパーティクルは、障害物を迂回するために結局は大域的極値へ向かわなくてはならなくなるからである。
1つの実施形態によれば、パフォーマンスベースフィルタは、選択された優先度(たとえば距離の最短化、時間の最短化など)に関して、ある1つの特定の移動体表現が競合する移動体表現よりもパフォーマンスが悪いと判定され得るならば、その特定の移動体表現を削除するように構成されている。たとえば、目的が最短ルート/経路を見つけることであり、ある特定の表現がある特定の位置(以前に訪れた位置または目的地リストによる複数の位置のうち1つの位置)に到達するまでに、競合する移動体表現よりも長い距離を必要とするならば、競合する移動体表現が優勢であると判定することができ、その特定の表現を削除することができる。
当業者であれば、さらに別のパフォーマンスベースフィルタを提供することができ、たとえばパーティクルが消費するまたは必要とする最小化すべき量または測定量に対する下限または上限を、パーティクルが決定するようなフィルタを提供することができる。この実施例によれば、パーティクルは継続的にそれらの下限および上限を監視し、競合するパーティクルの下限および上限と比較する。1つの特定のパーティクルが、その特定のパーティクルの下限が他のパーティクルの上限よりも高いと判定したならば、その特定のパーティクルを削除して、対応する移動体表現により占有されるメモリを解放することができ、使用可能な計算キャパシティをいっそう良好に使用できるようになる。1つのパフォーマンスベースフィルタを、1つまたは複数の他のパフォーマンスベースフィルタと組み合わせてもよい。
1つの実施形態によれば、既述の方法の機能を実行可能なコンピュータシステムが提供される。このコンピュータシステムによってグラフデータ構造が生成され、この生成は、たとえばスマートフォンまたはタブレットコンピュータなどのようなモバイルデバイスで使用できる程度の比較的少ないメインメモリ容量を備えたハードウェアコンフィギュレーションにおいて、マルチプロセッサまたはマルチコアの能力の利点を最大限に使うことができるようにして行われる。したがってこのシステムは、個々のマップデータの詳細レベルに応じて、GBのオーダまたはそれどころか数100MBというオーダのメインメモリの制約があるデバイス上で並列処理により実現されたほぼリアルタイムのレスポンス動作で、出発地から目的まで移動体をナビゲートするための無衝突経路を決定するように、構成されている。
1つの実施形態によれば、以下のようなコンピュータプログラム製品が提供される。すなわちこのコンピュータプログラム製品は、コンピュータシステムのメインメモリにロードされて、このコンピュータシステムの少なくとも1つのプロセッサによって実行されると、これまで開示してきたコンピュータで実装される方法を実施する。
添付の特許請求の範囲に詳しく記載された要素および組み合わせによれば、本発明のさらに別の態様が実現され達成される。なお、前述の一般的な説明と以下の詳細な説明の双方は共に、説明のために具体例として挙げたものにすぎず、ここで述べる本発明の範囲を限定するものではないことを理解されたい。
図1には、出発地から目的地まで移動体をナビゲートする無衝突経路を決定するための、本発明の1つの実施形態による並列処理可能なコンピュータシステム100の概略図が示されている。図1は、図2Aおよび図2Bに描かれた概略フローチャートの内容に関連して示されている。これらの概略フローチャートには、コンピュータシステム100の個々の実施形態により実行可能である、コンピュータで実装された方法200,1000が示されている。よって、以下の説明では、図1、図2Aおよび図2Bに記載された参照符号が用いられる。
図1のコンピュータシステム100は、出発地から目的地まで移動体をナビゲートするための無衝突経路を、並列処理により決定するように構成されている。システム100は、ステップ210,1100における出発地および目的地のデータ10の受け取り、および1つまたは複数の潜在的な衝突物体の1つまたは複数のポリゴン表現20の受け取りのために、インタフェース構成要素110を有している。位置データの受け取りおよびポリゴン表現の受け取りは、必ずしも同時に行わなくてもよく、様々なデータソースからシーケンシャルに行ってもよい。出発地/目的地を、マシン−マシンインタフェースを介してコンピュータシステムにより供給することができ、またはそれらをコンピュータシステム100のヒューマンユーザによって供給することができ、このケースであればインタフェース110には、かかるデータをユーザが入力できるようにする適切なヒューマン−マシンインタフェース(たとえばグラフィックユーザインタフェースまたはオーディオインタフェース)が含まれている。
システム100の初期化構成要素120により、ステップ220において移動体表現が初期化される。この表現には、受け取った出発地SLが現在地CLとして含まれ、受け取った目的地TLを有する目的地リストLOTがさらに含まれている。換言すれば、初期化構成要素120はステップ1110において、現在地CLとしてSLをセットし、目的地リストLOT={TL}にTLを加える。移動体の初期化された表現(パーティクル)を、集合S:={CL,CT,LOT}とみなすことができる。これによれば、LOTにおける目的地リストに最後に加えられた目的地(つまり「ラストイン」)は、ここでは「最新目的地」と呼ばれる。以下の説明では、LOTがラストインファーストアウト型のキューとして実装されるものとする。当業者であれば、この代わりに他のキュー構造を採用することができる。
次いでグラフジェネレータ130はステップ230において、無衝突経路区間のグラフを(たとえば個々の経路区間をつなぐことによって)繰り返し構築する。この構築は、個々の移動体表現が受け取った目的地に到達しないかぎり、移動体表現各々のために極値識別器モジュール131とレプリケータモジュール132とを繰り返し呼び出すことによって行われる。ステップ230の「繰り返し構築する」とは本明細書によれば、受け取った目的地までグラフを通って移動体表現を仮想的に移動させるために、同じ構築ステップを繰り返し実行する、ということであり、この場合、反復は各々、新たな入力パラメータセットに基づき計算され、この新たな入力パラメータセットは、少なくとも部分的に先行の反復ステップの結果から生じる。この反復を、終了条件に合致すると反復が停止されるループ構造として実装することができる。ある1つの特定の移動体表現に関して、反復による構築に対する終了条件に合致するのは、その特定の移動体表現が受け取った目的地TLに到達したときである。
ある特定の移動体表現に対する1つの反復ステップのうち最初のサブステップにおいて、グラフジェネレータはステップ1200において、その特定の移動体表現に関する現在目的地CTとして、個々のLOTの最初の要素(最も新たに加えられた目的地)をセットし、この移動体表現の現在地CLから現在目的地CTまでの直結線が無衝突状態であるか否か、についてチェックする。換言すれば、グラフジェネレータはステップ1300において、現在地と目的地リスト中の最新目的地とを直結した線上に衝突物体(すなわち障害物)が位置しているか否か、を判定する。
直結線が無衝突状態であるならば(図2Bのステップ1300のイエスを参照)、グラフジェネレータは、(構築すべき)グラフのエッジとして対応する経路区間を保存する。さらに次の反復のために、最新目的地CTがステップ1400において、この特定の移動体表現の新たな現在地CL(新たな区間の出発地)としてセットされ、この最新目的地が目的地リストLOTから削除される。このケースでは、LOT内にさらに別の目的地が存在しており(すなわちステップ1500の「LOTは空ではない/ノー」)、このプロセスはLOTが最終的に空になるまで繰り返され、最終的に空になった結果、ステップ1600においてグラフ中に無衝突経路が構築され識別される。目的地リストが空であれば、システム100のいかなる処理またはメモリリソースもそれ以降はブロックすることがないよう、グラフジェネレータは個々の移動体の表現を削除することができる。
直結線が無衝突状態でなければ(図2Bのステップ1300/ノー)、グラフジェネレータの極値識別器131はステップ1700において、直結線と交差する1つまたは複数のポリゴン表現上の到達可能な複数のノードを識別する。この場合、識別されるノードは、現在地と最新目的地(現在目的地)との間の直結線から左または右へ逸脱した角度に対し相対的な局所的極値に基づく。換言すれば、極値識別器131は、個々の衝突物体との衝突を避けるために迂回しなければならないポリゴン表現の複数のノードから成る部分集合として、到達可能なノードを識別する。たとえば極値識別器は、特定の移動体表現のための中間目的地として、到達可能な複数のノードの中から大域的極値を識別することができる。また、識別された局所的/大域的極値付近の到達可能なノードを使用することもできる。たとえば、既述のように安全距離を実装することができる。さらに任意の水域ロケーションを、識別された個々の極値のノードから予め定められた距離内で到達可能なノードとして、用いることもできる。
グラフ構築を並列処理可能にするため、グラフジェネレータはレプリケータ132を有しており、ステップ1800においてこのレプリケータ132によって、特定の移動体表現のために中間目的地が識別されるたびに、特定の移動体表現の複製(またはクローン)を作成することができる。複製作成後、特定の移動体表現の複数のコピーを使用することができ、それによってコピー各々(すなわち集合Sのうち1つのコピー)が、仮想的に中間目的地のうちの1つに向かって同時に並列して移動できるようになる。換言すれば、レプリケータ132はステップ1800において次の反復のために、移動体表現から中間目的地各々について新たな表現を生成する。この新たな表現(クローニングされた集合S’)は、当初の表現と同じ位置から出発しているため、当初の表現と同じ現在地CLを有している。さらに、新たな表現の目的地リストは、当初の表現の目的地リストの全要素を含んでおり、かつ最新目的地として1つの特定の中間目的地を含んでいる。この新たな最新目的地は、サブステップ1200から再びスタートする次の反復ステップにおいて、新たな表現のための現在目的地CT’となる。換言すれば、中間目的地として識別された局所的極値は、LIFOキューから最初の要素として再び取り出せるように、個々のLOTキューの先頭にプッシュされる。次の反復段階は、ステップ1800において生成された、移動体表現のすべてのクローンコピーに対して実施される。ここで述べておくと、用語「クローン」は、コピー間で100%の同一性が存在する、という生物学的な意味では用いられない。そうではなく、当業者であれば理解できるように、種々のクローンコピーはそれらのLOTに関して、それらがそれぞれ異なる最新目的地(つまり様々な中間目的地)を有する、という点で相違している。
オプションのフィルタステップ1720を用いて、衝突ルート計算のパフォーマンスをさらに改善することができる。パフォーマンスベースフィルタのうちいずれか1つのフィルタによって破棄される局所的極値のノードを、劣勢極値と称する。つまり、もっとよいルートを生じさせる少なくとも1つの別の局所的極値が存在する、ということである。ステップ1720において、かかる劣勢極値をフィルタリング除去することができ、その結果、それ以降のいかなる反復も考慮されないようになる。このようなフィルタリング機能によれば、見込みの少ないルートオプションにはそれ以上の計算ステップが課されないことから、ルート計算システムおよびルート計算方法の実行時間およびメモリ消費に関して、さらに改善がもたらされる。
グラフジェネレータ130はステップ240において、反復されたグラフ構築中に保存された無衝突経路区間に基づき、最終的に無衝突経路を構築する。たとえば、最終目的地TLに到達した移動体表現によりステップ1600において識別された無衝突経路区間の各シーケンスによって、1つの無衝突経路が規定される。ただし、必ずしもすべてのクローンコピーが、受け取った目的地TLに到達するわけではない。図3および図4に示す実施例で開示するように、パフォーマンスベースフィルタ133を用いれば、移動体表現を再び削除することができる。この場合、パフォーマンスベースフィルタ133は、すでに他の移動体表現の方がよいルートを有すると判定されたことから、最終目的地に到達するまで個々の表現のために計算を実施する意味がない、と判断する。予め定められたパラメータ150(たとえば交通ルール、制約条件等)に依存して、異なるオプションフィルタ133を使用/適用してもよい。かかる移動体表現の削除によって、計算リソースがさらに節約される。換言すれば、ルート計算をさらにスピードアップするために、移動体表現の削除によって開放されたプロセッサまたはコアを、他の移動体表現に割り当てることができ、それによってルート計算システム100の並列計算キャパシティをいっそう良好に使用できるようになる。
ステップ250において、経路セレクタ140に対し最終的に無衝突経路が供給される。経路セレクタを、コンピュータシステム100またはこのシステム100と通信接続されたリモートシステムにおける別の計算モジュールとすることができる。経路セレクタは、個々のパラメータ150(たとえば最短経路、最短時間、最低燃料消費等)により規定された予め定められた選択基準に従い、1つの特定の無衝突経路を選択する。また、経路セレクタをヒューマン−マシンインタフェースとして実装してもよく、この場合、システムのヒューマンユーザは、標準ユーザインタフェース技術(たとえばタッチスクリーン、マウスクリック等)を介して、与えられた複数の経路のうち1つの経路の手動選択を行うことができる。システム100は、(実世界の)移動体制御システムのためのアップデータ160を含むことができ、またはこのアップデータ160と通信接続可能である。アップデータ160は、選択された1つの無衝突経路を経路セレクタ140から受け取ることができ、選択された経路に従い移動体の移動方向を調節するために、選択された無衝突経路により移動体の制御システムをステップ260において自動更新することができる。経路セレクタが技術システムであり人間でない実施形態の場合には、このようにして実世界の移動体に対し自律運転が可能となる。
図3は、出発地SLから目的地TLまでの複数の無衝突経路区間を含む例示的なグラフである。図3は、例示的なグラフ300の生成について示す図4のフローチャートの内容に関連して描かれている。
グラフ300は、1つの連続環境内の移動体のための出発地SLから目的地TLまでの無衝突経路を示している。本明細書で用いられる「連続環境」とは、道路網または鉄道網のナビゲーションの場合に用いられるようなグラフ状構造とは異なり、二次元ユークリッド平面または(球体におけるナビゲーションであれば)三次元ユークリッド空間などのような距離空間のことである。たとえば移動体を、出発地SLから目的地TLまでのナビゲーションを必要とする船舶(たとえばボート、船または水中移動体)とすることができる。ただしこの実施例の場合、衝突物体CO1およびCO2が存在しており、これらはSLからTLまで直結線(破線)に沿って移動する移動体にとって障害物となっている。この実施例によればCO1およびCO2は、海または湖における障害物のポリゴン表現であって、実世界において移動体と何らかの衝突物体との衝突を回避する目的で、移動体はこれらの障害物を迂回しなければならない。衝突物体CO1,CO2は、島、砂州、氷山等を表すことができ、この実施例におけるポリゴン表現の境界は、水面下の衝突物体の周縁部を表すことができ、その場所では移動体が水底に接触せずに衝突物体を通過できる程度に十分な水深がある。
ポリゴン表現CO1,CO2を、不動位置にある静的衝突物体に相応するものとすることができ、グラフィック輪郭マップデータによって、たとえば衝突物体周囲の水深に関して個々の衝突物体の輪郭水平距離の詳細ジオロケーションを含むディジタル化海図などによって、このような衝突物体を提供することができる。静的衝突物体との衝突回避に加え、動的(すなわち移動中の)衝突物体との衝突も回避しなければならない。動的衝突物体の例として、他の移動体(船舶、船、ボート等)、気象現象(たとえば嵐、ハリケーンなど)または水域現象(たとえば強流、海震に起因する高波等)を挙げることができる。動的衝突物体に関するデータは典型的には、個々の現象の監視に用いられるセンサから受け取られる。たとえば他の移動体を、レーダ技術または位置特定システム(たとえばGPS等)を介して検出することができる。衛星画像を介して、気象現象を検出することができる。また、地震センサを介して、水域現象を検出することができる。検出されたこの種の現象の地理座標を特定し、関連する動的衝突物体の対応するポリゴン表現を提供することは、現在の技術水準である。たとえばレーダシステムは、ある特定の船舶の位置を検出することができる。船舶の名前/IDを含む自動船舶識別装置(AIS)の信号と組み合わせて、(利用可能な)データベースシステムから関連する船舶の形式を対応するポリゴン表現と共に取り出すことができる。図3の実施例によればポリゴン表現CO3は、船舶である衝突物体のこの種の水平方向投影に相応する。動的衝突物体のケースではポリゴン表現は、衝突物体の目下の境界に関してすでに安全距離を含むことができる。たとえば、ある船のポリゴン表現は、各方向でその船の実寸に100mを加えることができ、またはその動きを考慮するために、延長、引き伸ばし、または他の操作を行うことができる。
上述のとおり目標は、潜在的な衝突物体CO1,CO2,CO3と衝突することなく、SLからTLまで船舶をナビゲートすることである。最初にステップ401において、ルート計算システムは衝突回避のために、(船舶の現在地に対応させることができる)船舶の出発地SLと、目的地TLと、潜在的な衝突物体のポリゴン表現CO1,CO2,CO3とを受け取る。初期化ステップ402において、ルートシステムは最初の集合Sについて、現在地(出発地)CSの変数を受け取った出発地SLにより初期化し、現在目的地TLを受け取った目的地TLにより初期化する。さらにこの最初の集合Sについて目的地リストLOTを生成し、受け取った目的地TLをこの目的地リストに加える。本明細書で用いられる集合とは一般的には、特定の位置(グラフのノード)における移動体の表現に相応する。1つの集合はパーティクルと呼ばれることもある。
次のステップ403においてルートシステムは、直結線(破線)SL−TL上をSLからTLまで進む移動体を衝突物体が妨害しているか否か、を分析する。直結線を、1つの平面上の直線としてもよいし、1つの球体上の大円に沿った最短結線としてもよい。個々の潜在的な衝突物体の地理座標とそれらのポリゴン表現CO1,CO2,CO3とに基づき、システムはポリゴン表現CO1およびCO2を、TLに至る移動体進路上におけるその障害物として識別する。1つの実施形態によればこのチェックステップ403において、表現CO1を迂回するために1つの無衝突経路区間が見つけ出されたならば、このプロセス中に表現CO2を後で扱うことができようができまいが、表現CO1だけを識別し、さらに処理することができる。しかしながら有利であるといえるのは、最終目的地TLに至る進路上のすべて障害物を、この最初のチェックステップ403において決定することである。なぜならば、それによっていっそう多くの情報が提供されるからであり、それらの情報を用いることによって、劣勢の中間目的地をそれらの探査前にフィルタリング除去することで、アルゴリズムのパフォーマンスを向上させることができるからである。
ポリゴン表現CO1,CO2が障害物として識別されたならば、ルートシステムはステップ404において、ポリゴン表現CO1,CO2におけるノード1〜5を識別する。この実施形態によればノード1〜5は、現在地CLと現在目的地CTとの間の直結線SL−TLから左または右に逸脱した角度に対し相対的な局所的極値として、そのまま定義されている。グラフ300には、識別された局所的極値が黒いポイント1〜5として描かれている。CO1に関して識別された局所的極値は、ポイント1(左への逸脱)およびポイント3(右への逸脱)である。CO2に関して識別された局所的極値は、ポイント2(左への逸脱)およびポイント4,5(右への逸脱)である。障害物CO1,CO2を考慮すると(CO3は直結線SL−TLと交差していないので、まだ知られていない)、局所的極値1,3,4はSLから到達できるのに対し、識別された局所的極値2,5は(それぞれCO1とCO2とによって)隠されている。
複数のオプションルート経路上の移動体を、1つのパーティクル関連集合によって表すことができる。この段階においてルートシステムは、潜在的に無衝突の経路区間SL−1、SL−3、SL−4から成る3つのオプションを評価する必要がある、ということを把握している。これら3つのオプションをシーケンシャルに分析することができる。ただし、ここで提案するアプローチおよびグラフデータ構造300によれば、マルチプロセッサプラットフォームを使用することによって、このアプローチを並列処理で実施することができる。並列処理を用いることによってこのシステムは、(多数のポリゴン区間を含む)極めて詳細なポリゴン表現、長距離または多数の衝突物体に対して、ルート計算およびルート調整をほぼリアルタイムで提供することができる。このことは、動的衝突物体が直前になって認識された状況(たとえば濃霧気象条件下で他の船が存在する状況、または竜巻が衝突コースをとったばかりであるが、移動体までまだ距離があるため竜巻を迂回できる状況)において、特に重要になる。かかる状況では衝突を回避するため、移動体の方向を即座に調整しなければならない可能性がある。到達可能な局所的極値が先行のステップで識別された回数だけ、移動体を表すパーティクルをクローニングすることによって、並列処理が達成される。この場合、各パーティクルは、識別された到達可能な局所的極値のうちの1つに至る仮定ルートをとる。
この実施例によれば、第1のパーティクルp1はポイント1へ進み、第2のパーティクルp2はポイント3へ進み、さらに第3のパーティクルp3はポイント4へ進む。パーティクル各々について、ステップ402〜404が繰り返し反復される。
ステップ410において、第1のパーティクルのために第2の集合(またはパーティクル)が生成され、これには現在地CLとして当初の出発地SLがまだ含まれている。ただし第2の集合はここでは新たな現在目的地CTとして、到達可能な目的地のポイント1を有している。この中間目的地も、第2の集合の目的地リストに加えられる。簡単にする理由で、すべての新たな集合を図4のフローチャートにおいてSと称する。当業者であれば理解できるように、クローニングされた各パーティクルはそれらに固有の集合を有する。第2および第3のパーティクルのために、ステップ420,430において第3および第4の集合がそれぞれ生成される。第3の集合は、現在地CLとして当初の出発地SLを含んでいる。ただし第3の集合はここでは新たな現在目的地CTとして、到達可能な目的地のポイント3を有している。この中間目的地も、第3の集合の目的地リストに加えられる。第4の集合は、現在地CLとして当初の出発地SLを含んでいる。ただし第4の集合はここでは新たな現在目的地CTとして、到達可能な目的地のポイント4を有している。この中間目的地も、第4の集合の目的地リストに加えられる。
第1のパーティクルについてルートシステムはステップ411において、直結線SL−1上で現在地CL=SLから現在目的地CT=1まで進む移動体を衝突物体が妨害しているか否かをチェックする。この場合、いかなる衝突物体も見出されない。その結果、SL−1が、1つの無衝突経路区間としてグラフに保存され、ポイント1が新たな現在地CL=1となり、受け取った当初の目的地が現在目的地CT=TLとなる。新たな中間目的地のポイント1(ここでは現在地)が、目的地リストから削除される。換言すれば、目的地リストはラストインファーストアウト型のキューに相応するものであり、このキューにおいて、最後に加えられた目的地に個々のパーティクルが到達すると、その目的地が最初に削除される。
ステップ412は、CS=1,CT=TLという点で、ステップ403,404の反復に対応する。換言すれば、ルートシステムはステップ412において、この直結線1−TLと交差する、つまり第1のパーティクルにより表される移動体に対する障害物を表す衝突物体を識別するために、この直結線をチェックする。CO2は、衝突物体のポリゴン表現として識別される。局所的極値2,4は、到達可能な局所的極値として識別される。1つの実施形態によれば、第1のパーティクルのクローニングにより2つの新たなパーティクルが生成されることになり、この場合、一方のパーティクルはポイント1からポイント2へと進み、他方のパーティクルはポイント1からポイント4へと進む。ただしこの実施例によれば、パフォーマンスフィルタが実装されており、以下でさらに詳しく説明するように、このパフォーマンスフィルタによって経路オプション1−4が却下される。したがって、SLからポイント1を介してポイント4まで進むオプション(SL−1−4)は、最短距離を探索するならば、直結線SL−4よりも有利ではない。パフォーマンスフィルタの適用によって見込みの少ないルートオプションを却下することにより、以降に実施される反復において貴重な計算時間および計算リソースを節約することができる。その理由は、さもなければ各パーティクルによって、1つの完全な反復サイクルがトリガされてしまうからである。その結果、第1のパーティクルに対する集合が更新され、その際にポイント2が目的地リストに加えられ、ポイント2が新たな目的地としてもセットされる。
第1のパーティクルに対する次の反復中、ルートシステムはステップ413において、現在地CL=1と現在目的地CT=2との間の直結線1−2を、潜在的な衝突物体についてチェックする。新たな衝突物体が識別されなければ、無衝突経路区間1−2がグラフ300に保存され、それに応じて第1のパーティクルの集合が更新され、その際にポイント2が現在地に割り当てられ(つまり移動体の第1のパーティクル表現はこのときポイント2に移動している)、目的地リストからポイント2が削除され、現在目的地が受け取った当初の目的地TLと置き換えられる。目的地リストからポイント2が削除されても、すでに保存されたグラフ区間1−2には影響がない。このことは、移動体表現は目下の反復ステップにおいてすでにポイント2に到達していることから、このポイントが中間目的地から削除される、ということを意味するにすぎない。
第1のパーティクルに対する次の反復中、ルートシステムはステップ414において、潜在的な衝突物体について直結線2−TLをチェックする。この場合、新たな衝突物体は識別されない。その結果、無衝突経路区間2−TLがグラフ300に保存される。第1のパーティクルは現在目的地TLまで移動し、対応する集合が更新されて、その際に現在目的地CLが受け取った当初の目的地TLとなる。このことは、第1のパーティクルがその最終的な行先に到達して新たな反復は必要とされない、ということを表す。ルートシステムによって、第1の無衝突経路SL−1−2−TLが決定されたのである。
次に、第2のパーティクルについて述べると、この第2のパーティクルのためにステップ420において第3の集合が生成されており、それに続くステップ421において、直結線SL−3上の潜在的な衝突物体についてチェックされ、実際にはその結果として、新たな衝突物体のポリゴン表現CO3が見出されることになり、これは到達可能であるとされていたポイント3に至る進路上の障害物である。つまり、第2のパーティクルに対するステップ403,404の第1の反復において、ルートシステムは、第2のパーティクルはCO3と衝突せずにポイント3にダイレクトに進むことはできない、ということを見出し、CO3を迂回するためにCO3の局所的極値としてポイント6およびポイント7を識別する。この段階では、到達可能な極値ポイントは双方共に有効なオプションであり(パフォーマンスベースフィルタによっても却下されず)、第2のパーティクルがクローニングされて2つのパーティクル2a,2bが生成される。次いで双方のパーティクル2a,2bについて、最終的に個々の現在地が最終目的地TLに到達するまで、ステップ402〜404が反復される。これにはさらに、ある特定の現在地から複数のルートオプションが有効である場合に、個々のパーティクルをさらにクローニングするステップを含めることができる。例示的なフローチャートには、クローニング後初回の反復中、パーティクル2a,2bについてステップ422,424において2つの集合が生成されることが示されている。パーティクル2aの場合、到達可能な局所的極値ポイント6が個々の目的地リストに加えられ、新たな現在目的地としてセットされる。パーティクル2bの場合、到達可能な局所的極値ポイント7が個々の目的地リストに加えられ、新たな現在目的地としてセットされる。双方の直結線SL−6およびSL−7は無衝突経路区間であり、したがってグラフ300に保存される。これに応じて、ステップ423および425において個々の集合が更新され、その際にパーティクル2aに対する集合は、現在目的地のポイント3に到達するための現在地としてポイント6をセットするのに対し、パーティクル2bに対する集合は、現在目的地のポイント3に到達するための現在地としてポイント7をセットする。その結果、パーティクル2a,2bに対する新たな現在地がポイント6およびポイント7にそれぞれセットされ、中間目的地6,7が個々の目的地リストから削除される。次いで、直結線6−3および7−3上の衝突物体についてチェックを行った結果、両方の結線は共に無衝突経路区間であることが判明した。これらの経路区間を双方共にグラフ300に保存してもよいけれども、この実施例の場合には、パフォーマンスベースフィルタのさらに別の例が示されている。各パーティクルは、これらのパーティクルがパラメータを計算できるようにする特性を有することができ、たとえば現在地に到達するまでに辿らなければならない無衝突経路区間の累積距離、または現在地に到達するまでにかかる時間などである。かかるパラメータを、個々のパーティクルによって発行することができ、これによって他のパーティクル(たとえばすべてのパーティクルまたは1群のパーティクル)に結果を通知することができ、それら他のパーティクルは、競合するパーティクルのパラメータを自身のパラメータと比較することができる。この実施例によれば、累積距離パラメータを比較できるようにするパフォーマンスベースフィルタが用いられる。反復によってパーティクル2a,2bの双方が共にポイント3に到達した後、パーティクル2aは、パーティクル2bの累積距離SL−7−3が自身の距離SL−6−3よりも短い、ということを認識する。ルートシステムが経路距離を最適化するように構成されているならば、パーティクル2aはパーティクル2bとは競合できないことを認識し、したがって存在しなくなる。その後、次の反復426はパーティクル2bに対してのみ実行されることになり、このときパーティクル2bは自身の現在地としてポイント3を有しており、受け取った当初の目的地TLが新たな現在目的地となる。そこからはパーティクル2bは、パーティクル1がポイント1に到達した後でパーティクル1として相応の反復を実行する。ただしパーティクル2bは、ポイント4を介したルートオプションは考慮しない。なぜならばこの実施形態によればパーティクル2bは、位置SLから位置TLまでのステップをチェックしたとき、到達可能な局所的極値としてポイント4が識別されたことを、(たとえば以前に下したルーティング判定の判定履歴にアクセスするなどして)覚えているからである。よって、パーティクル2bは、最初にポイント3に到達するために迂回しなければならないことから、ポイント4に進むために位置SLから送り出されたパーティクルとは競合できないことになる。このことは、ルートオプションSL−1−4を却下するために第1のパーティクルにより用いられたのと同じロジックである。このことは、パーティクル3b(パーティクル3の以下の説明を参照)がポイント7に到達し、ポイント4に到達するために衝突チェックを実行したときは、すでに知られている。つまりパーティクル2bはすでにこの段階において、経路区間3−4を含むルートオプションを介してパーティクル3bを打ち負かすことができない、ということをすでに知っている。したがってこの実施例によれば、相応のパフォーマンスベースフィルタによって、パーティクル2bが現在地のポイント3においてクローニングされるのを阻止し、その代わりにこのパーティクルはポイント2へ進む。この実施例によれば、パーティクル2bがポイント2に到達すると、パーティクル2bは、パーティクル1がポイント2に至る最短ルートを見つけたことを認識し、存在しなくなる。
次に、第3のパーティクルp3について述べると、この第3のパーティクルのためにステップ430において第4の集合が生成されており、それに続くステップ431において、直結線SL−4上の潜在的な衝突物体についてチェックされ、実際にはその結果として、新たな衝突物体のポリゴン表現CO3が見出されることになり、これは到達可能であるとされていたポイント4に至る進路上の障害物である。つまり、第3のパーティクルに対するステップ403,404の第1の反復において、ルートシステムは、第3のパーティクルはCO3と衝突せずにポイント4にダイレクトに進むことはできない、ということを見出し、CO3を迂回するためにここでも局所的極値としてポイント6およびポイント7を識別する。この段階では、到達可能な極値ポイントは双方共に有効なオプションであり(パフォーマンスベースフィルタによって却下されず)、第3のパーティクルがクローニングされて2つのパーティクル3a,3bが生成される。次いで双方のパーティクル3a,3bについて、最終的に個々の現在地が最終目的地TLに到達するまで、ステップ402〜404が反復される。これにはさらに、ある特定の現在地から複数のルートオプションが有効である場合に、個々のパーティクルをさらにクローニングするステップを含めることができる。例示的なフローチャートには、クローニング後最初の反復中、パーティクル3a,3bについてステップ432,434において2つの集合が生成されることが示されている。パーティクル3aの場合、到達可能な局所的極値ポイント6が個々の目的地リストに加えられ、新たな現在目的地としてセットされる。パーティクル3bの場合、到達可能な局所的極値ポイント7が個々の目的地リストに加えられ、新たな現在目的地としてセットされる。直結線SL−6およびSL−7は、双方共に無衝突経路区間であり、したがってグラフ300に保存される。これに応じて、ステップ433および435において個々の集合が更新され、その際にパーティクル3aに対する集合は、現在目的地のポイント4に到達するための現在地としてポイント6をセットするのに対し、パーティクル3bに対する集合は、現在目的地のポイント4に到達するための現在地としてポイント7をセットする。その結果、パーティクル3a,3bに対する新たな現在地がポイント6およびポイント7にそれぞれセットされ、中間目的地6,7が個々の目的地リストから削除される。次いで、直結線6−4および7−4上の衝突物体についてチェックを行った結果、両方の結線は共に無衝突経路区間であることが判明した。これらの経路区間を双方共にグラフ300に保存してもよいけれども、この実施例ではパーティクル2,2bと同様に、最短距離パフォーマンスベースフィルタが、パーティクル3aがさらに移動するのを阻止する。パーティクル3aは、パーティクル3bのSL−7−4がSL−6−4よりも短いことを認識する。この理由から、パーティクル3aは、中間目的地のポイント4に到達すると存在しなくなり、以降の反復はパーティクル3bに対してのみ実行される。
その後、パーティクル2bおよび3bに対して反復を完了させることができる。無衝突経路決定の最終結果には、無衝突経路オプションSL−7−4−5−TL、SL−7−3−2−TL、およびSL−1−2−TLが含まれる。次いで、個々の選択基準に従い1つの特定の無衝突経路を選択するために、これらのオプションは経路セレクタへ供給される。
図5は、衝突物体の局所的極値を識別するための、コンピュータで実装された並列処理可能な方法600を示す概略フローチャートである。この方法を、無衝突経路計算に関してこれまで開示してきた方法に関連して用いることができる。これまで開示してきた実施形態に依存することなく、この方法がスタンドアローンの方法として用いられる場合もあり、これはたとえば、現在地から現在目的地まで移動するために、移動体がただ1つの衝突物体だけしか迂回しなくてよい場合である。衝突物体の局所的極値識別のために、方法600が独立した並列処理可能なコンピュータで実装された方法として実施される場合、この方法は入力パラメータとして、移動体表現の現在地と、(移動体が行きたい場所である)現在目的地と、迂回すべき衝突物体のポリゴン表現とを受け取る。
ここでは図5の方法を、図6の実施例に関連して説明することにする。図6には、並列処理による局所的極値の決定について、衝突物体の単純化されたポリゴン表現の一例を挙げて示されている。この実施例によれば、例示的な衝突物体のポリゴン表現が、ノードn1〜n21によって規定されている。ここで述べておくと、たとえば島または陸地の沿岸エリアなどのような実世界の衝突物体を表す典型的なポリゴンには、数100万のノードが含まれる可能性がある。
ポイントA,Bにより規定される直線は、1つの特定の移動体表現の現在地Aと(Bの方向における)現在目的地との間の直結線に対応している。この実施例の場合、直結線は無衝突経路区間ではなく、ポイントa,bにおいて衝突物体表現n1〜n21と交差している。この実施例の場合、現在地Aは(環礁などのような)リング形状の衝突物体の中央にあり、これにはノードn5とn16との間にしか出口がない。このため直結線を逆方向に仮想的に延ばすと(破線)、さらに交差個所d,cが生じることになる。仮想的な延長により極値識別器はステップ610において、衝突物体を反時計回り(ccw)で迂回するために左へ逸脱した角度φを有する(ノードn9〜n21により規定された)第1群のポリゴン区間を決定することができ、さらにステップ610において、対応する衝突物体を時計回り(cw)に迂回するために右へ逸脱した角度を有する(ノードn1〜n8により規定された)第2群のポリゴン区間を決定することができる。
右に逸脱した角度を有する決定されたポリゴン区間各々について、極値識別器はステップ620において別個に、逸脱角度の値が大きい方のノードをマークする。たとえば、区間n8−n7であればn7がマークされる。区間n6−n5であればn5がマークされる。さらに区間n5−n4であればn5がマークされる、という具合である。衝突ポイント(図6の実施例のポイントa,b,c,dを参照)を含むすべてのポリゴン区間については、両方のノードがマークされる。たとえば、ポリゴン区間n21−n1は衝突ポイントaを含んでおり、n21とn1の両方がマークされる。このことは、衝突ポイントによってポリゴン区間を分離し、次いで衝突ポイントを含まない他のすべてのポリゴン区間の場合と同じマーキングロジックを適用する、ということと等価である。たとえばポリゴン区間n21−n1であるならば、これをn21−aとa−n1とに分割することができ、次いでこれら2つのセグメントについて上述のマーキングロジックに従って、n21とn1の両方が極値識別器により1回だけマークされることになる。それぞれの区間は、マーキングに作用を及ぼすような相互依存性をもたないので、マーキングを完全に並列処理することができる。つまり、最終結果に何ら影響を及ぼすことなく、使用可能な処理ユニットのいずれか1つによって、任意の区間をいつでもマークすることができる。このことによって、並列処理デバイスの利点を最大限に活用することができる。同じマーキングプロセスは、左へ逸脱した角度についても適用される。つまり、左に逸脱した角度を有する決定されたポリゴン区間各々について、極値識別器は別個に、逸脱角度の値が大きい方のノードをマークする。
マーキングの結果は、受け取ったマークを有するポリゴン表現のすべてのノードを含むデータ構造である。すべてのノードは、マークを受け取っていないか、あるいは1つまたは2つのマークを受け取っている。ノードが2つの局所的極値の隣りにあるならば、そのノードはマークを受け取らない。たとえば図6の場合、ノードn4はマークを受け取らない。なぜならばその両隣りのn3およびn5は、n4の逸脱角度よりも大きい逸脱角度値を有するからである。また、1つのノードには2つの近隣ノードしかないことから、1つのノードが2つよりも多くのマークを受け取ることもない。換言すれば、1つのノードは、正確に2つのポリゴン区間の一部であり、したがって1つのノードは、最大で2つのマークを受け取ることができる。さらに、局所的極値だけが正確に2つのマークを受け取り、すべての局所的極値は2つのマークを受け取る。
極値識別器はステップ630において、特定のポリゴン表現の局所的極値として、マーキングデータ構造において上述のように2つのマークが付されたノードを識別することができる。つまり、2つのポリゴン区間の一部であり、これら2つのポリゴン区間において他のノードよりも大きい逸脱値を有する各ノードが、かかる局所的極値を表すのである。
最終的にステップ640において極値識別器は、特定のポリゴン表現により現在地からは隠されている極値をフィルタリング除去することによって、到達可能なノードを取得する。この実施例によれば、このようなフィルタリング動作の結果、衝突物体を迂回するための潜在的な到達可能なノードとして、ノードn3,n5およびn16が与えられる。
ただし、局所的極値n3に到達したときには、移動体は衝突物体を最終的に迂回するために、n5までさらに移動しなければならない。移動体が衝突物体を迂回し、その衝突物体を超えて新たな目的地に到達できるようにする、到達可能なノードの部分集合を識別する目的で、極値識別器はステップ650において、右および左へ逸脱した角度の値が最も大きい到達可能なノード(n5およびn16と交差する矢印で表す)を、ノードのマーキングのために複数の処理ユニットを用いながら並列処理で、特定のポリゴン表現の大域的極値として識別することができる。このフィルタリング動作は、到達可能な複数のノード(到達可能な局所的極値)から成る低減された部分集合において実施され、その結果、従来技術の大域的極値決定手法と対比するとパフォーマンスが大幅に向上し、他方ではこれと同時に、メインメモリの消費が到達可能な複数の局所的極値のノードの部分集合に狭められる。その結果、無衝突経路区間として、経路区間A−n5とA−n16をグラフデータ構造に保存することができる。
図6には、φで表された方向での位置Aとの間の直結線から左または右へ逸脱した角度に対し相対的なポリゴン表現における局所的極値に基づき、ノードを識別するプロセスが示されている。先行のステップにおいて、衝突物体がAからBに至る直結線上にあると識別されている。その後、この直結線の延長線と交差するポリゴン上のすべての衝突ポイントa,b,c,dが識別される。Bに向かって進んだ場合、Aから最初に到達する衝突ポイントはaである。ポリゴン区間を昇順に辿ると、次の衝突ポイントはbであり、aとbとの間のすべてのポリゴン区間が、右旋回(時計回り角度CW)によって迂回しなければならないポリゴン区間群として昇順に識別される。他のポリゴン区間は、左旋回(反時計回り角度CCW)によって迂回しなければならないポリゴン区間として識別される。第1群(CW)内のポリゴン区間各々について、逸脱角度が大きい方の個々のノードがマークされる。この実施例の場合、区間n1−n2であれば、n2の方が大きい逸脱角度を有しており、このノードがマークされる。衝突ポイントを含むポリゴン区間(たとえばn21−n1)であれば、両方のノードがマークされる。1つの群におけるポリゴン区間各々について個々のノードをマーキングすることによって、ちょうど2つのマークが付されたノードとして局所的極値を見つけ出すことができる。この実施例によれば、n3が局所的極値である。なぜならば、n3はn2およびn4よりも大きい逸脱角度を有しており、したがって区間n2−n3とn3−n4の双方について2回、マーキングされているからである。
この原理に従えば、n5も局所的極値として識別される。n3とn5とを比較すると、n5の方が大きい逸脱角度を有しており、したがってn5が大域的極値となる。第2群(CCW)についても同じ手順を辿って、n16を局所的極値として識別することができる。この群についてはただ1つの局所的極値しか存在しないので、その極値が自動的に大域的極値にもなる。マーキングプロセスのパフォーマンスをさらに向上させるため、第2群については、昇順に衝突ポイントbからcまでおよびdからaまでのすべてのポリゴン区間は無視してかまわない。その理由は、衝突ポイントcとdの存在は、大域的極値が180゜よりも大きく左に逸脱した角度を有する、ということを意味するからである。
この原理に従えば、n5も局所的極値として識別される。n3とn5とを比較すると、n5の方が大きい逸脱角度を有しており、したがってn5が大域的極値となる。第2群(CCW)についても同じ手順を辿って、n16を局所的極値として識別することができる。この群についてはただ1つの局所的極値しか存在しないので、その極値が自動的に大域的極値にもなる。マーキングプロセスのパフォーマンスをさらに向上させるため、第2群については、昇順に衝突ポイントbからcまでおよびdからaまでのすべてのポリゴン区間は無視してかまわない。その理由は、衝突ポイントcとdの存在は、大域的極値が180゜よりも大きく左に逸脱した角度を有する、ということを意味するからである。
図7には、ここで説明する技術によって使用可能な汎用コンピューティングデバイス900および汎用モバイルコンピューティングデバイス950に関する1つの実施例が示されている。コンピューティングデバイス900は、ディジタルコンピュータの様々な形態を表すことを目的としており、たとえばラップトップ、デスクトップ、ワークステーション、パーソナルディジタルアシスタント、サーバ、ブレードサーバ、メインフレームおよび他の適切なコンピュータなどを表すことを目的としている。汎用コンピューティングデバイス900を、図1のコンピュータシステム100に相応するものとすることができる。コンピューティングデバイス950は、モバイルデバイスの様々な形態を表すことを目的としており、たとえばパーソナルディジタルアシスタント、携帯電話、スマートフォン、移動体(たとえば移動体401,402,403、図1参照)のドライビングアシスタンスシステムまたは搭載コンピュータ、および他の類似のコンピューティングデバイスなどを表すことを目的としている。たとえばコンピューティングデバイス950を、コンピューティングデバイス900とのインタラクションのためのフロントエンドとして、ユーザが使用できる。本明細書で示す構成要素、それらの接続および関係、ならびにそれらの機能は、例示を意味するにすぎず、本願において説明する実現形態および/または本願の請求範囲の限定を意味するものではない。
コンピューティングデバイス900には、プロセッサ902、メモリ904、ストレージデバイス906、メモリ904と接続するための高速インタフェース908、高速拡張ポート910、ならびに低速バス914およびストレージデバイス906と接続するための低速インタフェース912が含まれている。オプションとして、1つまたは複数のグラフィックスプロセッシングユニット(GPU)を含むことができる。これらの構成要素902,904,906,908,910および912の各々は、種々のバスを用いて相互接続されており、1つの共通のマザーボード上に、または他の適切な手法で取り付け可能である。プロセッサ902は、コンピューティングデバイス900内で実行するための命令を処理することができ、この命令には、高速インタフェース908と接続されたディスプレイ916など、外部の入/出力デバイスにおけるGUIに対しグラフィック情報を表示するために、メモリ904またはストレージデバイス906に記憶された命令が含まれている。他の実装形態によれば、複数のプロセッサおよび/または複数のバスを、複数のメモリおよび複数のメモリタイプと共に、適切に用いることができる。また、複数のコンピューティングデバイス900を接続することもでき、この場合、それらのコンピューティングデバイス各々が必要なオペレーションの一部分を(たとえばサーババンク、ブレードサーバ群、またはマルチプロセッサシステムとして)提供する。
メモリ904は、コンピューティングデバイス900内部で情報を記憶する。1つの実装形態によれば、メモリ904は1つまたは複数の揮発性メモリユニットである。他の実装形態によれば、メモリ904は1つまたは複数の不揮発性ユニットである。メモリ904を、磁気ディスクまたは光ディスクなどのようなコンピュータ読み取り可能な他の媒体としてもよい。
ストレージデバイス906は、コンピューティングデバイス900のために大容量記憶装置を提供することができる。1つの実装形態によれば、ストレージデバイス906をコンピュータ読み取り可能媒体とすることができ、またはストレージデバイス906はコンピュータ読み取り可能媒体を含むことができ、たとえばフロッピーディスクデバイス、ハードディスクデバイス、光ディスクデバイス、テープデバイス、フラッシュメモリまたは他の同様のソリッドステートメモリデバイス、あるいはストレージエリアネットワークまたは他の構成において複数のデバイスを含むデバイスアレイなどとすることができ、またはこれらを含むことができる。コンピュータプログラム製品を、情報担体として有形に具現化することができる。コンピュータプログラム製品は、その実行時に上述のような1つまたは複数の方法を実施する命令を含むこともできる。情報担体は、メモリ904、ストレージデバイス906、またはプロセッサ902上のメモリなどのように、コンピュータ読み取り可能または機械読み取り可能な媒体である。
高速コントローラ908は、コンピューティングデバイス900のために多くの帯域幅を必要とするオペレーションを管理する一方、低速コントローラ912は、あまり帯域幅を必要としないオペレーションを管理する。機能のこのような割り当ては、例示的なものであるにすぎない。1つの実施形態によれば高速コントローラ908は、(たとえばグラフィックプロセッサまたはアクセラレータを介して)メモリ904、ディスプレイ916と接続されており、さらに高速拡張ポート910と接続されており、これによって種々の拡張カード(図示せず)を受け入れることができる。この実装形態によれば低速コントローラ912は、ストレージデバイス906および低速拡張ポート914と接続されている。低速拡張ポートは種々の通信ポート(たとえばUSB、ブルートゥース、イーサネット、ワイヤレスイーサネット)を含むことができ、このポートを1つまたは複数の入/出力デバイスと接続することができ、たとえばキーボード、ポインティングデバイス、スキャナと、あるいはたとえばネットワークアダプタを介してスイッチまたはルータなどのようなネットワーキングデバイスと、接続することができる。
コンピューティングデバイス900を、図示されているものとは異なる多くの形態で実装することができる。たとえばコンピューティングデバイスを、標準サーバ920として、または1群のこの種のサーバにおいて多重に、実装することができる。さらにコンピューティングデバイスを、ラックサーバシステム924の一部として実装することもできる。これに加えコンピューティングデバイスをラップトップコンピュータ922などのようなパーソナルコンピュータとして実装してもよい。別の選択肢として、コンピューティングデバイス900の構成要素を、デバイス950などのようなモバイルデバイス(図示せず)における他の構成要素と組み合わせてもよい。かかるデバイス各々は、1つまたは複数のコンピューティングデバイス900,950を含むことができ、さらにシステム全体を、互いに通信し合う複数のコンピューティングデバイス900,950から成るように構成することができる。
コンピューティングデバイス950には、他の構成要素もある中で、プロセッサ952、メモリ964、ディスプレイ954などのような入/出力デバイス、通信インタフェース966、トランシーバ968が含まれている。デバイス950には、付加的なストレージを提供するためにマイクロドライブまたは他のデバイスなどのようなストレージデバイスを設けることもできる。これらの構成要素950,952,964,954,966および968各々は、種々のバスを用いて相互接続されており、これらの構成要素のうちの複数を、1つの共通のマザーボード上に、または他の適切な手法で、取り付け可能である。
プロセッサ952は、メモリ964内に記憶された命令を含むコンピューティングデバイス950において、命令を実行することができる。プロセッサを、個別の複数のアナログおよびディジタルのプロセッサを含むチップから成るチップセットとして実装することができる。プロセッサはたとえば、ユーザインタフェースの制御、デバイス950により実行されるアプリケーション、デバイス950によるワイヤレス通信などのようなデバイス950の他の構成要素の調整機能を提供することができる。
プロセッサ952は、ディスプレイ954と接続されたコントロールインタフェース958およびディスプレイインタフェース956を介して、ユーザと通信を行うことができる。ディスプレイ954をたとえば、TFT LCD(Thin-Film-Transistor Liquid Crystal Display薄膜トランジスタ液晶ディスプレイ)またはOLED(Organic Light Emitting Diode有機発光ダイオード)ディスプレイ、または他の適切なディスプレイ技術のものとすることができる。ディスプレイインタフェース956は、ディスプレイ954を駆動してグラフィック情報および他の情報をユーザに呈示するための適切な回路を含むことができる。コントロールインタフェース958はユーザからコマンドを受信し、プロセッサ952へ供給するためにそれらを変換する。これに加え、デバイス950と他のデバイスとの近距離通信ができるよう、外部インタフェース962をプロセッサ952と連携させて設けることができる。外部インタフェース962によってたとえば、いくつかの実装形態では有線通信を、または他の実装形態では無線通信を提供することができ、さらに複数のインタフェースも用いることができる。
メモリ964は、コンピューティングデバイス950内部で情報を記憶する。メモリ964を、1つまたは複数のコンピュータ読み取り可能な媒体、1つまたは複数の揮発性メモリユニット、または1つまたは複数の不揮発性メモリユニットとすることができる。拡張メモリ974を設け、たとえばSIMM(Single In Line Memory Moduleシングルラインメモリモジュール)カードインタフェースを含むことができる拡張インタフェース972を介して、デバイス950と接続することができる。かかる拡張メモリ974は、デバイス950のための拡張ストレージスペースを提供することができ、またはデバイス950のためのアプリケーションまたは他の情報を記憶することができる。特に拡張メモリ974は、上述のプロセスを実行するまたは補足する命令を含むことができ、さらにセキュア情報も含むことができる。したがってたとえば拡張メモリ974は、デバイス950のためのセキュリティモジュールとして動作し、デバイス950のセキュアな使用を許可する命令によってプログラミングすることができる。これに加え、ハッキング不可能な手法でSIMMカードに識別情報を配置するなど、SIMMカードを介して付加的な情報と共にセキュアアプリケーションを提供することができる。
メモリはたとえば、以下で説明するようにフラッシュメモリおよび/またはNVRAMメモリを含むことができる。1つの実装形態によればコンピュータプログラム製品は、情報担体として有形に具現化されている。このコンピュータプログラム製品は、その実行時に上述のような1つまたは複数の方法を実施する命令を含んでいる。情報担体は、メモリ964、拡張メモリ974またはプロセッサ952におけるメモリなどのようなコンピュータ読み取り可能または機械読み取り可能な媒体であり、これをたとえばトランシーバ968または拡張インタフェース962を介して受け取ることができる。
デバイス950は、通信インタフェース966を介してワイヤレス通信可能であり、このインタフェースは、必要に応じてディジタル信号処理回路を含むことができる。通信インタフェース966は、種々のモードまたはプロトコルでの通信を提供することができ、他にもいろいろある中で、たとえばGSMボイスコール、SMS,EMSまたはMMSメッセージング、CDMA,TDMA,PDC,WCDMA,CDMA2000またはGPRSなどでの通信を提供することができる。かかる通信を、たとえば無線周波数トランシーバ968を介して行わせることができる。これに加え、ブルートゥース、WiFiまたはトランシーバ(図示せず)などのような他のものを使用して、短距離通信を行うこともできる。これに加え、GPS(Global Positioning System全地球測位システム)レシーバモジュール980によって、ナビゲーション関連および位置特定関連の付加的なワイヤレスデータを、デバイス950に提供することができ、デバイス950において実行されるアプリケーションによって、これらのデータを適切に用いることができる。
デバイス950は、オーディオコーデック960を用いて通信を可聴で行うこともでき、この場合、オーディオコーデック960は、ユーザから発話情報を受け取り、この情報を使用可能なディジタル情報に変換することができる。オーディオコーデック960は同様にスピーカを介して、たとえばデバイス950のハンドセットにおけるスピーカを介して、ユーザのために可聴サウンドを生成可能である。かかるサウンドは、音声電話コールからのサウンドを含むことができ、記録されたサウンド(たとえばボイスメッセージ、音楽ファイル等)を含むことができ、さらにデバイス950上で動作するアプリケーションにより生成されたサウンドを含むこともできる。
コンピューティングデバイス950を、図示されているものとは異なる多くの形態で実装することができる。たとえば、携帯電話980として実装することもできる。また、スマートフォン982、パーソナルディジタルアシスタント、または他の同様のモバイルデバイスの一部として実装することもできる。
本明細書で説明するシステムおよび技術の様々な実装形態を、ディジタル電子回路、集積回路、特別設計のASIC(application specific integrated circuit特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組み合わせとして実現することができる。様々な実装形態には、プログラミング可能なシステム上で実行可能および/または解釈可能な1つまたは複数のコンピュータプログラムとしての実装を含むことができる。この場合、プログラミング可能なシステムは、少なくとも1つのプログラミング可能なプロセッサを含み、このプロセッサを特定の目的または汎用の目的のものとすることができ、データおよび命令をストレージシステム、少なくとも1つの入力デバイスおよび少なくとも1つの出力デバイスから受信するように、およびそれらに送信するように、接続することができる。
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られている)は、プログラミング可能なプロセッサのための機械命令を含み、高水準の手続き型プログラミング言語および/またはオブジェクト指向プログラミング言語、および/またはアセンブリ言語/機械語として実装することができる。本明細書で用いられる用語「機械読み取り可能媒体」および「コンピュータ読み取り可能媒体」とは、プログラミング可能なプロセッサへ機械命令および/またはデータを供給するために用いられる任意のコンピュータプログラム製品、装置および/またはデバイス(たとえば磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))のことを指し、これには機械読み取り可能な信号として機械命令を受け取る機械読み取り可能媒体が含まれる。用語「機械読み取り可能な信号」とは、プログラミング可能なプロセッサへ機械命令および/またはデータを供給するために用いられる任意の信号のことを指す。
ユーザとのインタラクションを提供するため、本明細書で説明するシステムおよび技術を、ユーザに情報を表示するためのディスプレイデバイス(たとえばCRT(cathode ray tubeブラウン管)またはLCD(liquid crystal display液晶ディスプレイ)モニタ)と、ユーザがコンピュータに入力を供給可能なキーボードおよびポインティングデバイス(たとえばマウスまたはトラックボール)を備えた1つのコンピュータシステム上で実装することができる。他の種類のデバイスを使用して、ユーザとのインタラクションを同様に提供することもでき、たとえばユーザに提供されるフィードバックを、任意の形態の感覚的フィードバック(たとえば視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバック)とすることができ、さらにユーザからの入力を任意の形態で受信することができ、これにはたとえば音響、音声または触覚による入力が含まれる。
本明細書で説明するシステムおよび技術を、以下のようなコンピューティングデバイスにおいて実装することができる。すなわちこのコンピューティングデバイスは、(たとえばデータサーバとして)バックエンド構成要素を含み、またはミドルウェア構成要素(たとえばアプリケーションサーバ)を含み、またはフロントエンド構成要素(たとえばユーザが本明細書で説明するシステムおよび技術の実装形態とインタラクション可能にするグラフィックユーザインタフェースまたはウェブブラウザを有するクライアントコンピュータ)を含み、またはかかるバックエンド、ミドルウェアまたはフロントエンドの構成要素の任意の組み合わせを含む。システムの各構成要素を、ディジタルデータ通信(たとえば通信ネットワーク)の任意の形態または媒体によって、相互接続することができる。通信ネットワークの例には、ローカルエリアネットワーク(”LAN”)、ワイドエリアネットワーク(”WAN”)およびインターネットが含まれる。
コンピューティングデバイスは、クライアントとサーバを含むことができる。クライアントとサーバは一般に互いに他方から隔たっており、典型的には通信ネットワークを介してインタラクションを行う。クライアントとサーバの関係は、個々のコンピュータ上で実行され相互にクライアント−サーバ関係を有するコンピュータプログラムに基づき発生する。
これまで数多くの実施形態について説明してきたが、本発明の着想および範囲を逸脱することなく様々な変形を行うことができることが理解されよう。
この点に加え、図面に描かれた論理的なフローは、望ましい結果を達成するためには、図示された特定の順序でなくてもよく、あるいは連続した順序でなくてもよい。さらにこれらに加え、他のステップを設けてもよいし、既述のフローからステップを削除してもよく、既述のシステムに他の構成要素を加えてもよいし、または既述のシステムから削除してもよい。よって、その他の実施形態は以下の特許請求の範囲内に含まれる。
Claims (15)
- 出発地から目的地まで移動体をナビゲートするための無衝突経路の決定を並列処理可能にする、コンピュータで実装された方法(200)であって、前記方法は、
出発地(SL)と目的地(TL)の表現を受け取り、かつ、1つまたは複数の潜在的な衝突物体の1つまたは複数のポリゴン表現(CO1,CO2,CO3)を受け取るステップ(210)と、
前記移動体の少なくとも1つの表現を初期化するステップ(220)であって、前記少なくとも1つの表現は、受け取った前記出発地(SL)を現在地(CL)として有し、かつ、受け取った前記目的地(TL)を最新目的地として含む1つの目的地リスト(LOT)をさらに有するステップと、
前記現在地と前記目的地リスト中の前記最新目的地との間の直結線上に、衝突物体が位置しているか否かを判定することによって、無衝突経路区間のグラフを繰り返し構築し、各移動体表現について、存続中の前記移動体表現と対応づけられた前記目的地リストが空になるまで、以下のステップを繰り返すステップ(230)であって、すなわち、
前記直結線が無衝突状態であるならば、前記経路区間を前記グラフのエッジとして保存し、次の反復のために、前記最新目的地を新たな現在地(CL)として選択して、前記最新目的地を前記目的地リストから取り除くステップと、
前記直結線が無衝突状態でなければ、前記直結線と交差する1つまたは複数のポリゴン表現上の局所的極値に基づき、到達可能なノードを識別し、ただし局所的極値は、前記現在地と前記最新目的地との間の前記直結線から左または右に逸脱した角度に対し相対的に決定され、次の反復のために前記表現から、識別されたノード各々について前記移動体の新たな表現を生成し、前記新たな表現は、前記移動体表現と同じ現在地を有し、かつ前記移動体表現の目的地リストの全要素と新たな最新目的地として識別された前記ノードとから成る1つの目的地リストを有するステップと、
を繰り返すステップ(230)と、
無衝突経路区間に基づき無衝突経路を構築するステップ(240)と、
前記無衝突経路を経路セレクタへ供給するステップ(250)と、
を含む、
方法(200)。 - 到達可能なノードを識別する前記ステップは、
対応する前記衝突物体を迂回するために左へ逸脱した角度を有するポリゴン区間を含む、1つの特定のポリゴン表現の第1群のポリゴン区間を決定するステップ(610)と、対応する前記衝突物体を迂回するために右へ逸脱した角度を有するポリゴン区間を含む、前記特定のポリゴン表現の第2群のポリゴン区間を決定するステップ(610)と、
決定された前記第1群のポリゴン区間各々について、左へ逸脱した角度の値が大きい方のノードを別個にマーキングするステップ(620)と、決定された前記第2群のポリゴン区間各々について、右へ逸脱した角度の値が大きい方のノードを別個にマーキングするステップ(620)と、
前記特定のポリゴン表現の局所的極値として2つのマークが付されたノードを、潜在的に到達可能なノードとして識別するステップ(630)と、
をさらに含む、
請求項1記載の方法。 - 到達可能なノードを識別する前記ステップは、
右および左へ逸脱した角度の値が最も大きい前記到達可能なノードを、前記特定のポリゴン表現の大域的極値として識別し、大域的極値ではない局所的極値をフィルタリング除去するステップ(650)、
をさらに含む、
請求項2記載の方法。 - 到達可能なノードを識別する前記ステップは、
1つの特定のポリゴン表現の1つまたは複数の局所的極値により、前記現在地からは隠されている1つの特定のポリゴン表現の局所的極値をフィルタリング除去するステップ(640)、
をさらに含む、
請求項2または3記載の方法。 - 局所的極値の識別をマルチプロセッサデバイスにより並列処理する、
請求項1から4までのいずれか1項記載の方法。 - 前記グラフ(300)を構築するステップはさらに、以下のパフォーマンスベースフィルタリングステップすなわち、
中間目的地の許容性をチェックすることにより局所的極値をフィルタリングするステップと、
1つの特定の移動体表現が、個々の目的関数に関して競合する移動体表現よりもパフォーマンスが悪いと判定され得るのであれば、前記特定の移動体表現を削除するステップと、
のうち1つまたは複数のステップをさらに含む、
請求項1から5までのいずれか1項記載の方法。 - 前記経路セレクタは、構築された前記無衝突経路に対し以下の後処理アクティビティすなわち、
スプラインを用いて経路を平滑化するアクティビティと、
1つまたは複数の着目対象エリアに対する入口ポイントまたは出口ポイントを表す1つまたは複数の中間地点を、経路に沿ってさらに付加するアクティビティと、
1つの移動体が先行の中間地点から次の中間地点まで直接移動可能であるならば、前記経路から1つまたは複数の中間地点を取り除くアクティビティと、
のうち1つまたは複数の後処理アクティビティを適用する、
請求項1から6までのいずれか1項記載の方法。 - 前記経路セレクタから、選択された1つの無衝突経路を受け取るステップと、
前記選択された経路に従い前記移動体の移動方向を調整するために、前記選択された無衝突経路によって前記移動体の制御システムを更新するステップ(260)と、
をさらに含む、
請求項1から7までのいずれか1項記載の方法。 - 1つの特定の潜在的な衝突物体の1つの特定のポリゴン表現は、前記特定の潜在的な衝突物体の現在ポジションを表すセンサデータに関連づけられている、
請求項1から8までのいずれか1項記載の方法。 - 前記グラフの構築時に前記直結線が無衝突状態である場合、前記目的地リストが空であるならば、前記個々の移動体の表現を削除するステップ、
をさらに含む、
請求項1から9までのいずれか1項記載の方法。 - 出発地から目的地まで移動体をナビゲートするための無衝突経路の決定を並列処理可能にするコンピュータプログラム製品であって、前記コンピュータプログラム製品は、
コンピュータシステム(100)のメモリにロードされて前記コンピュータシステムの少なくとも1つのプロセッサにより実行されると、請求項1から10までのいずれか1項記載のコンピュータで実装された方法のステップを実施する、
コンピュータプログラム製品。 - 出発地から目的地まで移動体をナビゲートするための無衝突経路を並列処理により決定するコンピュータシステム(100)であって、前記コンピュータシステム(100)は、
出発地と目的地のデータ(10)と、1つまたは複数の潜在的な衝突物体の1つまたは複数のポリゴン表現(20)と、を受け取るように構成されたインタフェース構成要素(110)と、
前記移動体の少なくとも1つの表現を初期化するように構成された初期化構成要素(120)であって、前記少なくとも1つの表現は、受け取った前記出発地を現在地として有し、かつ、受け取った前記目的地を含む1つの目的地リストをさらに有する初期化構成要素(120)と、
移動体表現各々について、受け取った前記目的地に到達しないかぎり、前記現在地と前記目的地リスト中の最新目的地との間の直結線上に衝突物体が位置しているか否かを判定するために、極値識別器モジュール(131)とレプリケータモジュール(132)とを繰り返し呼び出すことによって、無衝突経路区間のグラフを繰り返し構築するように構成されたグラフジェネレータ(130)と、
を含み、
前記グラフジェネレータ(130)は、前記直結線が無衝突状態であるならば、対応する経路区間を前記グラフのエッジとして保存するように構成されており、かつ次の反復のために、前記最新目的地を新たな現在地として選択して、前記最新目的地を前記目的地リストから取り除くようにさらに構成されており、
前記グラフジェネレータ(130)は、前記直結線が無衝突状態でなければ、
前記直結線と交差する1つまたは複数のポリゴン表現上の局所的極値に基づき、到達可能なノードを識別するために、前記極値識別器(131)を呼び出すように構成されており、ただし局所的極値は、前記現在地と前記最新目的地との間の前記直結線から左または右に逸脱した角度に対し相対的に決定され、
次の反復のために前記表現から、識別されたノード各々について前記移動体の新たな表現を生成するために、前記レプリケータ(132)を呼び出すように構成されており、ただし前記新たな表現は、前記移動体表現と同じ現在地を有しており、かつ前記移動体表現の目的地リストの全要素と新たな最新目的地として識別された前記ノードとから成る1つの目的地リストを有しており、
前記グラフジェネレータ(130)はさらに、無衝突経路区間に基づき無衝突経路を構築し、前記無衝突経路を経路セレクタ(140)へ供給するように構成されている、
コンピュータシステム(100)。 - 前記極値識別器(131)はさらに、以下のようにして前記到達可能なノードを識別するように構成されている、すなわち、
対応する前記衝突物体を迂回するために左へ逸脱した角度を有するポリゴン区間を含む、1つの特定のポリゴン表現の第1群のポリゴン区間を決定し、対応する前記衝突物体を迂回するために右へ逸脱した角度を有するポリゴン区間を含む、前記特定のポリゴン表現の第2群のポリゴン区間を決定し、
決定された前記第1群のポリゴン区間各々について、左へ逸脱した角度の値が大きい方のノードを別個にマーキングし、決定された前記第2群のポリゴン区間各々について、右へ逸脱した角度の値が大きい方のノードを別個にマーキングし、
前記特定のポリゴン表現の局所的極値として2つのマークが付されたノードを、潜在的に到達可能なノードとして識別する、
請求項12記載のコンピュータシステム。 - 前記極値識別器(131)はさらに、以下のようにして前記到達可能なノードを識別するように構成されている、すなわち、
右および左へ逸脱した角度の値が最も大きい前記到達可能なノードを、前記特定のポリゴン表現の大域的極値として識別し、かつ/または、
前記特定のポリゴン表現により前記現在地からは隠されている前記局所的極値をフィルタリング除去することにより、前記到達可能なノードを取得する、
請求項13記載のコンピュータシステム。 - 請求項12から14までのいずれか1項記載のコンピュータシステムを含むモバイルデバイス。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP16206179.0A EP3339806B1 (en) | 2016-12-22 | 2016-12-22 | Navigation for vehicle based on parallel processing to determine collision-free paths |
EP16206179.0 | 2016-12-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018109621A true JP2018109621A (ja) | 2018-07-12 |
Family
ID=57777425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017244265A Pending JP2018109621A (ja) | 2016-12-22 | 2017-12-20 | 移動体のためのナビゲーション |
Country Status (5)
Country | Link |
---|---|
US (1) | US10466058B2 (ja) |
EP (1) | EP3339806B1 (ja) |
JP (1) | JP2018109621A (ja) |
CN (1) | CN108225358B (ja) |
SG (1) | SG10201709662VA (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020193975A (ja) * | 2019-05-29 | 2020-12-03 | ネイバー コーポレーションNAVER Corporation | 路線のセットを前処理する方法、旅程を計算する方法、及びコンピュータプログラム |
US11499836B2 (en) | 2019-05-29 | 2022-11-15 | Naver Corporation | Method for preprocessing a set of non-scheduled lines within a multimodal transportation network of predetermined stations and for computing at least one itinerary from a departure location to an arrival location |
US11768078B2 (en) | 2020-04-21 | 2023-09-26 | Naver Corporation | Method for computing an itinerary from a departure location to an arrival location |
JP7364521B2 (ja) | 2020-03-31 | 2023-10-18 | 株式会社光電製作所 | 避航経路探索装置、避航経路探索方法、プログラム |
US11803785B2 (en) | 2019-01-18 | 2023-10-31 | Naver Corporation | Method for computing at least one itinerary from a departure location to an arrival location |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6930337B2 (ja) * | 2017-09-27 | 2021-09-01 | カシオ計算機株式会社 | 電子機器、移動経路記録方法、およびプログラム |
EP3623759B1 (en) * | 2018-09-14 | 2024-04-17 | The Boeing Company | A computer-implemented method and a system for defining a path for a vehicle within an environment with obstacles |
US20200132467A1 (en) * | 2018-10-30 | 2020-04-30 | Navico Holding As | Systems and associated methods for generating navigation charts and navigable routes in an open environment |
US10379868B1 (en) * | 2019-02-04 | 2019-08-13 | Bell Integrator Inc. | Optimization method with parallel computations |
CN110197003B (zh) * | 2019-05-05 | 2023-05-16 | 中国船舶工业集团公司第七0八研究所 | 一种多分段坐底式船型结构物总体配载计算方法 |
US11360220B2 (en) * | 2019-08-08 | 2022-06-14 | United States Of America As Represented By The Secretary Of The Navy | System and methods for planning routes over large areas |
CN110887502B (zh) * | 2019-11-18 | 2020-09-04 | 广西华蓝岩土工程有限公司 | 一种必经结点最短路径搜索方法 |
US20210382476A1 (en) * | 2020-06-05 | 2021-12-09 | Scythe Robotics, Inc. | Autonomous lawn mowing system |
WO2022111792A1 (en) * | 2020-11-24 | 2022-06-02 | Huawei Technologies Co., Ltd. | Estimating accident risk level of road traffic participants |
CN113173161B (zh) * | 2021-04-26 | 2022-07-05 | 安徽域驰智能科技有限公司 | 一种基于迭代预测模型的障碍物碰撞距离计算方法 |
US11860628B2 (en) * | 2021-06-21 | 2024-01-02 | Nvidia Corporation | Parallel processing of vehicle path planning suitable for parking |
CN113934218B (zh) * | 2021-11-16 | 2022-03-25 | 杭州云象商用机器有限公司 | 一种清扫机器人路径规划方法、装置、设备及存储介质 |
US11981328B2 (en) | 2022-02-02 | 2024-05-14 | Ford Global Technologies, Llc | Vehicle object avoidance |
US20230367463A1 (en) * | 2022-05-11 | 2023-11-16 | Supercell Oy | Randomized movement control |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03238599A (ja) * | 1990-02-15 | 1991-10-24 | Clarion Co Ltd | 車載用ナビゲーション装置 |
US6622085B1 (en) * | 1999-01-25 | 2003-09-16 | Hitachi Software Engineering Co., Ltd. | Device and method for creating and using data on road map expressed by polygons |
US6317690B1 (en) * | 1999-06-28 | 2001-11-13 | Min-Chung Gia | Path planning, terrain avoidance and situation awareness system for general aviation |
US6529821B2 (en) * | 2001-06-05 | 2003-03-04 | The United States Of America As Represented By The Secretary Of The Navy | Route planner with area avoidance capability |
GB0407336D0 (en) * | 2004-03-31 | 2004-05-05 | British Telecomm | Pathfinding system |
FR2964765B1 (fr) * | 2010-09-10 | 2016-04-15 | Thales Sa | Procede de recherche de plus court chemin avec heuristique |
WO2013104128A1 (en) * | 2012-01-12 | 2013-07-18 | Google Inc. | Navigating using indoor map representation |
EP2631594B1 (en) * | 2012-02-22 | 2015-09-09 | Harman Becker Automotive Systems GmbH | Navigation system and method for navigation |
US8996224B1 (en) * | 2013-03-15 | 2015-03-31 | Google Inc. | Detecting that an autonomous vehicle is in a stuck condition |
EP2863177A1 (en) * | 2013-10-18 | 2015-04-22 | AEVO GmbH | Method of calculation a path for use in a vehicle |
CN104457775A (zh) * | 2014-12-12 | 2015-03-25 | 北京航天宏图信息技术有限责任公司 | 路径确定方法、装置和导航仪 |
US9523583B2 (en) * | 2015-02-27 | 2016-12-20 | Here Global B.V. | Generating routes using navigation meshes |
US9836980B2 (en) * | 2015-06-07 | 2017-12-05 | Apple Inc. | Collision avoidance of arbitrary polygonal obstacles |
US9823079B2 (en) * | 2015-09-29 | 2017-11-21 | Apple Inc. | Polygonal routing |
US9841285B2 (en) * | 2015-12-22 | 2017-12-12 | Here Global B.V. | Generation of link node routing graph using a straight skeleton algorithm |
CN105716618A (zh) * | 2016-02-05 | 2016-06-29 | 哈尔滨工程大学 | 一种用于uuv航路规划的几何环境模型膨化处理方法 |
-
2016
- 2016-12-22 EP EP16206179.0A patent/EP3339806B1/en not_active Not-in-force
-
2017
- 2017-11-22 SG SG10201709662VA patent/SG10201709662VA/en unknown
- 2017-12-20 US US15/848,765 patent/US10466058B2/en not_active Expired - Fee Related
- 2017-12-20 JP JP2017244265A patent/JP2018109621A/ja active Pending
- 2017-12-21 CN CN201711390197.4A patent/CN108225358B/zh not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11803785B2 (en) | 2019-01-18 | 2023-10-31 | Naver Corporation | Method for computing at least one itinerary from a departure location to an arrival location |
JP2020193975A (ja) * | 2019-05-29 | 2020-12-03 | ネイバー コーポレーションNAVER Corporation | 路線のセットを前処理する方法、旅程を計算する方法、及びコンピュータプログラム |
US11499836B2 (en) | 2019-05-29 | 2022-11-15 | Naver Corporation | Method for preprocessing a set of non-scheduled lines within a multimodal transportation network of predetermined stations and for computing at least one itinerary from a departure location to an arrival location |
JP7364521B2 (ja) | 2020-03-31 | 2023-10-18 | 株式会社光電製作所 | 避航経路探索装置、避航経路探索方法、プログラム |
US11768078B2 (en) | 2020-04-21 | 2023-09-26 | Naver Corporation | Method for computing an itinerary from a departure location to an arrival location |
Also Published As
Publication number | Publication date |
---|---|
EP3339806A1 (en) | 2018-06-27 |
US20180180428A1 (en) | 2018-06-28 |
EP3339806B1 (en) | 2019-05-22 |
SG10201709662VA (en) | 2018-07-30 |
CN108225358A (zh) | 2018-06-29 |
CN108225358B (zh) | 2020-07-17 |
US10466058B2 (en) | 2019-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2018109621A (ja) | 移動体のためのナビゲーション | |
CN108399218B (zh) | 基于Walsh内核投影技术的自动驾驶车辆定位 | |
CN111968229A (zh) | 高精度地图制图方法及装置 | |
US11704554B2 (en) | Automated training data extraction method for dynamic models for autonomous driving vehicles | |
Vidal et al. | Multisensor online 3D view planning for autonomous underwater exploration | |
WO2023016101A1 (zh) | 一种基于启发式偏置采样的室内环境机器人探索方法 | |
CN107631734A (zh) | 一种基于D*_lite算法的动态平滑路径规划方法 | |
US20210407186A1 (en) | Multi-Collect Fusion | |
US11360220B2 (en) | System and methods for planning routes over large areas | |
CN111094895A (zh) | 用于在预构建的视觉地图中进行鲁棒自重新定位的系统和方法 | |
CN112947594B (zh) | 一种面向无人机的航迹规划方法 | |
US20200349727A1 (en) | Obstacle detection method, mobile platform, and computer readable storage medium | |
CN113591573A (zh) | 多任务学习深度网络模型的训练及目标检测方法、装置 | |
WO2020144970A1 (ja) | 行動計画装置、行動計画方法、及びプログラム | |
CN111507161B (zh) | 利用合并网络进行异质传感器融合的方法和装置 | |
KR102309712B1 (ko) | 객체의 조건에 따라 모드를 전환할 수 있는 CNN 기반으로 군사 목적, 스마트폰 또는 가상 주행에 사용되는 수도(Pseudo)-3D 바운딩 박스를 검출하는 방법 및 이를 이용한 장치 | |
US20210404834A1 (en) | Localization Based on Multi-Collect Fusion | |
CN115061499B (zh) | 无人机控制方法及无人机控制装置 | |
CN113920273B (zh) | 图像处理方法、装置、电子设备和存储介质 | |
CN114355956A (zh) | 一种基于三维点云的水下机器人路径规划方法 | |
CN116868239A (zh) | 静态占用跟踪 | |
CN114237303A (zh) | 一种基于蒙特卡洛树搜索的无人机路径规划方法及装置 | |
CN113276888A (zh) | 基于自动驾驶的乘车方法、装置、设备和存储介质 | |
CN111784579A (zh) | 制图方法及装置 | |
US20230244244A1 (en) | Information processing apparatus, information processing method, and program |